Programming
T03-001-02 Ejercicios con funciones.
Enunciado
Euroconversor con funciones
Queremos hacer un programa Java que permita pasar de euros a pesetas y viceversa. Para ello, el usuario introducirá una de las siguientes opciones:
1. Pasar de pesetas a euros
2. Pasar de euros a pesetas
3. Salir
Tras introducir una de las opciones el usuario introducirá un número, que será la cantidad a convertir, en euros o pesetas, según la opción seleccionada.
Para los euros usaremos números decimales (float) con dos decimales, mientras que para las pesetas usaremos números enteros (int)
Por último, se mostrará el resultado de la conversión.
Esto se estará repitiendo hasta que el usuario decida abandonar el programa con la opción de "Salir".
Equivalencia: 1 euro = 166.386 pesetas
ENTRADA
La entrada comienza con un número indicando cuántos casos de prueba habrá que procesar.
A continuación habrá una línea para cada caso.
Cada línea será una secuencia de opción de conversión y cantidad a convertir (en pesetas o euros, según la opción), donde cada cantidad será un número entre 0 y 10000, hasta que se pulse la opción 3. Es decir, cada línea termina con la opción 3.
SALIDA
Por cada caso de prueba, el programa escribirá el resultado para cada conversión del caso con el texto que puede observarse en el OUTPUT.
Entre caso y caso, se imprimirá la frase "SIGUIENTE CASO", tal y como puede observarse en el OUTPUT.
RESTRICCIONES
Se deberá implementar una función que reciba un float y un entero y redondee el float con el número de decimales que se hayan indicado en el número entero. Para saber cómo hacer esto, visita este enlace. En el enlace te explica cómo redondear a 2 decimales. Deberás generalizar el problema a redondear a N decimales, obteniendo así una función más reutilizable.
Deberá resolverse el problema diseñando dos funciones más, una que pase de pesetas a euros y otra que pase de euros a pesetas.
Se proporcionan las cabeceras o interfaces de dichas funciones en la sección MUST CONTAIN
La función que devuelve euros, devolverá un número decimal con dos decimales.
La función que devuelve pesetas, devolverá un número entero redondeado, usando la función Math.round.
El programa principal pedirá las opciones y las irá resolviendo haciendo llamadas a las funciones, e imprimiendo posteriormente el resultado calculado y devuelto por la función correspondiente.
Solución
import java.util.Scanner;
public class FEuroconversor {
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
int numCasos = 0;
float dineroEuros = 0;
int dineroPesetas = 0;
int opcion = 0;
numCasos = sc.nextInt();
for (int i = 1; i <= numCasos; i++) {
do {
System.out.println("1. Pasar de pesetas a euros");
System.out.println("2. Pasar de euros a pesetas");
System.out.println("3. Salir");
opcion = sc.nextInt();
switch (opcion) {
case 1:
System.out.print("Introduzca cantidad: ");
dineroPesetas = sc.nextInt();
System.out.println("\nSon " + pasarAEuros(dineroPesetas) + " euros");
break;
case 2:
System.out.print("Introduzca cantidad: ");
dineroEuros = sc.nextFloat();
System.out.println("\nSon " + pasarAPesetas(dineroEuros) + " pesetas");
break;
case 3:
break;
}
} while (opcion != 3);
System.out.println("SIGUIENTE CASO");
}
}
public static float redondearNdecimales(float numero, int decimales) {
float divisor;
divisor = (float) Math.pow(10, decimales);
return Math.round(numero * divisor) / divisor;
}
public static float pasarAEuros(int pesetas) {
return redondearNdecimales(pesetas / 166.386f, 2);
}
public static int pasarAPesetas(float euros) {
return Math.round(euros * 166.386f);
}
}
Input
4 2 60,88 1 1000 1 1588 2 90 3 1 1500 2 50 2 1050,49 1 3000 2 60,50 3 3 1 10000 3
4 2 30,44 1 500 1 794 2 45 3 1 750 2 25 2 525,24 1 1500 2 30,25 3 3 1 10000 3
Output
1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 10130 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 6.01 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 9.54 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 14975 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 9.02 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 8319 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 174787 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 18.03 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 10066 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 60.1 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO
1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 5065 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 3.01 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 4.77 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 7487 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 4.51 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 4160 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 87393 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 9.02 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 5033 pesetas 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir Introduzca cantidad: Son 60.1 euros 1. Pasar de pesetas a euros 2. Pasar de euros a pesetas 3. Salir SIGUIENTE CASO

