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.