Conseguir modo aleatorio y carácteres.

Iniciado por Renhy, 27 Junio 2010, 06:04 AM

0 Miembros y 1 Visitante están viendo este tema.

Renhy

Hola amigos, de una serie de 10 ejercicios no me salen 3 pero les mencionaré el más importante.

Dice:

6. Un instituto de inglés desea implementar un programa para sus alumnos, que consiste en realizar un algoritmo en el cual se deba tipear correctamente una serie de 10 números en el cual se deba conseguir 2 puntos por cada tipeo bien hecho y 0 por los malos. Al comenzar, el algoritmo le ofrece el modo aleatorio y manual que consisten en soltar aleatoriamente los 10 números y el manual en el que el usuario podrá digitar los 10 números que desee tipear. Al terminar el Algoritmo muestra el promedio final y pregunta si desea volver a realizar el ejercicio o finalizar.

Bueno lo único que he pensado hacer es meter cadena para los números tipeados pero al ser muchos tendría que declarar algunos valores...

La pantalla sale masomenos así
_________________
ESCOGER
Aleatorio (A)
ManuaL (M)
________________

Aleatorio_________
1. 90 --> .............. (los puntos suspensivos son para tipear la respuesta o la pregunta)
2. 32 --> ...............
3. 1 --> .................
4...
.
.
10. 84 --> Eighty four (Algo así sería cuando se escribe una respuesta)
_________________--

Nota_______________
Buenas: 8
Malas: 2
Total: 16                 (Cada numero bien tipeado vale 2 puntos y la nota maxima es 20)
_____________________

Final_________________
Practicar otra vez (S)
Salir                (N)
_______________-

Ahora, si se huviera escogido Manual sería así

Manual________________
1. ........ ---> .....................
2. ......... ---> ..................
3......... ---> ................
4
.
.
.
10 ..........---> ...............
_______________________

Pues en el primer espacio en blanco se debe tipear un numero del 1 al 99. Más no. Y escribir cómo se tipea.

Bueno no sé si me puedan ayudar porque no me conocen ni nada. Estoy estudiando ingeniería de sistemas y la verdad es que no los quiero trabajar al sentimiento pero me gusta hacer todo por mí y esta vez necesito ayuda ya que quisiera cnoseguirme la beca. Gracias!

nicolas_cof

#1
Reglas del subforo

CitarEste no es un subforo donde se soliciten tareas, sino un lugar donde resolver dudas.

Renhy, si no pones algo de el avance de tu codigo, dudo que alguien te pueda ayudar :P

Ademas si estas hablando de una beca, la mejor forma seria ganarla con esfuerzo de tu parte. Espero que no lo tomes a mal ;)

Salu10.

Renhy

Eh... gracias Nicolás, postearé el avance más tarde y disculpen si se sobreentiende que es una ayuda a una tarea. De todos modos, gracias.

MIG80

#3
Bueno, una pista ;): Te resultará más sencillo si usas una tabla de de 99 strings:


número | denominacion
-------+-------------
 1    | one
 2    | two
 3    | three
 .    | .
 .    | .
 .    | .
98    | ninety eight
99    | ninety nine
     

Para almacenar la tabla usarias un array de 99 strings :


const char *denominacion[99]={ "one","two","three", . . . ,"ninety eight","ninety nine"};


Luego, durante la ejecución del programa, se comparan lo tipeado por el estudiante de Ingles con el string correspondiente almacenado en la tabla.


char strres[100]; // array que almacenara la respuesta del estudiante
int n;            // valor que el estudiante debera tipear en Ingles
int puntaje;      // puntaje del estudiante
...
printf("%2d --> ");
gets(strres);

minusculas(strres); // convierte la respuesta en minusculas; de este modo TWO y Two (por ejemplo) seran
                   // ambas consideradas respuestas validas cuando se solicite tipear el numero 2.

// ahora verificamos si la respuesta dada es valida
if(strcmp(strres,denominacion[n-1])==0)
{
 // la respuesta dada es valida; se aumenta el puntaje en 2
 puntaje+=2;
}
...


Bueno creo que eso resuelve una buena parte del problema :). (Implementar la funcion minusculas() no es nada dificil)

nicolas_cof

czealt, no es recomendable el uso de las funciones gets() y strcmp().

Usa mas bien fgets() y strncmp()

Te sugiero leer el siguiente post, donde se explica el porque no usarlas...

http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

Salu10.