Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI-0202 Principios de informática - 2012c
Profesor Jeisson Hidalgo-Céspedes
Grupo 903:
El examen es de carácter práctico y puede realizarse en una computadora donde se tenga instalado el Java Development Kit (JDK). El estudiante puede consultar de cualquier recurso o referencia que guste, sean hechos durante el curso, estén publicados en libros o en la web. En caso de reutilizar código que haya trabajado con otros compañeros, debe informarlo al profesor al iniciar el examen. Se dispone de dos horas para entregar la prueba y debe realizarse en forma estrictamente individual.
Escriba un programa en Java que imprima las tablas de los operadores aritméticos. El usuario puede ajustar cada tabla de acuerdo al operador aritmético (+
, -
, *
, /
, %
); y al rango de valores reales al cual quiere aplicarse, expresado como un valor mínimo, un valor máximo y un incremento. El programa crea una tabla resultado de evaluar los números entre el mínimo y el máximo en los incrementos dados utilizando el operador. Por ejemplo:
Tablas de operadores Operador [1=+ 2=- 3=* 4=/ 5=% 0=Salir]: 3 Valor minimo: 1 Valor maximo: 10 Incremento: 1 * | 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 ------------------------------------------------------------------ 1.0 | 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 2.0 | 2.0 4.0 6.0 8.0 10.0 12.0 14.0 16.0 18.0 20.0 3.0 | 3.0 6.0 9.0 12.0 15.0 18.0 21.0 24.0 27.0 30.0 4.0 | 4.0 8.0 12.0 16.0 20.0 24.0 28.0 32.0 36.0 40.0 5.0 | 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 6.0 | 6.0 12.0 18.0 24.0 30.0 36.0 42.0 48.0 54.0 60.0 7.0 | 7.0 14.0 21.0 28.0 35.0 42.0 49.0 56.0 63.0 70.0 8.0 | 8.0 16.0 24.0 32.0 40.0 48.0 56.0 64.0 72.0 80.0 9.0 | 9.0 18.0 27.0 36.0 45.0 54.0 63.0 72.0 81.0 90.0 10.0 | 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 Operador [1=+ 2=- 3=* 4=/ 5=% 0=Salir]: 1 Valor minimo: -3 Valor maximo: 4 Incremento: 1 + | -3.0 -2.0 -1.0 0.0 1.0 2.0 3.0 4.0 ------------------------------------------------------ -3.0 | -6.0 -5.0 -4.0 -3.0 -2.0 -1.0 0.0 1.0 -2.0 | -5.0 -4.0 -3.0 -2.0 -1.0 0.0 1.0 2.0 -1.0 | -4.0 -3.0 -2.0 -1.0 0.0 1.0 2.0 3.0 0.0 | -3.0 -2.0 -1.0 0.0 1.0 2.0 3.0 4.0 1.0 | -2.0 -1.0 0.0 1.0 2.0 3.0 4.0 5.0 2.0 | -1.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 3.0 | 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 4.0 | 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 Operador [1=+ 2=- 3=* 4=/ 5=% 0=Salir]: 4 Valor minimo: .5 Valor maximo: 2 Incremento: -.5 Incremento: -1 Incremento: 0 Incremento: 0.5 / | 0.5 1.0 1.5 2.0 ------------------------------ 0.5 | 1.0 0.5 0.3 0.3 1.0 | 2.0 1.0 0.7 0.5 1.5 | 3.0 1.5 1.0 0.8 2.0 | 4.0 2.0 1.3 1.0 Operador [1=+ 2=- 3=* 4=/ 5=% 0=Salir]: 0
Su programa debe permitir al usuario solicitar tablas repetitivamente, hasta que indique en forma explícita que desea salir del sistema. Se debe además evitar caer en ciclos infinitos: se le debe solicitar repetitivamente al usuario el incremento hasta que provea uno mayor a 0.
El formateo de las tablas es muy importante para que sean legibles para el usuario. Su programa debe imprimir una fila y una columna de encabezado, separadas por guiones (-
) y barras verticales (|
). Además debe imprimir cada número en un campo de una cantidad razonable de espacio. Sugerencia: utilice el método System.out.printf()
.
Usted puede opcionalmente mejorar la usabilidad de su programa, permitiéndole al usuario ingresar los operadores textualmente en lugar de códigos numéricos. Note entonces que al ingresar la palabra "salir
" (en cualquier combinación de mayúsculas y minúsculas) se convierte en el mecanismo para terminar el programa. Además imprima los enteros sin decimales, como se puede ver en la siguiente ejecución:
Tablas de operadores Operador [+|-|*|/|%|salir]: % Valor minimo: 1 Valor maximo: 7 Incremento: 1 % | 1 2 3 4 5 6 7 ------------------------------------------------ 1 | 0 1 1 1 1 1 1 2 | 0 0 2 2 2 2 2 3 | 0 1 0 3 3 3 3 4 | 0 0 1 0 4 4 4 5 | 0 1 2 1 0 5 5 6 | 0 0 0 2 1 0 6 7 | 0 1 1 3 2 1 0 Operador [+|-|*|/|%|salir]: * Valor minimo: 1 Valor maximo: 3 Incremento: .5 * | 1 1.5 2 2.5 3 ------------------------------------ 1 | 1 1.5 2 2.5 3 1.5 | 1.5 2.3 3 3.8 4.5 2 | 2 3 4 5 6 2.5 | 2.5 3.8 5 6.3 7.5 3 | 3 4.5 6 7.5 9 Operador [+|-|*|/|%|salir]: sALIR
main()
. Los identificadores son significativos. La indentación ayuda a entender la estructura del código. Los paréntesis (redondos, cuadrados y llaves) están balanceados.salir
".Para presentar su solución, suba su archivo .java
a Mediación Virtual en la asignación con nombre Examen01
.