elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 160
181  Programación / Programación C/C++ / Re: Numeros Aleatorios-Simulacion en: 18 Noviembre 2014, 02:19 am
El numero de valores únicos que puede generar la función rand es igual a RAND_MAX + 1 ...

Un saludo
182  Programación / Programación C/C++ / Re: Programa para copiar una palabra en: 17 Noviembre 2014, 17:28 pm
Como ya te comente debes leer el archivo linea por linea (mediante fgets) verificando (mediante sscanf) si esta cumple con el formato buscado, si eso sucede terminas el bucle de inmediato. Mas o menos así:
Código
  1. FILE *in;
  2. char linea[MAX_CHARS];
  3. double num;
  4.  
  5. /* ... */
  6.  
  7. while (fgets(linea, MAX_CHARS, in) != NULL)
  8.   if (sscanf(linea, " bi212    SerieTh232Rn220 %lf", &num) == 1)
  9.      break;
  10.  
  11. if (feof(in)){
  12.   /* Fin de archivo ==> No se encontro la linea */
  13. }else if (ferror(in)){
  14.   /* Error en la lectura del archivo */
  15. }else {
  16.   printf("%e\n", num);
  17. }
  18.  
  19. /* ... */

Un saludo
183  Programación / Programación C/C++ / Re: ingresar frase y devolver al reves en: 17 Noviembre 2014, 16:46 pm
no sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre.
Eso sucede porque el operador ">>" solo lee una palabra, para leer una linea de texto debes utilizar la funcion getline.

Y por favor cuando publiques código fuente utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

Un saludo
184  Programación / Programación C/C++ / Re: Programa para copiar una palabra en: 17 Noviembre 2014, 02:20 am
Y yo quiero que me saque de esta linia "bi212    SerieTh232Rn220      1.32e+002      2.54e-001     4.16e-001    14" el primer número, es decir que en el fichero de salida aparezca "1.32e+002"
¿Buscas la primera linea que inicia literalmente con "bi212    SerieTh232Rn220" y extraer el numero de punto flotante a continuación de esta? Si es así puedes utilizar la función fgets para leer el archivo linea por linea junto con sscanf para verificar si esta cumple con el formato esperado.

Si no es así entonces por favor indica a detalle cual es la estructura del archivo de entrada.

Un saludo
185  Programación / Programación C/C++ / Re: Numeros Aleatorios-Simulacion en: 17 Noviembre 2014, 02:12 am
Estuve depurando el codigo y vi que en esta parte numAlea[j]=( (rand()%100000) /100000) , solo genera 0's , no entiendo el por q
Porque el resultado de "rand() % 100000" esta en el rango [0, 100000) y la división entera descarta la parte decimal, por ello el resultado de "(rand() % 100000) / 100000" siempre es cero.

necesito generar numeros entre [0,1)
Para ello debes utilizar "rand() / (RAND_MAX + 1.0)".

Un saludo
186  Programación / Programación C/C++ / Re: Identificar frases palíndromas en: 16 Noviembre 2014, 16:13 pm
Incluso más sencillo:

Código
  1. frase3[letra2] = frase2[letra2++] = frase1[letra1];

No porque el operador de asignación no garantiza un punto de secuencia y por ende en la expresión:
Código
  1. frase3[letra2 /* B */] = frase2[letra2++ /* A */] = frase1[letra1];
Se corre el riesgo de que la expresión A se evalue y su efecto lateral se aplique antes que la evaluación de la expresión B.

Un caso similar que se utiliza para explicar el punto y que por supuesto no se recomienda es:
Código
  1. a[i] = i++;
Debido a que el resultado de la expresión depende del orden de evaluación de los operandos y el momento exacto de la aplicación de los efectos laterales (algo que no define el lenguaje).

Un saludo
187  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 16 Noviembre 2014, 02:41 am
¿A que te refieres con "cuando quise hacerlo de manera directa, el compilador me tiraba error"?

Por cierto no es necesario incluir el encabezado <cstring>, en su lugar debes incluir <string> para tener acceso a la clase del mismo nombre.

Un saludo
188  Programación / Programación C/C++ / Re: Identificar frases palíndromas en: 16 Noviembre 2014, 02:31 am
Solo tengo una duda en la respuesta de leosansan, el código funciona, pero ¿Por qué le restas 1 en la parte de frase3[letra2 - 1]? Eso es lo único que no entiendo
Es debido al uso del operador secuencial ",". Su comportamiento dada la expresión:
Código
  1. frase2[letra2++] = frase1[letra1] , frase3[letra2 - 1] = frase1[letra1];

Es el siguiente:
1) Se evalúa la expresión a la izquierda, esta es "frase2[letra2++] = frase1[letra1]" y su resultado se descarta.
2) Todos los efectos laterales del paso 1 se aplican: el valor de la variable "letra2" se incrementa en una unidad.
3) Se evalúa la expresión a la derecha, esta es "frase3[letra2 - 1] = frase1[letra1]". El punto importante aquí es que el valor de "letra2" ya se incremento en una unidad y ahora es el indice del siguiente carácter, por ello se le resta una unidad.

Ya que la idea es copiar la cadena en dos arrays otra opción mas sencilla y con el mismo efecto es:
Código
  1. frase3[letra2] = frase2[letra2] = frase1[letra1];
  2. letra2++;

Un saludo
189  Programación / Programación C/C++ / Re: Comparar valores String o Char [C++] en: 15 Noviembre 2014, 15:55 pm
En tu programa cuando se llama a la función "strchk" sus argumentos (las cadenas "a la C") se utilizan para inicializar los parámetros correspondientes (objetos de la clase string). Eso lleva a que la función no es necesaria ya que se pueden crear objetos anónimos de dicho tipo realizando la comparación directamente.

Un ejemplo para explicarlo mejor:
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. #include <string>
  6. using std::string;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.   if (string(argv[1]) == string(argv[2]))
  11.      cout << "Son iguales" << endl;
  12.   else
  13.      cout << "Son desiguales" << endl;
  14.  
  15.   return 0;
  16. }

Un saludo
190  Programación / Programación C/C++ / Re: Introducir elementos de un vector en orden en: 15 Noviembre 2014, 02:29 am
Cuando publiques código fuente por favor utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

+

Indica cual es el problema o duda con tu programa.

----

1) En tu programa falta imprimir al final de el la lista de los valores en orden, esto para verificar que funcione correctamente.

2) El error es lógico ya que el bucle interno se repite mientras el elemento anterior sea menor que el actual:
Código
  1. do {
  2.   scanf("%d", &v[i]);
  3. }while (v[i - 1] < v[i]); /* Mientras v[i] sea MAYOR que v[i - 1] */

Un saludo
Páginas: 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ... 160
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines