domingo, 31 de octubre de 2010

Deitel_Java_4.23 (Los dos números más grandes de una lista)

_____________________________________________________________________________________
4.23 Utilizando una metodología similar ala del Ejercicio 4.21, encuentre los dos valores más grandes de los 10 que se introdujeron.
_____________________________________________________________________________________
SOLUCIÓN:
En este programa se ha incluido un mensaje "Hello", que no se pide en el ejercicio. Si no lo quiere se puede suprimir fácilmente.

El siguiente archivo debe guardarse con el nombre: Prueba_Ejercicio4_23.java

public class UsaDeitel_4_23
 
{ // Abre UsaDeitel_4_23
 
public static void main(String args[])
{ // Abre metodo main

Deitel_4_23 miObjeto = new Deitel_4_23("Hello");
miObjeto.Recibe();

} // cierra main
 
} // Cierra clase UsaDeitel_4_23

El siguiente archivo debe guardarse con el nombre: Prueba_Ejercicio4_23.java

import java.util.Scanner;           
            
public class Deitel_4_23          
            
{ // Abre clase Deitel_4_23        
Scanner entrada = new Scanner(System.in);        
private String mensaje;          
private int mayor;          
private int segundo;          
            
public Deitel_4_23( String cadena)         
{ // Abre constructor         
mensaje = cadena;          
} // Cierra constructor         
            
///////////////////////////////////////////////////////////////////////////            
//METODO RECIBE           
/////////////////////////////////////////////////////////////////////////            
            
public void Recibe()          
{ // Abre el metodo recibe       
int numero;           
int contador = 1;         
            
System.out.printf("\nEste es su mensaje: %s\n", mensaje);       
            
System.out.printf("\nEscriba por favor el numero %d: ", contador++);     
mayor = entrada.nextInt();          
            
System.out.printf("\nEscriba por favor el numero %d: ", contador++);     
segundo = entrada.nextInt();          
            
if ( segundo > mayor )       
Intercambia(segundo, mayor);           
            
while ( 10 >= contador)        
{ // Abre while         
            
System.out.printf("\nEscriba por favor el numero %d: ", contador++);     
numero = entrada.nextInt();          
            
if ( numero > mayor)        
Intercambia(numero, mayor);           
            
            
            
} // Cierra while         
            
            
System.out.printf("\nEl numero mayor es: %d y el siguiente es %d\n", mayor, segundo); 
            
} // Cierra el metodo recibe       
            
            
//////////////////////////////////////////////////////////////////////////            
//METODO INTERCAMBIA           
////////////////////////////////////////////////////////////////////////////            
public void Intercambia( int x, int y)      
{ // Abre metodo intercambia        
mayor = x;          
segundo = y;          
} // Cierra metodo intercambia        
            
            
            
            
} // Cierra clase Deitel_4_23        

_____________________________________________________________________________________
Esta entrada es parte de los problemas resueltos del libro Java. Cómo Prgramar de P. Deitel y H. Deitel
Entrada Anterior
Entrada Siguiente

3 comentarios:

  1. hola yo tengo una duda como puedo cambiar este código a la clase
    import javax.swing.JOptionPane;
    xfas ayuda es urgente :)

    ResponderEliminar
  2. Disculpa cual es mi error : el mayor 1 esta bien pero el mayor 2 me imprime mal.




    public class NumMayor {

    public static void main(String args[]){

    Scanner entrada = new Scanner(System.in);

    int cont = 1;
    int num;
    int mayor1 = 0;
    int mayor2 = 0;

    System.out.printf("Escriba el numero %d\n ", cont++);
    mayor1 = entrada.nextInt();

    System.out.printf("Escriba el numero %d\n ", cont++);
    mayor2 = entrada.nextInt();

    if (mayor2 > mayor1)
    mayor1 = mayor2;

    while (cont <= 10){

    System.out.printf("Escriba el numero %d\n", cont++);
    num = entrada.nextInt();

    if (num > mayor1)

    mayor1 = num;


    } // fin del while

    System.out.printf("El numero mayor1 es : %d\nEl numero mayor2 es : %d ",mayor1, mayor2);

    }

    }

    ResponderEliminar
  3. si le doy una lista del 1 al 10 me da correcto el mayor1 pero el mayor2 me da 2 ¿¿?? no se cual sea mi error

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...