new 3 lunes, 16 de mayo de 2011 08:57 p.m. // Respuestas al primer examen parcial: // Ejercicio 1 import javax.swing.JOptionPane; class EficienciaVehículo { public static void main(String[] args) { Double millasRecorridas = new Double(JOptionPane.showInputDialog("Escriba las millas recorridas (0 para terminar)")); do { Double galonesConsumidos = new Double(JOptionPane.showInputDialog("Escriba los galones consumidos")); Double eficiencia = millasRecorridas/galonesConsumidos; Double eficienciaConvertida = galonesConsumidos/millasRecorridas/0.01609344*3.78541178; JOptionPane.showMessageDialog(null, new String().format("La eficiencia del vehículo es %1$.2f mi/gal (equivalente a %2$.2f l/100km).", eficiencia, eficienciaConvertida)); millasRecorridas = new Double(JOptionPane.showInputDialog("Escriba las millas recorridas (0 para terminar)")); } while (millasRecorridas > 0); } } -1- new 3 lunes, 16 de mayo de 2011 08:57 p.m. // Ejercicio 2 import javax.swing.JOptionPane; class GlobosClimáticos { public static void main(String[] args) { String respuesta; do { int tiempoInicial; do { tiempoInicial = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite tiempo inicial (menor que 48):")); } while (tiempoInicial>48); int tiempoFinal; do { tiempoFinal = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite tiempo final (menor que 48):")); } while (tiempoFinal>48); int incremento = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite tiempo incremento:")); double alturaMax = 0; int tiempoMax = 0; String tabla = "Globos climáticos\n\n"; int t = tiempoInicial; while (t <= tiempoFinal) { double altura = -0.12*Math.pow(t,4) + 12*Math.pow(t,3) - 380*Math.pow(t,2) + 4100*t + 220; double velocidad = -0.48*Math.pow(t,3) + 36*Math.pow(t,2) - 760*t + 4100; velocidad/= 3600; // La velocidad está en metros/hora y hay que convertirla a metros/segundo tabla+= "Tiempo: " + t + ", Altitud (m): " + String.format("%.2f", altura) + ", Velocidad (m/s): " + String.format("%.2f", velocidad) + "\n"; if (altura > alturaMax) { alturaMax = altura; tiempoMax = t; } t+= incremento; } tabla+= "\n\nLa altura máxima se da en el tiempo " + tiempoMax + " y su valor es " + String.format("%.2f", alturaMax); JOptionPane.showMessageDialog(null, tabla); Object[] opciones = { "Sí", "No" }; respuesta = (String) JOptionPane.showInputDialog(null, "¿Desea imprimr otra tabla?", "Globos climáticos", JOptionPane.QUESTION_MESSAGE, null, opciones, opciones[1]); } while (respuesta.equals("Sí")); } } -2- new 3 lunes, 16 de mayo de 2011 08:57 p.m. // Ejercicio 3 import javax.swing.JOptionPane; import javax.swing.JTextArea; public class ProgramaFibonacci { public static void main(String[] args) { Integer cuantos = new Integer(JOptionPane.showInputDialog("¿Cuántos Fibonacci desea? (0 para terminar)")); do { Integer indice = 3; Integer fAnterior = 1; // f(i-1) Integer fTrasanterior = 1; // f(i-2) // Título de la tabla y los dos primeros Fibonacci fijos. String tabla="Serie de Fibonacci hasta "+cuantos+".\n\n1\t1\n2\t1\n"; // Comienza a calcular a partir del índice 3. while (indice <= cuantos) { // Cálculo f(i) = f(i-1) + f(i-2): Integer fActual = fAnterior+fTrasanterior; // Se agrega a la tabla tabla+=indice+"\t"+fActual+"\n"; // Se aumentan los índices indice++; // Se actualiza el anterior y el trasanterior fTrasanterior = fAnterior; fAnterior = fActual; } JOptionPane.showMessageDialog(null, new JTextArea(tabla)); cuantos = new Integer(JOptionPane.showInputDialog("¿Cuántos Fibonacci desea? (0 para terminar)")); } while(cuantos != 0); } } -3-