Foros del Web » Programación para mayores de 30 ;) » Programación General »

metodologia

Estas en el tema de metodologia en el foro de Programación General en Foros del Web. Hola a todos, tengo un problema y no se como solucionarlo, ando un poco perdido. en pseudo codigo tengo que hacer una caja automatica, introduces ...
  #1 (permalink)  
Antiguo 13/01/2004, 13:11
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 3 meses
Puntos: 0
metodologia

Hola a todos,
tengo un problema y no se como solucionarlo, ando un poco perdido.
en pseudo codigo tengo que hacer una caja automatica, introduces una cantidad en euros y que nos devuelva el cambio con las mayores fracciones en billetes y monedas.
ej) Introducimos 1025 y nos devuelve 2billetes de 500€, 1 de 20 €, 1 moneda de 20€ ,y 1 moneda de 5 €.

Lo agradeceria enormemente pues estoy atascado
  #2 (permalink)  
Antiguo 13/01/2004, 17:09
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
Si hay reglas en pseudocódigo no me las conozco muy bien, en cuanto a palabras me refiero, pero esto sería una aproximación:
(si puedes cópiala al notepad y dale tabulaciones, quedará más claro)

-----------------------------------------------
-----------------------------------------------
moneda(7)=(500,200,100,50,20,10,5,1)

leer cantidad

desde numero=0 hasta numero=7

......veces=parte entera de (cantidad entre moneda(numero))
......si veces>0 entonces
............imprime "devolver " veces " de " moneda(numero)
............cantidad=cantidad menos (moneda(numero) multiplicado por veces)
......fin si
siguiente numero
-----------------------------------------------
-----------------------------------------------

***********************************************
Te pongo una implementación en "C" que hice en un curso hace tiempo, no la he revisado, podría tener errores.
Yo la tengo perfectamente tabulada, pero creo que la web va a quitar los tab, pero bueno.
***********************************************

#include <stdio.h>
#include <stdlib.h>
void agregar(),actual(),vueltas();
int cambio;
int caja[8]={0,0,0,0,0,0,0,0};
int moneda[8]={10000,5000,1000,500,100,25,5,1};
void main()
{
int precio,pago,seguir=1;
while(seguir)
{
actual();
agregar();
printf("INTRODUCE EL PRECIO DE LA COMPRA\n");
scanf("%d",&precio);
printf("INTRODUCE EL PAGO DEL CLIENTE\n");
scanf("%d",&pago);
while(pago<precio)
{
printf("QUE SUELTE MAS DINERO\n");
scanf("%d",&pago);
}
cambio=pago-precio;
if(cambio==0)
{
printf("DEVOLUCION 0pts\n");
agregar();
}
else
{
printf("LA CANTIDAD DE %dpts SE LE DEVOLVERA AL CLIENTE ASI:\n\n",cambio);
vueltas();
agregar();
}
printf("\t1.-SEGUIR\n\t2.-SALIR\n");
scanf("%d",&seguir);
if (seguir!=1)
{
exit(0);
}
}
}
void agregar()
{
int unidades,entrada,seguir=0;
printf("\n¿DESEA AGREGAR DINERO?\n\t1.-SI DESEO AGREGAR\n\t2.-NO DESEO AGREGAR\n");
scanf("%d",&seguir);
while(seguir==1)
{
printf("¿QUE MONEDA DESEA AGREGAR: 10000, 5000, 1000, 500, 100 , 25, 5, 1?\n");
scanf("%d",&entrada);
if(entrada==10000 || 5000 || 1000 || 500 || 100 || 25 || 5 || 1)
{
printf("¿CUANTAS UNIDADES?\n");
scanf("%d",&unidades);
int a=0;
while(a<8)
{
if(moneda[a]==entrada)
{
caja[a]=caja[a]+unidades;
break;
}
else
{
a=a+1;
}
}
}
else
{
printf("¡MONEDA INCORRECTA!\n");
}
printf("¿DESEA AGREGAR MAS DINERO?\n\t1.-SI DESEO AGREGAR MAS\n\t2.-NO DESEO AGREGAR MAS\n");
scanf("%d",&seguir);
}
}
void actual()
{
int a=0;
while(a<8)
{
printf("DE %5d HAY %3d UNIDADES\n",moneda[a],caja[a]);
a=a+1;
}
}
void vueltas()
{
int a=0,b[8]={0,0,0,0,0,0,0,0};
while(a<8)
{
if(cambio>=moneda[a])
{
if(caja[a]==0)
{
printf(" NO HAY MAS UNIDADES DE %d\n",moneda[a]);
a=a+1;
}
else
{
cambio=cambio-moneda[a];
caja[a]=caja[a]-1;
b[a]=b[a]+1;
}
}
else
{
printf("\t\t%d\tDE %d\n",b[a],moneda[a]);
a=a+1;
}
}
if(cambio>0)
{
printf("LE DEBEMOS AL CLIENTE %dpts\n",cambio);
}
}

Saludos
Pablo

Última edición por pabli; 13/01/2004 a las 17:15
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:27.