Escuela de Ciencias de la Computación e Informática
Curso: Principios de Informática
Sigla: CI0202
Grupo 09
Tarea 1
Cálculo de cantidad de billetes y monedas necesarios para pagar a recogedores de café
Nombre de la estudiante
Patricia Vargas Robles
Carnet
983830
Profesor
Adolfo Di Mare Hering
I Semestre 2000
Introducción
En el siguiente trabajo se tratará de explicar brevemente la elaboración de un programa que permite calcular la
cantidad de billetes y monedas necesarios para pagar el sueldo a unos recogedores de café en una finca. Se pretende
que las cantidades de monedas y billetes sean exactamente las necesarias.
Para su elaboración se utilizó el lenguaje de programación C++. Además se empleó el compilador de la compañía
Borland Internacional.
Con este trabajo se espera aumentar los conocimientos que se tienen hasta el momento sobre el lenguaje C++, y
sobre todo poder llevar a cabo la aplicación de ideas sencillas para la resolución de problemas cotidianos.
Descripción del problema
El problema que se está resolviendo consiste en una situación sencilla y cotidiana. Básicamente es calcular cuántos
billetes y monedas se deben traer exactamente del banco para poder hacer efectivo el pago de unos recogedores de
café.
El programa realiza las siguientes tareas:
Solicita el salario del trabajador
Muestra en pantalla el desglose de la cantidad de billetes y monedas requeridas
Si el salario es 0 colones no se debe seguir solicitando cantidades
Se debe imprimir un general con los totales acumulados
La información se muestra en pantalla siguiendo este formato
Cantidad |
Billetes |
Monedas |
|||||
5000 |
1000 |
500 |
100 |
25 |
5 |
1 |
|
6250 |
1 |
1 |
0 |
2 |
2 |
0 |
0 |
9846 |
1 |
4 |
1 |
3 |
1 |
4 |
1 |
.... |
|||||||
Totales |
|||||||
16096 |
2 |
5 |
2 |
5 |
3 |
4 |
1 |
Los resultados pueden ser accesados por medio de la pantalla únicamente. El programa no envía datos a la
impresora.
Solución Propuesta
El problema que se describió anteriormente será abordado de la siguiente manera. Se implementará un ciclo WHILE
que se repetirá mientras el salario digitado sea mayor que cero. Con esto se pretende abarcar la parte de la condición
de terminación de los cálculos.
Con las instrucciones cin y cout del lenguaje se pretende manejar la entrada y salida respectivamente del programa.
En cuanto a las operaciones matemáticas el procedimiento que se utilizará para poder calcular la cantidad de
billetes o monedas requeridas a partir del salario digitado es:
Cant_Billetes = Salario / Cant_Billetes
Para poder determinar la cantidad que eventualmente puede "sobrar" de esta operación se usa el operador módulo.
Además se implementó una función que lo calcula directamente.
Se diseñó una función Cantidad que es útil para saber la cantidad exacta de billetes o monedas para cierto monto.
El módulo Totales es usado en el proceso de acumulación de cantidad de billetes.
Por último para el cálculo de los acumulados es necesario declarar algunas variables. Estas a lo largo del ciclo WHILE
almacenarán la cantidad de billetes y monedas, con el propósito de poder mostrarlo como parte de la salida del
programa.
Descripción del ambiente computacional
El programa está compilado en Borland C++ versión 3.1. No requiere de un equipo muy sofisticado. Es necesario al
menos el sistema operativo DOS para poder utilizarlo.
Requiere de un teclado estándar y no opera con el mouse del computador.
Salida del Programa
A continuación se presenta una imagen que muestra la salida del programa en pantalla.
Conclusiones
En este trabajo se pudo alcanzar el objetivo primordial propuesto. Este consistía en dar una solución sencilla mediante un programa
a un problema de la vida real.
Se presentaron algunas dificultades como por ejemplo la salida incorrecta de resultados en pantalla, debido a que eran cantidades
acumuladas muy grandes.
Con el desarrollo de este proyecto se ha podido poner en práctica algunos conocimientos básicos adquiridos sobre computación. Y
lo más importante quizá, es que después estas ideas se podrán plasmar en proyectos que conciernen a la carrera específica que
se cursa.
Código Fuente del Programa
/*
Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
Principios de Informática CI0202
Profesor: Adolfo Di Mare
Alumna: Patricia Vargas Robles
Carnet: 983830
I Semestre 2000
Programa que calcula el numero exacto de billetes y monedas para
realizar el pago de recolectores de café
*/
#include<iostream.h> //Para cin y
cout
#include<conio.h>
//Para clrscr()
//Calcula la cantidad de billetes
long Cantidad(long a, long m){
long b;
b = a/m;
return b;
}
//Para realizar operación módulo
long Modulo(long a, long m){
long b;
b = a%m;
return b;
}
//Función para acumular Totales
long Total(long a,long m){
long b;
b = a;
b = b+m;
return b;
}
int main() {
clrscr();
cout<<endl<<"Programa que calcula el menudo para pagar
a";
cout<<" recogedores de caf";
cout<<endl<<endl<<"Nombre de la estudiante:
Patricia Vargas Robles"<<endl;
cout<<endl<<"Digite el salario (0 para
finalizar):"<<endl<<endl;
//Declaración de variables para almacenar valores requeridos
long cincomil, mil, quinientos, cien, veinticinco, cinco;
long tcincomil, tmil, tquinientos, tcien, tveinticinco, tcinco, tuno;
long salario, temp,tsalario;
//Fase de inicialización de variables
cincomil = 0;
mil = 0;
quinientos = 0;
cien = 0;
veinticinco = 0;
cinco = 0;
tcincomil= 0;
tmil = 0;
tquinientos = 0;
tcien = 0;
tveinticinco = 0;
tcinco = 0;
tuno=0;
salario = 1;
temp = 0;
tsalario = 0;
cout<<endl<<" Billetes
Monedas";
cout<<endl<<" 5000 1000 500 100 25 5 1";
cout<<endl;
cout<<endl<<"
__________________________________________________"<<endl;
//Ciclo que se repite mientras que el salario sea positivo
//y distinto de cero
while ((salario!=0)&&(salario>0)) {
cout<<endl;
cin>>salario;
cincomil = Cantidad(salario,5000);
temp = Modulo(salario,5000);
mil = Cantidad(temp,1000);
temp = Modulo(temp,1000);
quinientos = Cantidad(temp,500);
temp = Modulo(temp,500);
cien = Cantidad(temp,100);
temp = Modulo(temp,100);
veinticinco = Cantidad(temp,25);
temp = Modulo(temp,25);
cinco = Cantidad(temp,5);
temp = Modulo(temp,5);
//Este if verifica que el salario sea distinto
de cero
//para imprimir en pantalla
if(salario!=0){
cout<<"
"<<cincomil<<" "<<mil<<"
"<<quinientos;
cout<<"
"<<cien<<" "<<veinticinco<<"
"<<cinco<<" "<<temp;
}
//Aqui se acumula el total de billetes o
monedas
tcincomil = Total(tcincomil,cincomil);
tmil = Total(tmil,mil);
tquinientos = Total(tquinientos,quinientos);
tcien = Total(tcien,cien);
tveinticinco = Total(tveinticinco,veinticinco);
tcinco = Total(tcinco,cinco);
tuno = Total(tuno,temp);
tsalario = Total(tsalario,salario);
}
//Imprime a pantalla totales de billetes y
monedas
cout<<endl<<"Totales
__________________________________________________"<<endl<<endl;
cout<<tsalario<<"
"<<tcincomil<<" "<<tmil<<"
"<<tquinientos;
cout<<" "<<tcien<<"
"<<tveinticinco<<" "<<tcinco<<"
"<<tuno;
return 0;
}