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
Como seria ese mismo programa pero con las siguientes modificaciones?
ResponderEliminar1.- 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.
Sería como en Ésta entrada. Sólo tienes que cambiar la condición del do while por un contador en vez del centinela.
EliminarComo seria el mismo ejercicio pero en un applet, gracias.
ResponderEliminar¡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.
EliminarSaludos.