SlideShare ist ein Scribd-Unternehmen logo
1 von 2
Downloaden Sie, um offline zu lesen
Universidad Francisco Marroquín
F.I.S.I.C.C.
Programación III
1er semestre 1992
Prof. : Egdares Futch H.


                                       Proyecto #4
                 BigNum - paquete de manejo de enteros de precisión infinita

Motivación
         El lenguaje C++ permite crear fácilmente nuevos tipos de datos, que el usuario de éstos
puede manipular naturalmente como si fueran parte del lenguaje. Uno de los problemas que se
tienen en sistemas de computación es la precisión finita de los números que se manejan; por
ejemplo, si se tiene una variable de tipo int, se limita al rango -32,768..32,767, y si se tiene una
variable de tipo long, se limita al rango -4,294,967,296..4,294,967,295. En algunos casos, esto no
es suficiente, por lo que se plantea como problema el 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 se desea, la que 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
clases 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 123456789823642384234 + 2346891790891235, las
cuales ningún lenguaje soporta hasta ahora. Aunque se especifica que es infinito, el límite
máximo deberá ser de 1024 dígitos. El nombre BigNum fue tomado del New Hacker's Dictionary
(MIT Press, 1991) el cual provee una nota histórica del nombre.

      El proyecto consiste entonces en diseñar una clase de C++ que permita el manejo de estos
números, y permita hacer operaciones con ellos. Como existe el límite de 1024 dígitos como
máximo, la clase BigNum deberá tener chequeo de overflow.

        Las operaciones disponibles deben ser :
               - suma (+,+=)
               - resta (-,-=)
               - multiplicación (*,*=)
               - división (/,/=)
               - incremento/decremento (++,--)
               - complemento (- unario)
               - output (salida a cout sobrecargada)

Requerimientos
        El programa a entregar debe cumplir con los siguientes requerimientos :
                - Escrito en lenguaje C++
                - No debe desperdiciar espacio y debe destruir su almacenamiento interno
                - Modular, capaz de ser utilizado en varios programas (hacer .h y .cpp)
                - Chequeo de errores (overflow, mal formato, etc.)
                - Programas de prueba, según lo descrito posteriormente.
Programas de prueba
        Para la entrega de este proyecto, se deberán entregar los siguientes programas de prueba:
        a) powerof2.cpp          calcula el valor de 2^128
        b) trek.cpp              calcula la distancia recorrida, en metros, por el Enterprise
                                  a warp 9 (warp 9 = 1516c ) durante una temporada de Star Trek
                                 normal (20 episodios de 4 "días" de duración c/u)
        c) fib.cpp               calcula el valor de fib(30)

Fecha de entrega y documentación a entregar
        La fecha de entrega será el día jueves 9 de abril. NO habrán prórrogas de tiempo puesto
que éstas atrasan el curso. La documentación a entregar consistirá en (no folders, no clips) :

                - Diskette con el proyecto (.CPP,.H, .OBJ y .EXE, 5.25" o 3.5" sin virus)
                - Carátula con nombre, carnet y nombre de proyecto
                - Descripción del proyecto (1 hoja máx.)
                - Funcionamiento del proyecto (1 hoja máx.)
                - Manual de uso del proyecto (lo necesario)
                - Descripción de rutinas y procedimientos usados
                - Comentarios de implementación (opcional, puede mejorar nota)
                - Listados de programa

Hints
        Como un ejemplo de uso, podría tomarse el siguiente :

        main()
        {
              BigNum a("1231242342124124124124124"),b;

              b = a;      // asignamos
              b++;        // incremento en 1
              b += a;     // b = b + a
              cout << b; // imprimimos el contenido de b
              a *= 4567; // ojo
              a+=BigNum("29038401275230927345072309455273458923
        cout << a; // este si es un BigNum
              return 0;   // salimos
        }

Weitere ähnliche Inhalte

Was ist angesagt?

Tema 2 - Programación básica en C (I)
Tema 2  - Programación básica en C (I)Tema 2  - Programación básica en C (I)
Tema 2 - Programación básica en C (I)Pablo Haya
 
Tema 2 - Programación básica en C (II)
Tema 2  - Programación básica en C (II)Tema 2  - Programación básica en C (II)
Tema 2 - Programación básica en C (II)Pablo Haya
 
Optimización global
Optimización globalOptimización global
Optimización globalSaory Rma
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladoresjoselin33
 
Funciones con retorno en lengaje c utp ejemplos
Funciones con retorno en lengaje c utp ejemplosFunciones con retorno en lengaje c utp ejemplos
Funciones con retorno en lengaje c utp ejemplosHome
 
Programas 11 20
Programas 11 20Programas 11 20
Programas 11 20Ali VB
 
Programación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConESProgramación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConESCAChemE
 
Compa de lengu pas c javi
Compa de lengu pas c javiCompa de lengu pas c javi
Compa de lengu pas c javiJavier Torres
 
Eficiencia en uso de recursos memoria 1a parte
Eficiencia en uso de recursos memoria 1a parteEficiencia en uso de recursos memoria 1a parte
Eficiencia en uso de recursos memoria 1a parteUVM
 

Was ist angesagt? (12)

Caract
CaractCaract
Caract
 
Tema 2 - Programación básica en C (I)
Tema 2  - Programación básica en C (I)Tema 2  - Programación básica en C (I)
Tema 2 - Programación básica en C (I)
 
Tema 2 - Programación básica en C (II)
Tema 2  - Programación básica en C (II)Tema 2  - Programación básica en C (II)
Tema 2 - Programación básica en C (II)
 
Optimización global
Optimización globalOptimización global
Optimización global
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Funciones con retorno en lengaje c utp ejemplos
Funciones con retorno en lengaje c utp ejemplosFunciones con retorno en lengaje c utp ejemplos
Funciones con retorno en lengaje c utp ejemplos
 
Programas 11 20
Programas 11 20Programas 11 20
Programas 11 20
 
Leccion06 rsa crypt4you
Leccion06 rsa crypt4youLeccion06 rsa crypt4you
Leccion06 rsa crypt4you
 
Programación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConESProgramación matématica (optimización) con Python - Ingeniería Química - PyConES
Programación matématica (optimización) con Python - Ingeniería Química - PyConES
 
programación
programaciónprogramación
programación
 
Compa de lengu pas c javi
Compa de lengu pas c javiCompa de lengu pas c javi
Compa de lengu pas c javi
 
Eficiencia en uso de recursos memoria 1a parte
Eficiencia en uso de recursos memoria 1a parteEficiencia en uso de recursos memoria 1a parte
Eficiencia en uso de recursos memoria 1a parte
 

Ähnlich wie BigNum - Programación 3 - UFM - FISICC

Portable ARchiver - Programación 3 - UFM - FISICC
Portable ARchiver - Programación 3 - UFM - FISICCPortable ARchiver - Programación 3 - UFM - FISICC
Portable ARchiver - Programación 3 - UFM - FISICCEgdares Futch H.
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionJosé Antonio Sandoval Acosta
 
Fundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la ProgramaciónFundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la ProgramaciónJosé Antonio Sandoval Acosta
 
Fundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacionFundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacionJosé Antonio Sandoval Acosta
 
Sesion 02 c++
Sesion 02   c++Sesion 02   c++
Sesion 02 c++imagincor
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++ Ronal Palomino
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14Educaciontodos
 
Instituto tecnológico particular
Instituto tecnológico particularInstituto tecnológico particular
Instituto tecnológico particularCarlota Guzman
 
Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsmaCarlos Avila
 
Mprogintc++ regular
Mprogintc++ regularMprogintc++ regular
Mprogintc++ regularpayasito1980
 

Ähnlich wie BigNum - Programación 3 - UFM - FISICC (20)

Portable ARchiver - Programación 3 - UFM - FISICC
Portable ARchiver - Programación 3 - UFM - FISICCPortable ARchiver - Programación 3 - UFM - FISICC
Portable ARchiver - Programación 3 - UFM - FISICC
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Informatica
InformaticaInformatica
Informatica
 
Fundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la ProgramaciónFundamentos de Programación - Unidad II: Introducción a la Programación
Fundamentos de Programación - Unidad II: Introducción a la Programación
 
Fundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacionFundamentos de Programacion - Unidad 3 Introduccion a la programacion
Fundamentos de Programacion - Unidad 3 Introduccion a la programacion
 
Lenguaje c 2_neo
Lenguaje c 2_neoLenguaje c 2_neo
Lenguaje c 2_neo
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Sesion 02 c++
Sesion 02   c++Sesion 02   c++
Sesion 02 c++
 
Algoritmos - Funciones C++
Algoritmos - Funciones C++ Algoritmos - Funciones C++
Algoritmos - Funciones C++
 
Guia 5 dev c++
Guia 5 dev c++Guia 5 dev c++
Guia 5 dev c++
 
C
C C
C
 
Fundamentos de programacion ss14
Fundamentos de programacion ss14Fundamentos de programacion ss14
Fundamentos de programacion ss14
 
mprogintc++.pdf
mprogintc++.pdfmprogintc++.pdf
mprogintc++.pdf
 
CURSO C ++ (1).pdf
CURSO C ++ (1).pdfCURSO C ++ (1).pdf
CURSO C ++ (1).pdf
 
CURSO C ++ (1).pdf
CURSO C ++ (1).pdfCURSO C ++ (1).pdf
CURSO C ++ (1).pdf
 
Instituto tecnológico particular
Instituto tecnológico particularInstituto tecnológico particular
Instituto tecnológico particular
 
Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsma
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
Mprogintc++ regular
Mprogintc++ regularMprogintc++ regular
Mprogintc++ regular
 
Mprogintc++
Mprogintc++Mprogintc++
Mprogintc++
 

Mehr von Egdares Futch H.

FIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a IncidentesFIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a IncidentesEgdares Futch H.
 
FIT 2020 - Artificial Life
FIT 2020 - Artificial LifeFIT 2020 - Artificial Life
FIT 2020 - Artificial LifeEgdares Futch H.
 
Blockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicacionesBlockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicacionesEgdares Futch H.
 
Digital forensics SIFT como herramienta
Digital forensics  SIFT como herramientaDigital forensics  SIFT como herramienta
Digital forensics SIFT como herramientaEgdares Futch H.
 
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminosMachine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminosEgdares Futch H.
 
Herramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones webHerramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones webEgdares Futch H.
 
El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)Egdares Futch H.
 
El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible Egdares Futch H.
 
MGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus TegucigalpaMGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus TegucigalpaEgdares Futch H.
 
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La CeibaMGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La CeibaEgdares Futch H.
 
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...Egdares Futch H.
 
The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014Egdares Futch H.
 
Criptografía para las masas
Criptografía para las masasCriptografía para las masas
Criptografía para las masasEgdares Futch H.
 
Más sobre el Algoritmo de Peterson
Más sobre el Algoritmo de PetersonMás sobre el Algoritmo de Peterson
Más sobre el Algoritmo de PetersonEgdares Futch H.
 
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...Egdares Futch H.
 
Apuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de MemoriaApuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de MemoriaEgdares Futch H.
 

Mehr von Egdares Futch H. (20)

FIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a IncidentesFIT 2018 - Malware Avanzado y Respuesta a Incidentes
FIT 2018 - Malware Avanzado y Respuesta a Incidentes
 
FIT 2020 - Artificial Life
FIT 2020 - Artificial LifeFIT 2020 - Artificial Life
FIT 2020 - Artificial Life
 
Blockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicacionesBlockchain - Una mirada técnica y aplicaciones
Blockchain - Una mirada técnica y aplicaciones
 
Digital forensics SIFT como herramienta
Digital forensics  SIFT como herramientaDigital forensics  SIFT como herramienta
Digital forensics SIFT como herramienta
 
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminosMachine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
Machine Learning: ¿Caminos? A donde vamos, no necesitamos caminos
 
Herramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones webHerramientas de Pen Testing de redes y aplicaciones web
Herramientas de Pen Testing de redes y aplicaciones web
 
El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)El "Internet de Todo" (IoT)
El "Internet de Todo" (IoT)
 
BPMS vs. workflow
BPMS vs. workflowBPMS vs. workflow
BPMS vs. workflow
 
El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible El “Internet de Todo” (IoT) y lo que lo hace posible
El “Internet de Todo” (IoT) y lo que lo hace posible
 
MGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus TegucigalpaMGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
MGTI: Tendencias de Tecnología 2015 - Campus Tegucigalpa
 
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La CeibaMGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
MGTI: Tendencias de Tecnología 2015 y su aplicación en el país Campus La Ceiba
 
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
Introducción a la Teoría de Juegos con aplicación a las Ciencias de la Comput...
 
The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014The Hour of Code - Presentación Diciembre 2014
The Hour of Code - Presentación Diciembre 2014
 
Unitec virtualización
Unitec   virtualizaciónUnitec   virtualización
Unitec virtualización
 
Criptografía para las masas
Criptografía para las masasCriptografía para las masas
Criptografía para las masas
 
Más sobre el Algoritmo de Peterson
Más sobre el Algoritmo de PetersonMás sobre el Algoritmo de Peterson
Más sobre el Algoritmo de Peterson
 
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
Análisis de ataques a un sistema de correo electrónico por medio de mensajes ...
 
Apuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de MemoriaApuntes de clase Sistemas Operativos: Administración de Memoria
Apuntes de clase Sistemas Operativos: Administración de Memoria
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Deadlocks
DeadlocksDeadlocks
Deadlocks
 

Kürzlich hochgeladen

HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.profandrearivero
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacionviviantorres91
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.monthuerta17
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfmiriamguevara21
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 

Kürzlich hochgeladen (20)

HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Actividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 EducacionActividades eclipse solar 2024 Educacion
Actividades eclipse solar 2024 Educacion
 
Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.Si cuidamos el mundo, tendremos un mundo mejor.
Si cuidamos el mundo, tendremos un mundo mejor.
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdf
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 

BigNum - Programación 3 - UFM - FISICC

  • 1. Universidad Francisco Marroquín F.I.S.I.C.C. Programación III 1er semestre 1992 Prof. : Egdares Futch H. Proyecto #4 BigNum - paquete de manejo de enteros de precisión infinita Motivación El lenguaje C++ permite crear fácilmente nuevos tipos de datos, que el usuario de éstos puede manipular naturalmente como si fueran parte del lenguaje. Uno de los problemas que se tienen en sistemas de computación es la precisión finita de los números que se manejan; por ejemplo, si se tiene una variable de tipo int, se limita al rango -32,768..32,767, y si se tiene una variable de tipo long, se limita al rango -4,294,967,296..4,294,967,295. En algunos casos, esto no es suficiente, por lo que se plantea como problema el 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 se desea, la que 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 clases 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 123456789823642384234 + 2346891790891235, las cuales ningún lenguaje soporta hasta ahora. Aunque se especifica que es infinito, el límite máximo deberá ser de 1024 dígitos. El nombre BigNum fue tomado del New Hacker's Dictionary (MIT Press, 1991) el cual provee una nota histórica del nombre. El proyecto consiste entonces en diseñar una clase de C++ que permita el manejo de estos números, y permita hacer operaciones con ellos. Como existe el límite de 1024 dígitos como máximo, la clase BigNum deberá tener chequeo de overflow. Las operaciones disponibles deben ser : - suma (+,+=) - resta (-,-=) - multiplicación (*,*=) - división (/,/=) - incremento/decremento (++,--) - complemento (- unario) - output (salida a cout sobrecargada) Requerimientos El programa a entregar debe cumplir con los siguientes requerimientos : - Escrito en lenguaje C++ - No debe desperdiciar espacio y debe destruir su almacenamiento interno - Modular, capaz de ser utilizado en varios programas (hacer .h y .cpp) - Chequeo de errores (overflow, mal formato, etc.) - Programas de prueba, según lo descrito posteriormente.
  • 2. Programas de prueba Para la entrega de este proyecto, se deberán entregar los siguientes programas de prueba: a) powerof2.cpp calcula el valor de 2^128 b) trek.cpp calcula la distancia recorrida, en metros, por el Enterprise a warp 9 (warp 9 = 1516c ) durante una temporada de Star Trek normal (20 episodios de 4 "días" de duración c/u) c) fib.cpp calcula el valor de fib(30) Fecha de entrega y documentación a entregar La fecha de entrega será el día jueves 9 de abril. NO habrán prórrogas de tiempo puesto que éstas atrasan el curso. La documentación a entregar consistirá en (no folders, no clips) : - Diskette con el proyecto (.CPP,.H, .OBJ y .EXE, 5.25" o 3.5" sin virus) - Carátula con nombre, carnet y nombre de proyecto - Descripción del proyecto (1 hoja máx.) - Funcionamiento del proyecto (1 hoja máx.) - Manual de uso del proyecto (lo necesario) - Descripción de rutinas y procedimientos usados - Comentarios de implementación (opcional, puede mejorar nota) - Listados de programa Hints Como un ejemplo de uso, podría tomarse el siguiente : main() { BigNum a("1231242342124124124124124"),b; b = a; // asignamos b++; // incremento en 1 b += a; // b = b + a cout << b; // imprimimos el contenido de b a *= 4567; // ojo a+=BigNum("29038401275230927345072309455273458923 cout << a; // este si es un BigNum return 0; // salimos }