UNIVERSIDAD DE COSTA RICA
ESCUELA DE LAS CIENCIAS DE
PROGRAMACIÓN II (CI-1201)
CENTRO UNIVERSITARIO:
CALCULADORA
DE NÚMEROS RACIONALES
PROFESOR:
ADOLFO
DI MARE
30/08/2005
Tabla de contenidos
Descripción
del problema a resolver
Especificación de los métodos:
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
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.
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
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.
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.
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++.
/// 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)
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.
Este programa tiene un alto grado de
eficiencia debido al uso de referencias para la manipulación de los datos.
+----------------+
| “bool.h” |
+----------------------+
+----------------+
+----------------------+
| <cstdlib> | | |
<iostream.h> |
| <cctype> |
+-------------------+ | <iomainip> |
| <iostream.h> |
| Nmbag.h
| | <climits> |
+----------------------+
+------------------+
+----------------------+
| /\ |
|
/ \ |
|
/ \ |
|
/ \ |
+-----------------------+ +----------------------+
| mbag.cpp | | Count.cpp |
+-----------------------+ +----------------------+
|
|
|
|
+-----------------------+ +----------------------+
| Nmbag.obj | | Count.obj |
+-----------------------+ +----------------------+
\ /
\ /
\ /
\ /
+-----------------------+
| p2ta3.exe |
+------------------------+
El compilador utilizado fue Microsoft Visual Basic
6.0
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.
-
Deitel Harvey M., Deitel Paul J. Como programar en C++. Segunda Edición. Pearson Educación, México,
2003.