4.24 Modifique el programa de la figura 4.12 para validar sus entradas.Para cualquier entrada, si el valor introducido es distinto de 1 o 2, debe seguir iterando hasta que el usuario introduzca un valor correcto.
_____________________________________________________________________________________
SOLUCIÓN:
Como la mayoría de los problemas de este capítulo, éste es fácil. Se lleva la contabilidad de los alumnos aprobados y reprobados mediante instrucciones if. Al final, si más de 8 han aprobado, se imprime el mensaje "Aumentar la colegiatura".
El siguiente código debe guardarse con el nombre UsaDeitel_4_24.java
public class UsaDeitel_4_24 { // Abre la clase public static void main(String args[]) { // Abre main Deitel_4_24 aplicacion = new Deitel_4_24(); aplicacion.procesarResultadosExamen(); } // Cierra main } // Cierra la clase
El siguiente código debe guardarse con el nombre Deitel_4_24.java
import java.util.Scanner; public class Deitel_4_24 { // Abre clase public void procesarResultadosExamen() { // Abre procesarResultadosExamen Scanner entrada = new Scanner(System.in); int aprobados = 0; int reprobados = 0; int contadorEstudiantes = 1; int resultado; while (contadorEstudiantes <= 10) { // ABre while System.out.println("\nEscriba el resultado (1 = aprobado, 2 = reprobado)"); resultado = entrada.nextInt(); if ( 1 == resultado) aprobados = aprobados + 1; else reprobados = reprobados + 1; contadorEstudiantes = contadorEstudiantes + 1; } // cierra while System.out.printf("\nAprobados: %d\nReprobados: %d\n", aprobados, reprobados); if (aprobados > 8) System.out.println("\nAumentar colegiatura."); } // Cierra el metodo procesarResultadosExamen } //Cierra clase
_____________________________________________________________________________________
Esta entrada es parte de los problemas resueltos del libro Java. Cómo Prgramar de P. Deitel y H. Deitel
Entrada Anterior
Entrada Siguiente
el ejercicio es una copia del 4.12 en el 4.24 tienes que poner una condición antes de que le pida la información al usuario para que solo pueda ingresarlos números 1 y 2 , esta mal tu ejemplo
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarScanner S = new Scanner ( System.in );
ResponderEliminarint resultado = 0;
int aprobados = 0;
int reprobados = 0;
int contadorEstudiantes = 0;
int repetir = 5;
while ( contadorEstudiantes < 10 ){
while ( repetir != 0 ){
System.out.printf("Examen %d Introduce 1 para aprobados o 2 para los reprobados: ", contadorEstudiantes+1);
resultado = S.nextInt();
if ( resultado == 1){
repetir = 0;
}else if ( resultado == 2){
repetir = 0;
}
}
if ( resultado == 1)
aprobados++;
else
reprobados++;
contadorEstudiantes++;
repetir = 5;
}
/*4.24 (Validar la entrada del usuario) Modifique el programa de la figura 4.12 para
ResponderEliminar* validar sus entradas. Para cualquier entrada, si el valor introducido es distinto de
* 1 o 2, debe seguir iterando hasta que el usuario introduzca un valor correcto.
*/
// Fig. 4.12: Analisis.java
// Analisis de los resultados de un examen, utilizando instrucciones de control anidadas.
import java.util.Scanner; // esta clase utiliza la clase Scanner
public class Ejercicio0424
{
public static void main( String[] args )
{
// crea objeto Scanner para obtener la entrada de la ventana de comandos
Scanner entrada = new Scanner( System.in );
// inicialización de las variables en declaraciones
int aprobados = 0; // número de aprobados
int reprobados = 0; // número de reprobados
int contadorEstudiantes = 1; // contador de estudiantes
int resultado; // un resultado del examen (obtiene el valor del usuario)
// procesa 10 estudiantes, usando ciclo controlado por contador
while ( contadorEstudiantes <= 10 )
{
// pide al usuario la entrada y obtiene el valor
System.out.print( "Escriba el resultado (1 = aprobado, 2 = reprobado): " );
resultado = entrada.nextInt();
while((resultado!=1)&&(resultado!=2)){
System.out.println("Opción errónea");System.out.print( "Escriba el resultado (1 = aprobado, 2 = reprobado): " );
resultado = entrada.nextInt();
}
// if...else anidado en la instrucción while
if ( resultado == 1 ) // si resultado 1,
aprobados = aprobados + 1; // incrementa aprobados;
else // de lo contrario, resultado no es 1, por lo que
reprobados = reprobados + 1; // incrementa reprobados
// incrementa contadorEstudiantes, para que el ciclo termine en un momento dado
contadorEstudiantes = contadorEstudiantes + 1;
} // fin de while
// fase de terminación; prepara y muestra los resultados
System.out.printf( "Aprobados: %d\nReprobados: %d\n", aprobados, reprobados );
// determina si más de 8 estudiantes aprobaron
if ( aprobados > 8 )
System.out.println( "Bono para el instructor!" );
} // fin de main
} // fin de la clase Analisis
/**************************************************************************
* (C) Copyright 1992-2012 por Deitel & Associates, Inc. y *
* Pearson Education, Inc. Todos los derechos reservados. *
* *
* RENUNCIA: Los autores y el editor de este libro han realizado su mejor *
* esfuerzo para preparar este libro. Esto incluye el desarrollo, la *
* investigación y prueba de las teorías y programas para determinar su *
* efectividad. Los autores y el editor no hacen ninguna garantía de *
* ningún tipo, expresa o implícita, en relación con estos programas o *
* con la documentación contenida en estos libros. Los autores y el *
* editor no serán responsables en ningún caso por los daños consecuentes *
* en conexión con, o que surjan de, el suministro, desempeño o uso de *
* estos programas. *
*************************************************************************/