SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
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
        }

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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++
 

Más de 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.
 

Más de 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
 

Último

Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 

Último (20)

Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 

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 }