|
|
Nombre:BigNum (Paquete de Manejo de Enteros de Precisión Infinita) Fecha de Entrega:
Motivación:El lenguaje C++ permite crear fácilmente nuevos tipos de datos que el usuario de éstos puede manipular naturalmente como si fueran propios del lenguaje. Uno de los problemas que se tienen en los sistemas de computación es la precisión finita de los números que manejan; por ejemplo una variable tipo int, se limita al rango -32,767 a 32,767, y si se tiene una variable tipo long, se limita a -4,294,967,296 a 4,294,967,295. En algunos casos esto no es suficiente, por lo que se plantea un problemael diseño de números enteros de precisión infinita, y su manejo. Cuando se dice precisión infinita no quiere decir que sean números infinitos, sino que el usuario puede definir la precisión que desea, usualmente será mayor que un long. Descripción:Este proyecto está orientado a poner en práctica el lenguaje C++ en la construcción de classes que definen sus propias operaciones. BigNum, entonces, es un módulo de manejo de enteros de precisión infinita, el cual permitirá expresar operaciones como 1548756423584841568 + 154887447843245, las cuales ningún lenguaje soporta hasta ahora. Aunque se especifica que es infinito, el límite máximo será de 1024 dígitos. El nombre BigNum fue tomado del New Hackers Dictionary (MIT Press, 1991), el cual provee una nota histórica del nombre. El proyecto consiste entonces en diseñar una clase en C++ que permita el manejo de estos números, y permita hacer operaciones sobre ellos. Como existe el límite de 1024 dígitos como máximo, la clase BigNum deberá hacer chequeo de Overflow. Las operaciones disponibles deberán ser:
Requerimientos:El programa a entregar deberá cumplir con lo siguiente:
|