• Viernes 8 de Noviembre de 2024, 16:58

Mostrar Mensajes

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


Mensajes - kult18

Páginas: [1]
1
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 17:04 »
Gracias. Sois unos cracks!!! No conocía este foro, pero he comprobado que ayudáis sin ningún tipo de problema. Me pasaré por aquí cada vez que meta la pata, que suele ser a menudo. Un saludo!

2
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 16:49 »
Va perfecto, gracias gente!!! Sólo me queda una última cosa. ¿Qué puedo poner al final del programa para que al terminar de ejecutarse vuelva a empezar desde el principio?

3
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 15:54 »
Se me cerraba solo, pero ya va bien. Resulta que tenía configurado que cuando no introducías los valores para configurarlo, éstos tomaban unos automáticos, y eso no lo tenía bien. voy a ver lo de incluir las pausas de varios segundos.

4
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 15:43 »
Lo de la pausa de varios segundos la haré al final. Se me ha ocurrido incluir otra cosa: quiero poder introducir un mínimo y un máximo para los porcentajes de ceros y unos, y que cuando rebasen esos porcentajes quede registrado, y al final del programa me de un resumen del número de veces que se ha rebasado el porcentaje. Esto es lo que he hecho:
Código: Text
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. int main ()
  7.  
  8. {
  9. /* Definición de datos */
  10.  int calculosxciclo, ciclos, total, cbajo, calto, ubajo, ualto, seg, opc = 0, ccbajo = 0, ccalto = 0, ucbajo = 0, ucalto = 0;
  11.  float pceros, punos;
  12.  int x, y, cero = 0, uno = 0;
  13.  
  14. /* Programa */
  15. printf("PROGRAMA V. 1.0\n");
  16. printf("Introduce el número de cálculos por ciclo: ");
  17. scanf( "%d", &calculosxciclo);
  18. printf("Introduce el número de ciclos: ");
  19. scanf ( "%d", &ciclos);
  20. printf("¿OPCIONES ADICIONALES? 1=SI 2=NO --> ");
  21. scanf ( "%d", &opc);
  22.  if (opc == 1) {
  23.        printf("\nLímite por debajo para ceros: ");
  24.        scanf ( " %d", &cbajo);
  25.        printf("\nLímite por arriba para ceros: ");
  26.        scanf ( " %d", &calto);
  27.        printf("\nLímite por debajo para unos: ");
  28.        scanf ( " %d", &ubajo);
  29.        printf("\nLímite por arriba para unos: ");
  30.        scanf ( " %d", &ualto);
  31.        printf("\n\nEjecutar un ciclo cada (seg.): ");
  32.        scanf ( " %d", &seg);
  33.        }
  34.  else {printf("\nSIN CONFIGURAR");
  35.        cbajo = (calculosxciclo / 2);
  36.        calto = (calculosxciclo / 2);
  37.        ubajo = (calculosxciclo / 2);
  38.        ualto = (calculosxciclo / 2);}
  39. srand(time(NULL));
  40. y=calculosxciclo;
  41. while (ciclos != 0) {
  42. while (calculosxciclo != 0) {
  43. calculosxciclo--;
  44. x = rand()%2;
  45. if (x == 0) { cero++; }
  46. else { uno++; }
  47. }
  48. ciclos--;
  49. calculosxciclo = y;
  50. printf("\nNúmero de ceros: %d", cero);
  51. printf("\nNúmero de unos: %d", uno);
  52. total = (cero + uno);
  53. printf("\nTotal: %d", total);
  54. pceros = ((cero * 100) / total);
  55. punos = ((uno * 100) / total);
  56. printf("\nPorcentaje de ceros: %0.2f", pceros);
  57. printf("\nPorcentaje de unos: %0.2f", punos);
  58. printf("\n");
  59. system("pause");
  60. if (pceros < cbajo) {ccbajo++;}
  61. else {}
  62. if (pceros > calto) {ccalto++;}
  63. else {}
  64. if (punos < ubajo) {ucbajo++;}
  65. else {}
  66. if (punos > ualto) {ucalto++;}
  67. else {}
  68. cero = 0;
  69. uno = 0;
  70. }
  71.  
  72. printf("\nEl límite mínimo de: %d", cbajo);
  73. printf(" se ha superado %d", ccbajo);
  74. printf(" veces.");
  75. printf("\nEl límite máximo de: %d", calto);
  76. printf(" se ha superado %d", ccalto);
  77. printf(" veces.");
  78. printf("\nEl límite mínimo de: %d", ubajo);
  79. printf(" se ha superado %d", ucbajo);
  80. printf(" veces.");
  81. printf("\nEl límite máximo de: %d", ualto);
  82. printf(" se ha superado %d", ucalto);
  83. printf(" veces.");
  84. system("pause");
  85. return 0;
  86. }
  87.  
Da un error al final y no sé qué puede ser. Agradezco vuestra paciencia, ya que me cuesta bastante. Tendría que mandaros un jamón, jejejeje. ¿Qué puede ocasionar el error?

5
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 14:47 »
Gracias, ya me va perfecto. Me ha surgido otra duda que me gustaría incluir en el programa. He visto que se puede hacer una pausa poniendo "system("pause");", pero ¿cómo podría hacer una pausa de por ejemplo 10 segundos y luego que continúe solo el programa?

6
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 13:53 »
Al compilar me dice que:
Código: Text
  1. srand(time(NULL));
  2.  
da error. Que no está declarada.

7
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 13:02 »
No me funciona. ¿Te ha funcionado el programa con el código que he puesto antes? Si te funciona mándame por favor el código íntegro a ver qué falla. Me gustaría hacerlo sólo con RAND, ya que una vez lo usé y me fue bien. Creo que si ahora falla debe ser por otra parte del programa. Gracias por las molestias!

8
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 12:21 »
El caso es que anteriormente tenía hecha una aplicación que simulaba tiradas de dados y no usé SRAND, sin embargo RAND me devolvía resultados aleatorios continuamente.
Por otro lado, ¿me puedes ayudar a usar SRAND? Me pierdo un poco con el tema de la semilla. Me gustaría que tomara por ejemplo el número aleatorio sacado de la hora del sistema.

9
C/C++ / Re: 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 12:08 »
Vale, ya he solucionado parte de las dudas, ahora tengo esto:
Código: Text
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. main ()
  6.  
  7. {
  8.  /* Definición de datos */
  9.  int calculosxciclo, ciclos, resultado, total;
  10.  float x, y, pceros, punos;
  11.  int cero = 0, uno = 0;
  12.  
  13.  /* Programa */
  14.  printf("PROGRAMA V. 1.0\n");
  15.  printf("Introduce el número de cálculos por ciclo: ");
  16.  scanf( "%d", &calculosxciclo);
  17.  printf("Introduce el número de ciclos: ");
  18.  scanf ( "%d", &ciclos);
  19.  while (ciclos != 0)    {
  20.        while (calculosxciclo != 0)  {
  21.              x = rand() / 32768.0;
  22.              resultado = (2 * x);
  23.              /*Si sale 0 ó 1... */
  24.              if (resultado == 0)    {
  25.                                      ++cero;
  26.                 }
  27.              if (resultado == 1)    {
  28.                                      ++uno;
  29.                 }
  30.              --calculosxciclo;
  31.              resultado = 0;
  32.        }
  33.       printf("\nNúmero de ceros: %u", cero);
  34.       printf("\nNúmero de unos: %u", uno);
  35.       total = (cero + uno);
  36.       printf("\nTotal: %d", total);
  37.       pceros = ((cero * 100) / total);
  38.       punos = ((uno * 100) / total);
  39.       printf("\nPorcentaje de ceros: %f", pceros);
  40.       printf("\nPorcentaje de unos: %f", punos,"\n");
  41.       printf("\n");    
  42.       --ciclos;
  43.       system("pause");
  44.  }
  45. }
  46.  
El error que aún perdura es que si lo ejecutáis, RAND siempre me devuelve los mismos resultados. La función SRAND no me vale puesto que no me devuelve ningún resultado, y RAND debería funcionar.
Por cierto, gracias por lo de "system("pause");"!!!

10
C/C++ / 3 Problemas En Un Pequeño Programa
« en: Jueves 2 de Noviembre de 2006, 11:03 »
Hola, estoy haciendo un sencillo programa en C y me he encontrado con 3 problemillas, a ver si me podéis solucionar porque me vuelvo loco. Aquí pongo el código:
Código: Text
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. main ()
  6.  
  7. {
  8.  /* Definición de datos */
  9.  int calculosxciclo, ciclos, resultado, total;
  10.  float x, y, pceros, punos;
  11.  int cero = 0, uno = 0;
  12.  char c;
  13.  
  14.  /* Programa */
  15.  printf("PROGRAMA V. 1.0\n");
  16.  printf("Introduce el número de cálculos por ciclo: ");
  17.  scanf( "%d", &calculosxciclo);
  18.  printf("Introduce el número de ciclos: ");
  19.  scanf ( "%d", &ciclos);
  20.  while (ciclos != 0)    {
  21.        while (calculosxciclo != 0)   {
  22.              x = rand() / 32768.0;
  23.              resultado = (2 * x);
  24.              /*Si sale 0 ó 1... */
  25.              if (resultado == 0)     {
  26.                                      ++cero;
  27.                 }
  28.              if (resultado == 1)     {
  29.                                      ++uno;
  30.                 }
  31.              --calculosxciclo;
  32.        }
  33.       printf("\nNúmero de ceros: %u", cero);
  34.       printf("\nNúmero de unos: %u", uno);
  35.       total = (cero + uno);
  36.       printf("\nTotal: %d", total);
  37.       pceros = ((cero * 100) / total);
  38.       punos = ((uno * 100) / total);
  39.       printf("\nPorcentaje de ceros: %f", pceros);
  40.       printf("\nPorcentaje de unos: %f", punos);    
  41.       c = getchar();
  42.       --ciclos;
  43.  }
  44. }
  45.  
El programa genera un número de cadenas (especificado al principio del programa) de ceros y unos (el número de dígitos de cada cadena también se especifican al comienzo). Luego cuenta los ceros y los unos y te muestra los resultados.
Vale, los 3 errores con los que me encuentro son estos:
1º A pesar de usar la función rand, si ejecutáis el programa y ponéis por ejemplo 10 cálculos por ciclo y 5 ciclos, veréis que siempre hace la misma distribución: 6 ceros y 4 unos, a pesar de que debiera ser aleatorio y cada vez ofrecer una distribución distinta.
2º Al margen de la función rand, si pongo que quiero 5 ciclos, se supone que me debe mostrar los datos de cada ciclo cada vez que yo pulse una tecla. Al ejecutar el programa, los datos del primer y segundo ciclo me salen juntos y sin un espacio que los divida, luego ya salen todos bien.
3º Si pongo que sólo quiero un ciclo, éste lo muestra tan rápido que no da tiempo a verlo. ¿Cómo puedo hacer que también permanezca en pantalla hasta que yo pulse una tecla?

Espero que me podáis ayudar. Muchas gracias por adelantado!

Páginas: [1]