• Miércoles 6 de Noviembre de 2024, 07:36

Autor Tema:  Una consulta...  (Leído 2465 veces)

Eugenio19

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Una consulta...
« en: Domingo 23 de Agosto de 2009, 23:27 »
0
Buenas, necesito de su ayuda si es posible, resulta que en la unirversidad me encargaron una proyecto, bueno, en realidad dos, que dicen asi:

1-Las computadoras están jugando un papel creciente en la educación. Escriba un programa que ayudaría a un alumno de escuela primaria a aprender a multiplicar. Utilice rand para producir dos enteros positivos de un dígito. A continuación debería escribir una pregunta como la siguiente: Cuanto es 6 veces 7?
A continuacion el alumno escribe la respuesta. Su programa verifica la respuesta del alumno. Si es correcta, imprime "Muy bien!", y a continuación solicita otra multiplicación. Si la respuesta es incorrecta, imprimirá: "No, por favor intente de nuevo", y a continuación permitirá que el alumno vuelva a intentar la misma pregunta en forma repetida, hasta que al final la conteste correctamente.

Adjunto el código del programa que he hecho hasta el momento, pero el problema que tengo es que como hago para que verifique si la operacion esta correcta, y que si esta mala que lo vuelva a intentar.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int multiplicar( int x, int y );

int main()
{
    int numero1;
    int numero2;
    int total;
    int solucion;
   
    srand( time( NULL ) );
   
    numero1 = 1 + ( rand() % 9 );
    numero2 = 1 + ( rand() % 9 );
   
    printf( "Cuanto es %d ", numero1 );
    printf( "por %dn", numero2 );
   
    scanf( "%d", &solucion );
   
    multiplicar( numero1, numero2 );
   
   
    for(numero1; numero2; solucion = total){
                   
        printf( "Muy bien!nn" );
 
        numero1 = 1 + ( rand() % 9 );
        numero2 = 1 + ( rand() % 9 );
   
        printf( "Cuanto es %d ", numero1 );
        printf( "por %dn", numero2 );
   
        scanf( "%d", &solucion );
       
        multiplicar( numero1, numero2 );
       
    }
   
    for(numero1; numero2; solucion != total){
                printf( "No, intentelo de nuevo por favor" );
 
                printf( "Cuanto es %d ", numero1 );
                printf( "por %dn", numero2 );
   
                scanf( "%d", &solucion );
   
                multiplicar( numero1, numero2 );  
                           
    }
       
    return 0;
}
int multiplicar( int x, int y )
{
    int total;
    int numero1;
    int numero2;
   
   
    total = numero1 * numero2;
   
    return x * y;
   
}


Por favor, les pido q me ayuden, necesito los puntos para pasar.
Gracias

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Una consulta...
« Respuesta #1 en: Miércoles 26 de Agosto de 2009, 01:21 »
0
Cual es el punto de parada de la aplicacion?

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. int main()
  7. {
  8. int numero1;
  9. int numero2;
  10. int total;
  11. int solucion;
  12. int flag;
  13.  
  14.     flag = 0;
  15.     while (1)
  16.     {
  17.         if (flag == 0)
  18.         {
  19.             srand( time( NULL ) );
  20.  
  21.             numero1 = 1 + ( rand() % 9 );
  22.             numero2 = 1 + ( rand() % 9 );
  23.             total = (numero1 * numero2);
  24.         }
  25.  
  26.         printf( "Cuanto es %d ", numero1 );
  27.         printf( "por %dn", numero2 );
  28.         scanf( "%d", &solucion );
  29.        
  30.         if (solucion == total)
  31.         {
  32.             printf( "nMuy bien!n" );
  33.             flag = 0;
  34.         }
  35.         else
  36.         {
  37.             printf( "nNo, intentelo de nuevo por favorn");
  38.             flag = 1;
  39.         }
  40.     }
  41.  
  42. return 0;
  43. }
  44.  

Eugenio19

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Una consulta...
« Respuesta #2 en: Miércoles 26 de Agosto de 2009, 01:36 »
0
Mae gracias! Ya lo revisé, pero, que le cambio? No era necesario la función? Porque?

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Una consulta...
« Respuesta #3 en: Miércoles 26 de Agosto de 2009, 01:41 »
0
La funcion lo que hace es simplemente esto, asi que no vi necesidad de una:
Código: C
  1. total = (numero1 * numero2);
  2.  

Varias cosas cambie de la logica de la app.

Use una bandera (flag) para verificar la solucion y eventual accion.

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Una consulta...
« Respuesta #4 en: Miércoles 26 de Agosto de 2009, 01:42 »
0
Cita de: "Eugenio19"
Mae gracias!
Tico, por casualidad  :lol: