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. Para esta prueba en particular no se permite emplear las clases java.math.BigInteger
ni java.math.BigDecimal
.
En Java, el valor entero positivo más grande almacenable en un tipo de datos primitivo (long
) es 9,223,372,036,854,775,807
. Suponga que una entidad bancaria le ha contratado para implementar un sistema que debe manejar correctamente cifras macroeconómicas. Se necesita una clase en Java que represente números enteros positivos de cualquier cantidad de dígitos. En la fase inicial de este proyecto usted debe construir esta clase y poder leer, imprimir y hacer sumas de números muy grandes, es decir, su solución debe hacer funcionar el siguiente programa:
El programa anterior permite al usuario ingresar una cantidad n
de números enteros positivos de longitud arbitraria, y muestra el resultado de sumarlos. Los siguientes son ejemplos de ejecución de este programa.
Entero
completa y correcta. Representa correctamente el número para que pueda crecer arbitrariamente. Hace adecuado manejo de miembros estáticos y no estáticos.leer()
: Lee correctamente enteros positivos de cualquier longitud del teclado (sugerencia: utilice el método next()
de la clase Scanner
). Retorna false
en caso de leer algo que no es un entero positivo válido.toString()
. Convierte el entero positivo en un String
.digitos()
retorna la cantidad de dígitos que componen al entero. Método digito(i)
retorna el i
-ésimo dígito del entero (contando de derecha a izquierda).e1.sumar(e2)
retorna un nuevo entero resultado de sumar el entero e1
con el entero e2
. Sugerencia: aproveche el método digito(i)
solicitado en el punto anterior.String
(método toString()
), de tal forma que hace la impresión del número más legible para el usuario.Para presentar su solución, suba su archivo Entero.java
a Mediación Virtual en la asignación con nombre Examen03
.