Jueves 14 de Noviembre de 2024, 17:06
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Resolver error en Pascal (cajero automatico)
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Resolver error en Pascal (cajero automatico) (Leído 3496 veces)
SubZeroHack
Nuevo Miembro
Mensajes: 2
Resolver error en Pascal (cajero automatico)
«
en:
Jueves 13 de Mayo de 2010, 02:25 »
0
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
program
cajero;
uses
crt;
var
//Globales
saldo
,
numgi
,
numdep
,
op
,
gi
,
dep
:
integer
;
(*******************************************************)
procedure
giro
(
var
numdep
,
numgi
,
saldo
:
integer
;gi
:
integer
)
;
//realiza giro
begin
repeat
write
(
'Ingrese valor a girar = $'
)
;
readln
(
gi
)
;
until
(
gi>
0
)
;
numgi
:=
numgi
+
1
;
numdep
:=
numdep;
saldo
:=
saldo
-
gi;
end
;
(*******************************************************)
procedure
deposito
(
var
numdep
,
numgi
,
saldo
:
integer
;dep
:
integer
)
;
//realiza deposito
begin
repeat
write
(
'Ingrese valor a depositar = $'
)
;
readln
(
dep
)
;
until
(
gi>
0
)
;
numdep
:=
numdep
+
1
;
numgi
:=
numgi;
saldo
:=
saldo
+
dep;
end
;
(*******************************************************)
procedure
imprime
(
x
,
numgi
,
numdep
,
saldo
:
integer
)
;
//imprime operacion
var
b20
,
b10
,
b5
,
b1
,
m500
,
m100
,
m50
,
m10
,
m1
:
integer
;
begin
b20
:=
x
div
20000
;
x
:=
x
-
(
20000
*
b20
)
;
b10
:=
x
div
10000
;
x
:=
x
-
(
10000
*
b10
)
;
b5
:=
x
div
5000
;
x
:=
x
-
(
5000
*
b5
)
;
b1
:=
x
div
1000
;
x
:=
x
-
(
1000
*
b1
)
;
m500
:=
x
div
500
;
x
:=
x
-
(
500
*
m500
)
;
m100
:=
x
div
100
;
x
:=
x
-
(
100
*
m100
)
;
m50
:=
x
div
50
;
x
:=
x
-
(
50
*
m50
)
;
m10
:=
x
div
10
;
x
:=
x
-
(
10
*
m10
)
;
m1
:=
x
div
1
;
x
:=
x
-
(
1
*
m1
)
;
writeln
(
'| $20000 ='
,
b20
:
3
,
' |'
)
;
writeln
(
'| $10000 ='
,
b10
:
3
,
' |'
)
;
writeln
(
'| $5000 ='
,
b5
:
3
,
' |'
)
;
writeln
(
'| $1000 ='
,
b1
:
3
,
' |'
)
;
writeln
(
'| $500 ='
,
m500
:
3
,
' |'
)
;
writeln
(
'| $100 ='
,
m100
:
3
,
' |'
)
;
writeln
(
'| $50 ='
,
m50
:
3
,
' |'
)
;
writeln
(
'| $10 ='
,
m10
:
3
,
' |'
)
;
writeln
(
'| $1 ='
,
m1
:
3
,
' |'
)
;
writeln
(
'=============================================================================='
)
;
writeln
(
'Saldo |Deposito |Giro |Num. de Giros |Num. de Depositos| '
)
;
writeln
(
'=============================================================================='
)
;
writeln
(
saldo
:
12
,
dep
:
12
,
gi
:
12
,
numgi
:
12
,
numdep
:
12
)
;
end
;
(*******************************************************)
procedure
menu;
begin
writeln
(
'================='
)
;
writeln
(
'Banco PrograBank '
)
;
writeln
(
'================='
)
;
writeln
;
writeln
(
'1.- Deposito'
)
;
writeln
(
'2.- Retiro o Giro'
)
;
writeln
(
'3.- Saldo'
)
;
writeln
(
'4.- Salir'
)
;
end
;
(*******************************************************)
(*******************Principal***************************)
begin
saldo
:=
100000
;
numgi
:=
0
;
numdep
:=
0
;
menu;
repeat
writeln
(
'Ingrese una opcion'
)
;
read
(
op
)
;
case
(
op
)
of
1
:
begin
deposito
(
numdep
,
numgi
,
saldo
,
dep
)
;
imprime
(
dep
,
numgi
,
numdep
,
saldo
)
;
end
;
2
:
begin
giro
(
numdep
,
numgi
,
saldo
,
gi
)
;
imprime
(
gi
,
numgi
,
numdep
,
saldo
)
;
end
;
3
:
begin
imprime
(
0
,
numgi
,
numdep
,
saldo
)
;
end
;
4
:
begin
readkey;
end
else
begin
writeln
(
'Ingrese una opcion valida'
)
;
end
;
until
(
op
=
4
)
;
end
.
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
Tweet
epayan
Miembro activo
Mensajes: 41
Nacionalidad:
Re: Resolver error en Pascal (cajero automatico)
«
Respuesta #1 en:
Jueves 13 de Mayo de 2010, 07:41 »
0
creo que en esta parte hay un error de lógica pero no creo que sea tu problema en si
Código: Pascal
#
procedure
deposito
(
var
numdep
,
numgi
,
saldo
:
integer
;dep
:
integer
)
;
#
//realiza deposito
#
begin
#
repeat
#
write
(
'Ingrese valor a depositar = $'
)
;
#
readln
(
dep
)
;
#
until
(
gi>
0
)
;
mañana checo tu codigo
epayan
Miembro activo
Mensajes: 41
Nacionalidad:
Re: Resolver error en Pascal (cajero automatico)
«
Respuesta #2 en:
Jueves 13 de Mayo de 2010, 08:08 »
0
siguiendo tu código, corrigiendo dos que tres cosas por ahí , respetando tu lógica este es el resultado.. verifica bien tu lógica si es lo que deseas que arroje en el procedimiento imprime..
Código: Pascal
program
cajero;
uses
crt;
var
//Globales
saldo
:
longint
;
numgi
,
numdep
,
op
,
gi
,
dep
:
integer
;
(*******************************************************)
procedure
giro
(
var
numdep
,
numgi
:
integer
;
var
saldo
:
Longint
;
var
gi
:
integer
)
;
//realiza giro
begin
gi
:=
0
;
repeat
write
(
'Ingrese valor a girar = $'
)
;
readln
(
gi
)
;
until
(
gi>
0
)
;
numgi
:=
numgi
+
1
;
numdep
:=
numdep;
saldo
:=
saldo
-
gi;
end
;
(*******************************************************)
procedure
deposito
(
var
numdep
,
numgi
:
integer
;
var
saldo
:
longint
;
var
dep
:
integer
)
;
//realiza deposito
begin
dep
:=
0
;
repeat
write
(
'Ingrese valor a depositar = $'
)
;
readln
(
dep
)
;
until
(
dep>
0
)
;
numdep
:=
numdep
+
1
;
numgi
:=
numgi;
saldo
:=
saldo
+
dep;
end
;
(*******************************************************)
procedure
imprime
(
x
,
numgi
,
numdep
:
Integer
;
var
saldo
:
Longint
)
;
//imprime operacion
var
b20
,
b10
,
b5
,
b1
,
m500
,
m100
,
m50
,
m10
,
m1
:
integer
;
begin
b20
:=
x
div
20000
;
x
:=
x
-
(
20000
*
b20
)
;
b10
:=
x
div
10000
;
x
:=
x
-
(
10000
*
b10
)
;
b5
:=
x
div
5000
;
x
:=
x
-
(
5000
*
b5
)
;
b1
:=
x
div
1000
;
x
:=
x
-
(
1000
*
b1
)
;
m500
:=
x
div
500
;
x
:=
x
-
(
500
*
m500
)
;
m100
:=
x
div
100
;
x
:=
x
-
(
100
*
m100
)
;
m50
:=
x
div
50
;
x
:=
x
-
(
50
*
m50
)
;
m10
:=
x
div
10
;
x
:=
x
-
(
10
*
m10
)
;
m1
:=
x
div
1
;
x
:=
x
-
(
1
*
m1
)
;
writeln
(
'| $20000 ='
,
b20
:
3
,
' |'
)
;
writeln
(
'| $10000 ='
,
b10
:
3
,
' |'
)
;
writeln
(
'| $5000 ='
,
b5
:
3
,
' |'
)
;
writeln
(
'| $1000 ='
,
b1
:
3
,
' |'
)
;
writeln
(
'| $500 ='
,
m500
:
3
,
' |'
)
;
writeln
(
'| $100 ='
,
m100
:
3
,
' |'
)
;
writeln
(
'| $50 ='
,
m50
:
3
,
' |'
)
;
writeln
(
'| $10 ='
,
m10
:
3
,
' |'
)
;
writeln
(
'| $1 ='
,
m1
:
3
,
' |'
)
;
writeln
(
'=============================================================================='
)
;
writeln
(
'Saldo |Deposito |Giro |Num. de Giros |Num. de Depositos| '
)
;
writeln
(
'=============================================================================='
)
;
writeln
(
saldo
:
12
,
dep
:
12
,
gi
:
12
,
numgi
:
12
,
numdep
:
12
)
;
end
;
(*******************************************************)
procedure
menu;
begin
writeln
(
'================='
)
;
writeln
(
'Banco PrograBank '
)
;
writeln
(
'================='
)
;
writeln
;
writeln
(
'1.- Deposito'
)
;
writeln
(
'2.- Retiro o Giro'
)
;
writeln
(
'3.- Saldo'
)
;
writeln
(
'4.- Salir'
)
;
end
;
(*******************************************************)
(*******************Principal***************************)
begin
clrscr;
saldo
:=
100000
;
numgi
:=
0
;
numdep
:=
0
;
repeat
menu;
writeln
(
'Ingrese una opcion'
)
;
read
(
op
)
;
If
Op
In
[
1
..
4
]
then
Begin
case
(
op
)
of
1
:
begin
deposito
(
numdep
,
numgi
,
saldo
,
dep
)
;
imprime
(
dep
,
numgi
,
numdep
,
saldo
)
;
end
;
2
:
begin
giro
(
numdep
,
numgi
,
saldo
,
gi
)
;
imprime
(
gi
,
numgi
,
numdep
,
saldo
)
;
end
;
3
:
begin
imprime
(
0
,
numgi
,
numdep
,
saldo
)
;
end
;
4
:
begin
Writeln
(
'Fin del Programa...'
)
;
readkey;
End
;
End
;
{Case}
End
Else
writeln
(
'Ingrese una opcion valida'
)
;
until
(
op
=
4
)
;
end
.
SubZeroHack
Nuevo Miembro
Mensajes: 2
Re: Resolver error en Pascal (cajero automatico)
«
Respuesta #3 en:
Jueves 13 de Mayo de 2010, 16:32 »
0
oh muchas gracias es justo como queria que funcionara mi programa. con el codigo que me publicaste corre de lo mas bien y como tu decias habia problemas en mi logica .
Muchas gracias!!!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Resolver error en Pascal (cajero automatico)