55502546 Guia de Ejercicios Resueltos Java

5
Guía de Ejercicios Java Ejercicio 7: Desarrolle un método al que le pasamos el nombre y apellidos de una persona como un sólo String con el típico formato "apellidos, nombre". El método nos devolverá un nuevo formato: "nombre apellidos". Por ejemplo: System.out.println (miMetodo ("Troncoso, Sergio.")); imprime Sergio Troncoso R: String miMetodo (String junto) { int coma= junto.indexOf (','); String apellido= junto.substring (0, coma); String nombre= junto.substring (coma+2); return nombre + " " + apellido; } Nota2: el método indexOf devuelve la posición de un caracter dentro de un string. Nota2: el método substring devuelve la parte de un string comprendida entre 2 valores. Si se coloca un sólo parámetro devuelve la parte del string comprendida entre el valor del parámetro y el final. Ej: substring(0,3) del string “computación” devuelve “comp” (la primera posición es 0). Ej2: para el mismo caso substring(8) devuelve “ión”. Ejercicio 8: Dada una variable entera t que almacena el tiempo transcurrido del día en segundos, escriba las expresiones que permitan extraer las horas, minutos y segundos transcurridos del día (h, m, s). Ejemplo: t= 3723; h= 1; m= 2; s= 3; R: h= t / 3600; m= (t % 3600) / 60; s= t % 60; Ejercicio 9: Escriba un método al que le pasemos dos números reales y devuelva el de mayor valor absoluto. R: double maxAbs (double x, double y){ return (Math.max (Math.abs (x), Math.abs (y))); } Nota:1 El método max devuelve el mayor entre 2 valores. Nota2: El método abs devuelve el valor absoluto de un número. Ejercicio 10: Escriba un método que devuelva si un material flota en el agua o no, a partir de su masa y su volumen. Utilice un método auxiliar que calcule la densidad del material. R: public boolean flota (double masa, double volumen){ if densidad(masa,volumen)<1{ return (“Flota”)}

Transcript of 55502546 Guia de Ejercicios Resueltos Java

Page 1: 55502546 Guia de Ejercicios Resueltos Java

Guía de Ejercicios Java

Ejercicio 7: Desarrolle un método al que le pasamos el nombre y apellidos de una persona como un sólo String con el típico formato "apellidos, nombre". El método nos devolverá un nuevo formato: "nombre apellidos". Por ejemplo:

System.out.println (miMetodo ("Troncoso, Sergio.")); imprime

Sergio Troncoso

R:String miMetodo (String junto) {

int coma= junto.indexOf (',');

String apellido= junto.substring (0, coma);

String nombre= junto.substring (coma+2);

return nombre + " " + apellido;

}

Nota2: el método indexOf devuelve la posición de un caracter dentro de un string.Nota2: el método substring devuelve la parte de un string comprendida entre 2 valores. Si se coloca un sólo parámetro devuelve la parte del string comprendida entre el valor del parámetro y el final. Ej: substring(0,3) del string “computación” devuelve “comp” (la primera posición es 0). Ej2: para el mismo caso substring(8) devuelve “ión”.

Ejercicio 8: Dada una variable entera t que almacena el tiempo transcurrido del día en segundos, escriba las expresiones que permitan extraer las horas, minutos y segundos transcurridos del día (h, m, s). Ejemplo:

t= 3723; h= 1; m= 2; s= 3;

R: h= t / 3600; m= (t % 3600) / 60; s= t % 60;

Ejercicio 9: Escriba un método al que le pasemos dos números reales y devuelva el de mayor valor absoluto.

R:double maxAbs (double x, double y){ return (Math.max (Math.abs (x), Math.abs (y))); }

Nota:1 El método max devuelve el mayor entre 2 valores.Nota2: El método abs devuelve el valor absoluto de un número.

Ejercicio 10: Escriba un método que devuelva si un material flota en el agua o no, a partir de su masa y su volumen. Utilice un método auxiliar que calcule la densidad del material.

R: public boolean flota (double masa, double volumen){ if densidad(masa,volumen)<1{ return (“Flota”)}

Page 2: 55502546 Guia de Ejercicios Resueltos Java

else{ return(“no flota”); } }

private double densidad (double masa, double volumen){

return (masa / volumen);

}

Ejercicio 11: Dado el siguiente algoritmo, escribir el programa que debería resultar:

1. Escribir en pantalla "Ingrese el valor para A?" 2. Pedir un valor real 3. Si ingresa un 0 escribir en pantalla "No puede dividir por 0" y terminar el programa4. Escribir en pantalla "Ingrese el valor para b?" 5. Pedir otro valor real 6. Dividir el valor obtenido en 5 por el valor obtenido en 2 7. Entregar en pantalla "El valor de la incógnita es = " y el valor obtenido en 6

R: static public void main (String args[]) {

Console C = new Console();c.println(“Ingrese el valor para A?”);double A = c.readDouble();if (A == 0) {

c.println(“No puede dividir por 0”);} else {

c.println(“Ingrese el valor para b?”);double b = c.readDouble();double x = b / A;c.println(“El valor de la incógnita es = “ + x);

} }

Ejercicio 12: Escriba la clase Circulo, que recibe como parámetro el radio de la circunferencia y que contiene los siguientes métodos:public double area(){...}public double perimetro(){...}

R:class Circulo{public double area(double radio){

return (3.14*radio*radio);}

public double perimetro(double radio){return (2*3.14*radio);}

}

Ejercicio 13: Escriba la clase Dado, que recibe como parámetro la cantidad de caras que tendrá el dado y contiene el siguiente método:

R: class Dado{}public int tirar(int caras){

return (Math.random()*caras+1);}

Page 3: 55502546 Guia de Ejercicios Resueltos Java

Nota: Math.random genera un número aleatorio entre >0 y <1.

Ejercicio 14: A continuación se presenta el típico programa del Cachipún. El código para un juego es el siguiente:

class cachip {// Un método que calcule un número aleatorio genéricostatic int aleatorio () {

double r = Math.random();int res = (int) (r*3+1);return (res);

}

static public void main (String[] args) {Console c = new Console();c.println("Significado: 1=papel, 2=tijeras, 3=piedra");

// Inicialización de variables de juegoint jugador = 0;int computador = 0;c.println("Ingrese su opción (1)(2)(3)");jugador = c.readInt();computador = aleatorio();c.println("El computador juega " + computador);if ( (jugador == 1 && computador == 3)

|| jugador > computador){c.println("Gana el Jugador");}

else if ( (jugador == 3 && computador == 1) || jugador < computador)

{c.println("Gana el Computador");}

}} Modifique el código anterior para jugar una cantidad de veces determinada por el usuario y que al final muestre quién ganó en el acumulado de juegos.

R:

class cachip {// Un método que calcule un número aleatorio genéricostatic int aleatorio () {

double r = Math.random();System.out.println(r);int res = (int) (r*3+1);System.out.println(res);return ((res));

}

static public void main (String[] args) {Console c = new Console();c.println("Significado: 1=papel, 2=tijeras, 3=piedra");

// Inicialización de variables de juegoint jugador = 0;

Page 4: 55502546 Guia de Ejercicios Resueltos Java

int computador = 0;int contadorJugador = 0, contadorComputador = 0;int veces;int numero=0;c.println("¿Cuántas veces desea jugar?");veces=c.readInt();while (numero<veces) {

c.println("Ingrese su opción (1)(2)(3)");jugador = c.readInt();

computador = aleatorio();c.println("ran= "+computador);c.println("computador juega " + computador);

if ( (jugador == 1 && computador == 3) || jugador > computador)

contadorJugador ++;else if ( (jugador == 3 && computador == 1)

|| jugador < computador)contadorComputador ++;

// Resultado Acumuladoc.println("Puntajes:");c.println("Persona " + contadorJugador);c.println("Computador " + contadorComputador);numero=numero+1;

}}

}

Ejercicio 15: Escribir un programa que simule un cajero automático, estableciendo el diálogo indicado en el siguiente ejemplo:

¿Cuánto dinero necesita? 39000Retire los siguientes billetes del dispensador:1 de $20.0001 de $10.0001 de $5.0002 de $2.000

- Preguntar cuanto dinero se necesita- Guardar el valor (cantidad) ingresado en una variable- Mostrar el mensaje "Retire los siguientes billetes:"- Calcular (division) el numero de billetes de 20000 que se necesitan paraentregar esa suma (la cantidad)- Mostrar el numero de billetes de 20000- Calcular lo que falta por repartir(resto) luego de repartir billetes de 20000 y eso entregarlo (dividir) en billetes de 10000- Mostrar el numero de billetes de 10000- Calcular lo que falta por repartir(resto) luego de repartir lo que quedaba en billetes de 10000 y eso entregarlo (dividir) en billetes de 5000- Mostrar el numero de billetes de 5000- Calcular lo que falta por repartir(resto) luego de repartir lo que quedaba en billetes de 5000 y eso entregarlo (dividir) en billetes de 2000- Mostrar el numero de billetes de 2000- Calcular lo que falta por repartir(resto) luego de repartir lo que quedaba en billetes de 2000 y eso entregarlo (dividir) en billetes de 1000- Mostrar el numero de billetes de 1000

Page 5: 55502546 Guia de Ejercicios Resueltos Java

Nota: el usuario sólo ingresa una cantidad de dinero en "miles" (es decir no hay 500 ni 100, ni 10, ni 5 pesos. No, tampoco 1 peso).Posteriormente repita la operación hasta que el usuario lo determine (ciclo do-while).

R:

class cajero {static public void main (String args[]) {

// DeclaracionesConsole C = new Console();C.print("Cuanto dinero necesita? "); int d =C.readInt();C.println("Retire los siguientes billetes:");C.println( d/20000 + " de $20.000");d=d%20000;C.println( d/10000 + " de $10.000");d=d%10000;C.println( d/5000 + " de $5.000");d=d%5000;C.println( d/2000 + " de $2.000");d=d%2000;C.println( d/1000 + " de $1.000");

}}

3b) En un ciclo:

class cajero {static public void main (String args[]) {

// DeclaracionesConsole C = new Console();char op;do{C.print("Cuanto dinero necesita? "); int d =C.readInt();C.println("Retire los siguientes billetes:");C.println( d/20000 + " de $20.000");d=d%20000;C.println( d/10000 + " de $10.000");d=d%10000;C.println( d/5000 + " de $5.000");d=d%5000;C.println( d/2000 + " de $2.000");d=d%2000;C.println( d/1000 + " de $1.000");C.println("Desea hacer otra operación s/n?");op =C.readChar();}while (op=='s');

}}