Site hosted by Angelfire.com: Build your free website today!

 

UNIVERSIDAD DE COSTA RICA

 

 

ESCUELA DE LAS CIENCIAS DE LA COMPUTACIÓN E INFORMÁTICA

(ECCI)

 

 

PROGRAMACIÓN II (CI-1201)

 

 

CENTRO UNIVERSITARIO:

SEDE CENTRAL RODRIGO FACIO

 

 

TAREA #3

 

CALCULADORA DE NÚMEROS RACIONALES

 

 

GRUPO: 01

 

 

PROFESOR:

ADOLFO DI MARE

 

 

ESTUDIANTES:

CARLOS BADILLA MEJÍA

JORGE A. MENOCAL ROJAS

 

 

CARNÉ:

A40617

A43354

 

 

 

30/08/2005

 

Tabla de contenidos

 

Introducción.. 2

Descripción del problema a resolver. 2

Planteo:. 2

Objetivos:. 2

Requerimientos:. 2

Abstracción.. 2

Especificación de los métodos: 3

Operaciones y métodos: 3

Clase Poly: 3

Especificación del programa. 3

Eficiencia: 3

Arquitectura del Programa:. 3

Implementación.. 4

Compilador usado: 4

- ¿Cómo compilar el programa?. 4

Guía de uso del programa. 5

Bibliografía. 6

 

 

 

 

 

Introducción

 

Este programa esta diseñado para leer números y contar cuantas veces aparece cada uno.

Lo principal es comenzar a leer código hecho por otra persona y tratar de entenderlo para poderle hacer las modificaciones respectivas con el objetivo de que pueda funcionar correctamente.

Además de ello se pretende que el estudiante practique la parte de documentación de las tareas realizadas, detallando las cosas tanto internamente como en la parte en la parte documentada que se muestra a contunuación.

Los documentos de este trabajo, se pueden encontrar en:  www.angelfire.com/rock4/a43354  y en: www.angelfire.com/cantina/colossus

 

 

Descripción del problema a resolver

 

Planteo:

   Una vez entendido el código del programa que cuenta cuantas veces aparece cada número que el usuario digito, se debe completar la implementación para que funcione correctamente.

   La solución para esto sería tomar en cuenta las especificaciones dadas por el programador en los comentarios.   

 

Objetivos:  

*      Obligar al estudiante a utilizar especificación en lugar de implementación. 

*      Aprender a trabajar de forma modularizada, pues se debe compartir las tareas específicas del programa con el compañero.

*      Aprender a usar el programa doxygen

 

Requerimientos:   

El programa requiere tener una plataforma de win32 valida con cualquier sistema operativo de Microsoft Windows; además de que requiere la existencia de los sub-directorios que se deseen ordenar.

 

 

Abstracción

 

Completar dos métodos, uno que retorne la cantidad de veces que un número aparece en la bolsa y el otro que agrega nuevos números a la bolsa.

 

 

Especificación de los métodos:

 

            En el método de Qty:

                        El for lo que hace es recorrer el vector, dentro hay un if que compara el valor de m_val en la posición i con n, si se cumple la condición devuelve la cantidad de veces que n está en la bolsa.      Si n no está en el vector devuelve 0.

 

            Método Inc:

                        El for recorre el vector n_val comparando las posiciones con el valor de n, y si los valores coinciden, el contador respectivo aumenta en 1.     Si n no está en el vector se almacena en la posición m_used del vector m_val y se le asigna un 1 al contador de esta posición.     Finalmente la siguiente posición disponible cambia a m_used++.

 

 

Operaciones y métodos:

 

Clase Nmbag:

 /// Devuelve la cantidad de veces que el número esta en la bolsa.

Nmbag::Qty (long n)

 

/// Agrega nuevos números a al bolsa.

void Nmbag::Inc (long n)

 

Especificación del programa

 

El main() se encuentra dentro de el archivo count.cpp, crea un objeto de tipo Nmbag y una variable de tipo long al cual se le envia por parámetros al método Inc(n) en Nmbag

Mediante un ciclo for con condición de parada = a 65 538 (según el profesor),   se hace un recorrido por toda la bolsa, hasta estar seguro de que no se encuentra ningún otro número almacenado o repetido;  eso para luego mostrar en pantalla el resultado.

 

Eficiencia:

 

Este programa tiene un alto grado de eficiencia debido al uso de referencias para la manipulación de los datos.

 

Arquitectura del Programa:

 

+----------------+

|   “bool.h”     |

+----------------------+     +----------------+      +----------------------+

  |   <cstdlib>          |                  |                 |     <iostream.h>   |

|  <cctype>           |     +-------------------+   |   <iomainip>        |

 |  <iostream.h>    |      |    Nmbag.h    |     |  <climits>            |

+----------------------+     +------------------+    +----------------------+

|                                 /\                                |

|                             /        \                            |

|                          /               \                        |

|                     /                          \                  |

+-----------------------+                   +----------------------+

|      mbag.cpp       |                     |        Count.cpp    |

+-----------------------+                   +----------------------+

|                                                     |

|                                                     |

+-----------------------+                   +----------------------+

|      Nmbag.obj      |                    |        Count.obj    |

+-----------------------+                   +----------------------+

\                            /

\                   /

\            /

\ /

+-----------------------+

|      p2ta3.exe        |

+------------------------+

    

 

 

Implementación

 

 

Compilador usado:

 

El compilador utilizado fue Microsoft Visual Basic 6.0

 

 

- ¿Cómo compilar el programa?

 

El programa se compila de la siguiente manera:

1) Copia los archivos a un nuevo directorio

   - Z:\DIR\SubDir\Pogramas\p2ta3

2) Abra Visual C++

   - Proyecto en Blanco ==> p2ta3

3) Agregue archivos .cpp y .h

   - VC++ no lo hace automáticamente

4) Recompile

   - El proyecto son los archivos "Nmbag.cpp" y “Count.cpp”

Abra Visual C++

==================

Start

==> New Project

    ==> C++ Project

        ==> Win32 Console Project

        ==> Name:     p2ta3

        ==> Location: Z:\DIR\SubDir\Pogramas

            ==> El proyecto quedará en el subdirectorio "Location\Name"

                - Z:\DIR\SubDir\Pogramas\ p2ta3

        ==> [OK]

            ==> Win32 Application Wizard

                    ==> [X] Empty Project

                 ==> [Finish]

    ==> Ctrl-Alt-L o Alt-View Solution Explorer

        ==> [Click-Derecho] Source files

            ==> Add

                ==> Add Existing Item

                    ==> Agruege archivos *.cpp

        ==> [Click-Derecho] Header files

            ==> Add

                ==> Add Existing Item

                    ==> Agruege archivos *.h

 

 

 

Guía de uso del programa

 

El usuario debe introducir una lista de números enteros separados únicamente por espacios, cuando termina de introducir los datos presiona ‘enter’ seguido de cualquier letra y de nuevo ‘enter’, posteriormente se desplegará en pantalla el resultado del programa, el cual es una lista ordenada de menor a mayor con la cantidad de veces que aparece cada letra en la bolsa.

 

 

 

Conclusiones

 

            Resulta interesante, cuan útil una buena especificación es para la comprensión de un programa.   Sin una buena especificación es muy difícil comprender la lógica de otro programador. Aún más cuando la experiencia es una herramienta fundamental para la lectura de código en un lenguaje de programación tan poderoso como lo es C++.   Como conclusión, la especificación es una herramienta muchas veces más efectiva que la implementación, y reflejamos éste hecho en la documentación de nuestro programa, el cual cuenta con una explicación paso a paso del código que consideramos más complicado.   Utilizamos la definición de especificación que el profesor proporcionó y produjimos una documentación directa y sin ambigüedades.

 

 

Bibliografía

 

-         Deitel Harvey M., Deitel Paul J. Como programar en C++. Segunda Edición. Pearson Educación, México, 2003.