• Jueves 2 de Mayo de 2024, 00:47

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - SubZeroHack

Páginas: [1]
1
Pascal / Resolver error en Pascal (cajero automatico)
« en: Jueves 13 de Mayo de 2010, 02:25 »
Hola!! espero que me ayuden
les cuento que debo hacer un programa simple (mediante procedimientos y funciones tipicas) que simule un cajero automatico, este debe realizar depositos,giros,estado de saldo,desglosar el giro en billetes de 20000,10000,5000,1000 y monedas de 500,100,50,10,1
esto es lo que llevo basicamente pero aun falta pulir algunas cosas

Código: Pascal
  1. program cajero;
  2. uses crt;
  3.  
  4. var //Globales
  5. saldo,numgi,numdep,op,gi,dep:integer;
  6.  
  7. (*******************************************************)
  8. procedure giro(var numdep,numgi,saldo:integer;gi:integer);
  9. //realiza giro
  10. begin
  11.   repeat
  12.   write('Ingrese valor a girar = $');
  13.   readln(gi);
  14.   until(gi>0);
  15.   numgi:=numgi+1;
  16.   numdep:=numdep;
  17.   saldo:=saldo-gi;
  18. end;
  19. (*******************************************************)
  20. procedure deposito(var numdep,numgi,saldo:integer;dep:integer);
  21. //realiza deposito
  22. begin
  23.   repeat
  24.   write('Ingrese valor a depositar = $');
  25.   readln(dep);
  26.   until(gi>0);
  27.   numdep:=numdep+1;
  28.   numgi:=numgi;
  29.   saldo:=saldo+dep;
  30. end;
  31. (*******************************************************)
  32. procedure imprime(x,numgi,numdep,saldo:integer);
  33. //imprime operacion
  34. var
  35.   b20,b10,b5,b1,m500,m100,m50,m10,m1:integer;
  36. begin
  37.   b20:=x div 20000;
  38.   x:=x-(20000*b20);
  39.   b10:=x div 10000;
  40.   x:=x-(10000*b10);
  41.   b5:=x div 5000;
  42.   x:=x-(5000*b5);
  43.   b1:=x div 1000;
  44.   x:=x-(1000*b1);
  45.   m500:=x div 500;
  46.   x:=x-(500*m500);
  47.   m100:=x div 100;
  48.   x:=x-(100*m100);
  49.   m50:=x div 50;
  50.   x:=x-(50*m50);
  51.   m10:=x div 10;
  52.   x:=x-(10*m10);
  53.   m1:=x div 1;
  54.   x:=x-(1*m1);
  55.   writeln('| $20000 =',b20:3 ,' |');
  56.   writeln('| $10000 =',b10:3 ,' |');
  57.   writeln('| $5000  =',b5:3  ,' |');
  58.   writeln('| $1000  =',b1:3  ,' |');
  59.   writeln('| $500   =',m500:3,' |');
  60.   writeln('| $100   =',m100:3,' |');
  61.   writeln('| $50    =',m50:3 ,' |');
  62.   writeln('| $10    =',m10:3 ,' |');
  63.   writeln('| $1     =',m1:3  ,' |');
  64.  
  65.   writeln('==============================================================================');
  66.   writeln('Saldo       |Deposito   |Giro       |Num. de Giros  |Num. de Depositos|         ');
  67.   writeln('==============================================================================');
  68.   writeln(saldo:12,dep:12,gi:12,numgi:12,numdep:12);
  69. end;
  70. (*******************************************************)
  71. procedure menu;
  72. begin
  73.   writeln('=================');
  74.   writeln('Banco PrograBank ');
  75.   writeln('=================');
  76.   writeln;
  77.   writeln('1.- Deposito');
  78.   writeln('2.- Retiro o Giro');
  79.   writeln('3.- Saldo');
  80.   writeln('4.- Salir');
  81. end;
  82. (*******************************************************)
  83. (*******************Principal***************************)
  84.  
  85. begin
  86.   saldo:=100000;
  87.   numgi:=0;
  88.   numdep:=0;
  89.   menu;
  90.   repeat
  91.   writeln('Ingrese una opcion');
  92.   read(op);
  93.   case (op) of
  94.   1:begin
  95.       deposito(numdep,numgi,saldo,dep);
  96.       imprime(dep,numgi,numdep,saldo);
  97.     end;
  98.   2:begin
  99.       giro(numdep,numgi,saldo,gi);
  100.       imprime(gi,numgi,numdep,saldo);
  101.     end;
  102.   3:begin
  103.       imprime(0,numgi,numdep,saldo);
  104.     end;
  105.   4:begin
  106.       readkey;
  107.     end
  108.   else
  109.     begin
  110.       writeln('Ingrese una opcion valida');
  111.     end;
  112.   until (op=4);
  113. end.
  114.  

el problema esta en que me da un error el cual no me puedo percatar el cual es el siguiente:
Citar
112 / 3   Fatal: Syntax error, END expected but UNTIL found

por favor ayudenme necesito realizar este trabajo luego, desde ya gracias

Páginas: [1]