Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - mastersuv

#1
Creo que esta es la segunda vez que uso este foro para resolver una duda, y espero estarlo haciendo de la forma correcta... No tuve tiempo de leerme las reglas completamente, pero en fin jejej ya habrá otro momento...

Estoy programando en C++ y jugando un poco con números aleatorios (srand y rand) llegue a la duda de como limitar un rango para sacar dichos números aleatorios... y encontré lo siguiente:

n = (rand()%(max-min+1))+min;

Donde max, seria el numero máximo, y min el mínimo...
mi duda es... porque así? No entiendo la lógica matemática ._. alguien me puede explicar?
#2
En primer lugar diculpen que pregunte esto en C/C++, pero creo que no hay C# así que pues no quedó de otra, además no hay mucha diferencia jeje.

Quiero crear una clase que me sirva para controlar archivos usando las Clases StreamWriter y StreamReader derivando mi clase de ellas.

Y que quede algo así:
MiClase a = new MiClase()
a.Reader.Read

y
MiClase a = new MiClase()
a.Writer.WriteLine


etc...

Donde Reader sería para el StreamReader
y Writer para StreamWriter

¿Me explico?
¿Pero como puedo lograr hacerlo?
#3
// -----------------------------------------------------------------------------------

Quiero habilitar esta opción de mi Conexión de area local:


(Es la computadora de un amigo mio)

Pero yo veo esto:




Segun los tutoriales que he leido, habilitar esa opción es necesaria para que otros usuarios de afuera (WAN) puedan conectarse a mí por medio de mi IP Pública.

¿Porque no veo esas opciones?
¿Es diferente mi conexión?

:(
#4
//-----------------------------------------------------------------------------------------
Hola a todos.
Agradeceré su paciencia por leer...

La razón por la que he recurrido a este foro para resolver mi duda, es porque ya estoy totalmente cansado de buscar como abrir los puertos de este Router.

La asistencia técnica de mi ISP simplemente no sabe mi problema, no les importa y se defienden diciendo que ellos no dan asesoriamiento de este tipo. (Estoy hablando de Telmex Infinitum, (estoy en México))

He buscado muchos tutoriales y los he seguido a pie de la letra, y supuestamente, ya están abiertos... Pero he usado Scanners de puertos online para verificar que esten abiertos y no es asi. (Para esto uso un Servidor a la escucha en dicho puerto)

Yo no me especializo en Redes, y por lo tanto no entiendo mucho...
Ya configure mi Firewall tambien, pero sigo con el mismo problema.

Algo curioso es... que si habilito el Servidor de TELNET de Windows (tengo XP), y a la vez, lo habilito en las excepciones del Firewall, Los Servicios de mi Conexión de Area Local y Abro el puerto 23 en el Router, al hacer esto si es detectado por los Scanners de Puertos online! Es decir, el puerto responde a conexiones entrantes de la WAN!

De hecho, le he pedido a un amigo que haga TELNET a mi IP pública, y la conexión es perfecta!

Pero esto no es así con mi servidor, ni con mi puerto!  >:(
Cerré el Servidor de TELNET e intenté usar el puerto 23 para ponerlo a la escucha en mi Servidor y sin embargo... no funcionó.

Algunas cosas que tengo claras son:
- Esto no es causa de un problema del Servidor, pues he probado con muchos, incluso de juegos, ftp, etc...
- El problema está o en el Router, o en el Firewall... O quizás mi ISP lo bloquea?

Agradezco grandemente tu tiempo por leer esto, si tienes cualquier información que me pueda ser de utilidad porfavor házmela saber. Gracias!

Estoy muy desesperado, pues estoy trabajando en un Proyecto cuyo objetivo es trabajar en WAN.
//-----------------------------------------------------------------------------------------
#5
Programación C/C++ / Encriptador en C++
22 Agosto 2010, 09:26 AM
Después de un largo rato de pensarle y buscar conceptos T_T
he logrado crear un sencillo sistema de cifrado.

Bueno... la cifrado es algo loca, pero la pueden modificar a su gusto.

Me gustaría que me dieran consejos de como podría mejor este código.
Que cosas hize de más, o que le falta.
¿Estoy usando mucho código innecesario?

PD: Solo cifra palabras en minusculas, y solo acepta espacios como separador.

Aquí les dejo el codigo:

Código (cpp) [Seleccionar]
#include <iostream>
#include <windows.h>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

vector<string> AddNumbers(vector<string> vector){
vector.push_back("cml29");
vector.push_back("mpdo1");
vector.push_back("cp3p");
vector.push_back("maT4");
vector.push_back("88gk");
vector.push_back("29f");
vector.push_back("9fff");
vector.push_back("fj239");
vector.push_back("fj33f");
vector.push_back("f888");
vector.push_back("45fc");
vector.push_back("d892");
vector.push_back("cronq");
vector.push_back("you");
vector.push_back("llnever");
vector.push_back("know");
vector.push_back("this");
vector.push_back("encr");
vector.push_back("ipta");
vector.push_back("tion");
vector.push_back("lol");
vector.push_back("rf8");
vector.push_back("l28");
vector.push_back("66");
vector.push_back("d6");
vector.push_back("e79d");
vector.push_back("49jf");
return vector;
}
vector<string> AddLetters(vector<string> vector){
vector.push_back("a");
vector.push_back("b");
vector.push_back("c");
vector.push_back("d");
vector.push_back("e");
vector.push_back("f");
vector.push_back("g");
vector.push_back("h");
vector.push_back("i");
vector.push_back("j");
vector.push_back("k");
vector.push_back("l");
vector.push_back("m");
vector.push_back("n");
vector.push_back("o");
vector.push_back("p");
vector.push_back("q");
vector.push_back("r");
vector.push_back("s");
vector.push_back("t");
vector.push_back("u");
vector.push_back("v");
vector.push_back("w");
vector.push_back("x");
vector.push_back("y");
vector.push_back("z");
vector.push_back(" ");

return vector;
}

class CODSYS{
public:
vector<string> abc;
vector<string> nums;

CODSYS(){
abc = AddLetters(abc);
nums = AddNumbers(nums);
}
};

vector<string> PartirString(string a){
vector<string> vector;
    string word;
    stringstream stream(a);
    while( getline(stream, word, 'x'))
vector.push_back(word);

return vector;
}

string descifrar(string a){
CODSYS *dat = new CODSYS;
vector<string> numeros;
// vector<string>::iterator it;
string numeroactual;
string descifrado;

numeros = PartirString(a); // Se eliminan las "x" y se guarda cada número como un elemento del vector.

for(unsigned int i = 0; i < numeros.size(); i++){
numeroactual = numeros[i];
for(unsigned int z = 0; z < dat->nums.size(); z++){
if(numeroactual == dat->nums[z]){
descifrado += dat->abc[z];
break;
}
}
}
delete dat;

return descifrado;
}

string cifrar(string a){
CODSYS *dat = new CODSYS;
string letraactual;
string cifrado;

for(unsigned int i = 0; i < a.length(); i++){
letraactual = a[i];
for(unsigned int z = 0; z < dat->abc.size(); z++){
if(letraactual == dat->abc[z]){
cifrado += dat->nums[z];
cifrado += "x";
}
}
}
delete dat;

return cifrado;
}

void EncMain(){
system("cls");
string cadena;

cout << "Ingresa una Cadena para encriptarla:\n";
getline(cin, cadena);

cout << "\n\n= " << cifrar(cadena) << "\n\n" ;

system("PAUSE");
system("CLS");
}

void DesencMain(){
system("cls");
string cadena;

cout << "Ingresa una Cadena para desencriptarla:\n";
getline(cin, cadena);

cout << "\n\n= " << descifrar(cadena) << "\n\n";

system("PAUSE");
system("CLS");
}

int main(int argc, char *argv[]){
while(true){
string dec;
r:
cout << "==> Encriptador por mastersuv v0.1 <==\n\n";
cout << "---- Selecciona una opcion: ----\n";
cout << "||                            ||\n";
cout << "|| 1. cifrar una Cadena    ||\n";
cout << "|| 2. descifrar una Cadena ||\n";
cout << "||                            ||\n";
cout << "--------------------------------\n\n> ";

getline(cin, dec);

for(unsigned int i = 0; i < dec.length(); i++){
if(!isdigit(dec[i])){
MessageBoxA(NULL, "Ingrese solo numeros!", "Error!", MB_OK);
system("CLS");
goto r;
break;
}
else if((dec > "2" || dec < "1")){
MessageBoxA(NULL, "Opción inválida", "Error!", MB_OK);
system("CLS");
goto r;
break;
}
else{ continue; }
}

if(dec == "1"){
EncMain();
}
else if(dec == "2"){
DesencMain();
}
}
return 0;
}

#6
Siempre he tenido una duda bien dudosa...  :xD

Iré al grano:
En mi escuela están utilizando Visual Basic + Un lector de código de barras para comprobar que los Alumnos están asistiendo a clases.

El código de barras esta impreso en nuestras credenciales, y al llegar a la escuela tenemos que pasar por al lado de la computadora y pasar la zona del código impresa en nuestra cred. por el lector.

Bien...
Pués... esa es mi duda.
Como lográn establecer esa interacción de Hardware y Software?...

Yo lo que pienso ahorita es que al comprar el lector de código de barras, viene con algun disco que incluye sus API's o Dlls o algo así que permite conectarlo con Visual Basic...

Y una vez hecho esto, pues se pueden llamar eventos del Codigo de barras. Y así darle procedimientos a nuestro programa cada vez que ocurra un evento en el Lector.

¿Me ayudan a comprender esto?
¿Qué temas relacionados me ayudarían a comprenderlo?
#7
Tengo un amigo, con el cual me inicie en la programación.

Ninguno de los dos sabíamos de Programación.
Pero el ya había escuchado de C++ y fue el primer lenguaje con el que empezo a programar.

Por mi parte, yo comenzé con Visual Basic...

Ahora el sabe muchisimo mas que yo de C++

Y se la pasa diciendome que deje de Programar en Visual Basic debido a que es un lenguaje de programación muy pobre, que no sirve para nada, y es solo para los novatos, newbis, n00bs o lammers que les gusta dibujar cuadritos :¬¬

Esto, -aunque no se lo digo- me deprime mucho.

Es cierto que Visual Basic es para iniciarse, por eso es BASIC ¿que no?
Pero

¿Ustedes que opinan?
#8
Estoy haciendo un Programita para practicar mis habilidades con C++

Lo que hace es hacer un efecto de rotación hacia la derecha de una cadena.
Es decir, si la cadena a rotar fuera "HOLA" pasaría esto:

HOLA
AHOL
LAHO
OLAH
HOLA

Y con una limpiada de pantalla con el System("CLS"); se miraría bonito.

---------------

El punto es... que estoy teniendo problemas en la ejecución.
Compila...
Lo raro es... que solo funciona con ciertas cadenas.
Es decir, si pruebo con mi nombre:
"Santiago" funciona a la perfección, tal y como quiero.

Pero con cadenas mas cortas, no funciona.  :-\
Me saca del programa con una excepción.

Tampoco cadenas muy largas... unas si y otras no... lo mismo.
No se que patrón este siguiendo para dar o no dar la excepción.  :¬¬

No hay errores, pero me da una excepción que dice así:

CitarUnhandled exception at 0x7c812afb in RotacionString.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0013e994..

¿Que podrá estar causando eso?

Aquí les dejo mi código, pruebénlo.

Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <vector>
#include <Windows.h>

using std::cout;
using std::cin;
using std::string;
using std::vector;
using std::iterator;

vector<string> VectorizarString(vector<string> vector, string str){
string letraactual;
for(int i = 0; i < str.length(); i++){
letraactual = str[i];
vector.push_back(letraactual);
}
return vector;
}

int main(int argc, char* argv[]){
string a;
vector<string> letras; // Este vector contendrá cada una de las letra que tenga la String a Rotar
vector<string>::iterator it = letras.begin(); // Este es un Simple Iterador, que apunta al Primer elemento del Vector letras

cout << "Ingresa una String: ";
cin >> a;

letras = VectorizarString(letras, a);

for(int i = 0; ; i++){
it = letras.begin(); // it se posiciona en el primer elemento del Vector letras
letras.insert(it, letras.back()); // Se inserta el ultimo elemento en la posicion de it
letras.pop_back(); // Se borra el ultimo elemento, ya que ahora este esta al inicio

for(int i = 0; i < letras.size(); i++){
cout << letras[i]; // Se muestra en pantalla el resultado, y el ciclo continua
}
Sleep(200);
system("CLS");
}

system("PAUSE");
return 0;
}