lunes, 27 de junio de 2011

Deitel_Java_6.30 (Aprendiendo las Tablas de Multiplicar en Java)

_____________________________________________________________________________________
6.30 Las computadoras están tomando un papel cada vez más importante en la educación. Escriba un programa que ayude a un estudiante de la escuela primaria, para que aprenda a multiplicar. Use un objeto Random para producir dos enteros positivos de un signo. El programa debe entonces mostrar una pregunta al usuario, como:

Cuanto es 6 * 7?

El estudiante entonces debe escribir la respuesta. Luego, el programa debe verificar la respuesta del estudiante. Si es correcta, dibuje la cadena "Muy bien!" y haga otra pregunta de multiplicación. Si la respuesta es incorrecta, dibuje la cadena "No. Por favor intenta de nuevo." y deje que el estudiante intente la misma pregunta varias veces, hasta que esté correcta. Debe utilizarse un método separado para generar cada pregunta nueva. Este método debe llamarse una vez cuando la aplicación empiece a ejecutarse, y cada vez que el usuario responda correctamente a la pregunta.
_____________________________________________________________________________________
SOLUCIÓN:
Éste programa es simple en su construcción. El siguiente presenta una mejora con respecto a las opciones de diálogo con el usuario.

El código siguiente tiene que guardarse con el nombre UsaDeitel_6_30.java

public class UsaDeitel_6_30

{       // Abre clase UsaDeitel_6_30

public static void main(String args[])

{            // Abre main
Deitel_6_30 miObjeto = new Deitel_6_30();
miObjeto.Pregunta();
}            // Cierra main
}       // Cierra clase UsaDeitel_6_30

El código siguiente tiene que guardarse con el nombre UsaDeitel_6_30.java

import java.util.Random;
import java.util.Scanner;

public class Deitel_6_30

{      // Abre clase Deitel_6_30


public void Pregunta()
 
{    // Abre metodo Pregunta
Scanner recibe = new Scanner(System.in);

int respuesta; 
do 
{   // Abre do
Genera();

System.out.println("\nQuiere volver a intentar?");
System.out.println("Introduzca un numero (-1 para terminar)");
respuesta = recibe.nextInt();

}   // Cierra do
while ( -1 != respuesta );
}    // Cierra Pregunta
 
public void Genera()

{        // Abre metodo Genera
Random salida = new Random();
Scanner entrada = new Scanner(System.in);
int numero1;
int numero2;
int respuesta;
int Escala = 9;

numero1 = 1 + salida.nextInt(Escala);
numero2 = 1 + salida.nextInt(Escala);

do
{       // Abre while
System.out.printf("\nCuanto es %d * %d?\n", numero1, numero2 );
respuesta = entrada.nextInt();

if ( numero1*numero2 != respuesta )
System.out.println("\nNo. Por favor intenta de nuevo.");
 
}    // Cierra while
while( numero1*numero2 != respuesta);

System.out.println("\nMuy bien!");

}        // Cierra metodo Genera

}      // Cierra clase Deitel_6_30

4 comentarios:

  1. Como seria ese mismo programa pero con las siguientes modificaciones?

    1.- Por cada respuesta acertada debes de mostrar alguno de los siguientes mensajes de forma aleatoria:
    ¡Sigue asi!
    ¡Excelente!
    ¡Buen Trabajo!

    Por cada respuesta incorrecta debes de mostrar alguno de los siguientes mensajes de forma aleatoria:
    Incorrecto, intenta una vez mas
    No te rindas
    No. sigue intentado

    En caso de que el alumno falle la pregunta dos veces seguidas, se debe calcular otra operación.

    modificar el programa de manera que atraves de un menu podamos resolver operaciones de nivel Basico(Suma y resta con 1 digito), Intermedio(Suma resta con 2 digitos) y Avanzado (Suma, resta, mult y division con 2 digitos). Para las divisiones debes de asegurarte de generar resultados enteros.

    Realizar solo 15 preguntas y mostrar la calificacion al usuario.

    ResponderEliminar
    Respuestas
    1. Sería como en Ésta entrada. Sólo tienes que cambiar la condición del do while por un contador en vez del centinela.

      Eliminar
  2. Como seria el mismo ejercicio pero en un applet, gracias.

    ResponderEliminar
    Respuestas
    1. ¡Hola! La verdad, ese programa sí te lo debo, porque no uso applets en java. Aunque supongo que no debe ser difícil, puesto que es como una entrada y salida de datos normal.
      Saludos.

      Eliminar

Related Posts Plugin for WordPress, Blogger...