sábado, 30 de noviembre de 2013

proc monedas

Crear un procedimiento que introduzcas una cantidad y te diga cuantas monedas de cada son.

create or replace 
procedure cambio_monedas (importe IN PLS_INTEGER) IS

resto PLS_INTEGER := 0;
quinientos PLS_INTEGER := 0;
doscientos PLS_INTEGER := 0;
cien PLS_INTEGER := 0;
cincuenta PLS_INTEGER := 0;
veinte PLS_INTEGER := 0;
diez PLS_INTEGER := 0;
cinco PLS_INTEGER := 0;
dos PLS_INTEGER := 0;
uno PLS_INTEGER := 0;

BEGIN

quinientos := floor(importe / 500);
resto := importe MOD 500;

doscientos := floor(resto / 200);
resto := resto MOD 200;

cien := floor(resto / 200);
resto := resto MOD 200;

cincuenta := floor(resto / 50);
resto := resto MOD 50;

veinte := floor(resto / 20);
resto := resto MOD 20;

diez := floor(resto / 10);
resto := resto MOD 10;

cinco := floor(resto / 5);
resto := resto MOD 5;

dos := floor(resto / 2);
resto := resto MOD 2;

uno := floor(resto / 1);
resto := resto MOD 1;

DBMS_OUTPUT.PUT_LINE ('BILLETES DE 500: ' || quinientos);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 200: ' || doscientos);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 100: ' || cien);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 50: ' || cincuenta);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 20: ' || veinte);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 10: ' || diez);
DBMS_OUTPUT.PUT_LINE ('BILLETES DE 5: ' || cinco); 
DBMS_OUTPUT.PUT_LINE ('MONEDAS DE 2: ' || dos);
DBMS_OUTPUT.PUT_LINE ('MONEDAS DE 1: ' || uno);
END;

No hay comentarios:

Publicar un comentario