|
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
« 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
« 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
« 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
« 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: #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> int main () { /* Definición de datos */ int calculosxciclo, ciclos, total, cbajo, calto, ubajo, ualto, seg, opc = 0, ccbajo = 0, ccalto = 0, ucbajo = 0, ucalto = 0; float pceros, punos; int x, y, cero = 0, uno = 0; /* Programa */ printf("PROGRAMA V. 1.0\n"); printf("Introduce el número de cálculos por ciclo: "); scanf( "%d", &calculosxciclo); printf("Introduce el número de ciclos: "); scanf ( "%d", &ciclos); printf("¿OPCIONES ADICIONALES? 1=SI 2=NO --> "); scanf ( "%d", &opc); if (opc == 1) { printf("\nLímite por debajo para ceros: "); scanf ( " %d", &cbajo); printf("\nLímite por arriba para ceros: "); scanf ( " %d", &calto); printf("\nLímite por debajo para unos: "); scanf ( " %d", &ubajo); printf("\nLímite por arriba para unos: "); scanf ( " %d", &ualto); printf("\n\nEjecutar un ciclo cada (seg.): "); scanf ( " %d", &seg); } else {printf("\nSIN CONFIGURAR"); cbajo = (calculosxciclo / 2); calto = (calculosxciclo / 2); ubajo = (calculosxciclo / 2); ualto = (calculosxciclo / 2);} srand(time(NULL)); y=calculosxciclo; while (ciclos != 0) { while (calculosxciclo != 0) { calculosxciclo--; x = rand()%2; if (x == 0) { cero++; } else { uno++; } } ciclos--; calculosxciclo = y; printf("\nNúmero de ceros: %d", cero); printf("\nNúmero de unos: %d", uno); total = (cero + uno); printf("\nTotal: %d", total); pceros = ((cero * 100) / total); punos = ((uno * 100) / total); printf("\nPorcentaje de ceros: %0.2f", pceros); printf("\nPorcentaje de unos: %0.2f", punos); printf("\n"); system("pause"); if (pceros < cbajo) {ccbajo++;} else {} if (pceros > calto) {ccalto++;} else {} if (punos < ubajo) {ucbajo++;} else {} if (punos > ualto) {ucalto++;} else {} cero = 0; uno = 0; } printf("\nEl límite mínimo de: %d", cbajo); printf(" se ha superado %d", ccbajo); printf(" veces."); printf("\nEl límite máximo de: %d", calto); printf(" se ha superado %d", ccalto); printf(" veces."); printf("\nEl límite mínimo de: %d", ubajo); printf(" se ha superado %d", ucbajo); printf(" veces."); printf("\nEl límite máximo de: %d", ualto); printf(" se ha superado %d", ucalto); printf(" veces."); system("pause"); return 0; }
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
« 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
« en: Jueves 2 de Noviembre de 2006, 13:53 »
Al compilar me dice que: da error. Que no está declarada.
7
« 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
« 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
« en: Jueves 2 de Noviembre de 2006, 12:08 »
Vale, ya he solucionado parte de las dudas, ahora tengo esto: #include <stdio.h> #include <stdlib.h> #include <math.h> main () { /* Definición de datos */ int calculosxciclo, ciclos, resultado, total; float x, y, pceros, punos; int cero = 0, uno = 0; /* Programa */ printf("PROGRAMA V. 1.0\n"); printf("Introduce el número de cálculos por ciclo: "); scanf( "%d", &calculosxciclo); printf("Introduce el número de ciclos: "); scanf ( "%d", &ciclos); while (ciclos != 0) { while (calculosxciclo != 0) { x = rand() / 32768.0; resultado = (2 * x); /*Si sale 0 ó 1... */ if (resultado == 0) { ++cero; } if (resultado == 1) { ++uno; } --calculosxciclo; resultado = 0; } printf("\nNúmero de ceros: %u", cero); printf("\nNúmero de unos: %u", uno); total = (cero + uno); printf("\nTotal: %d", total); pceros = ((cero * 100) / total); punos = ((uno * 100) / total); printf("\nPorcentaje de ceros: %f", pceros); printf("\nPorcentaje de unos: %f", punos,"\n"); printf("\n"); --ciclos; system("pause"); } }
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
« 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: #include <stdio.h> #include <stdlib.h> #include <math.h> main () { /* Definición de datos */ int calculosxciclo, ciclos, resultado, total; float x, y, pceros, punos; int cero = 0, uno = 0; char c; /* Programa */ printf("PROGRAMA V. 1.0\n"); printf("Introduce el número de cálculos por ciclo: "); scanf( "%d", &calculosxciclo); printf("Introduce el número de ciclos: "); scanf ( "%d", &ciclos); while (ciclos != 0) { while (calculosxciclo != 0) { x = rand() / 32768.0; resultado = (2 * x); /*Si sale 0 ó 1... */ if (resultado == 0) { ++cero; } if (resultado == 1) { ++uno; } --calculosxciclo; } printf("\nNúmero de ceros: %u", cero); printf("\nNúmero de unos: %u", uno); total = (cero + uno); printf("\nTotal: %d", total); pceros = ((cero * 100) / total); punos = ((uno * 100) / total); printf("\nPorcentaje de ceros: %f", pceros); printf("\nPorcentaje de unos: %f", punos); c = getchar(); --ciclos; } }
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]
|
|
|