Universidad de Costa Rica

 

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;
}