Error al compilar una chapuza.

Buenas.Estaba haciendo ejercicios en Pascal(con freepascal) y bueno me he puesto con uno que me da un error al compilar.


Program Banco;

Const
InteresMensual=0.04;

Var

Pre,IntTot,CanMen,Devolver:real;
Apagar:boolean;
Nmeses:Integer;
riesgo:[del]char;[/del]string;
Begin
Writeln('¨De cuanto va a ser el pr‚stamo?');
Readln(Pre);

Writeln('¨Cuantos meses durar  el prestamo? S¢lo aceptamos hasta 24 meses.');
Readln(Nmeses);


Writeln('¨Tienes otros tipos de pr‚stamos?');
Readln(riesgo);


If riesgo='si' then Apagar:=True
else Apagar:=False;

if Apagar=false then

[b] Begin[/b]
IntTot:= InteresMensual * Nmeses * Pre;
Devolver:= IntTot + Pre;
CanMen:= Devolver / Nmeses;

Writeln('Como no eres cliente de riesgo te sale a devolver',
Devolver,'euros y cada mes tendr  que dar',CanMen:8:2);
Readln();
[b]end[/b]

[u]else[/u]
[b]begin[/b]
Pre:=Pre+(Pre *0.01);
IntTot:= InteresMensual * Nmeses * Pre;
IntTot:= IntTot + (IntTot * 0.01);
Devolver:= IntTot + Pre;
CanMen:= Devolver / Nmeses;

Writeln('Se ha incluido otro inter‚s del 1%, entonces te vamos a robar ', Devolver:8:2, ' euros bla bla');

Readln();
[b]end;
[/b]


End.

Pues en el else parece estar el error que dice así:'Syntax error,";" expected but "ELSE" found'

Edit: Subrayado el error inicial,en negrita el codigo metido para arreglar el error.
Edit2: Ahora sí que funciona bien xD
Program Banco;

Const
InteresMensual=0.04;

Var

Pre,IntTot,CanMen,Devolver:real;
Apagar:boolean;
Nmeses:Integer;
riesgo:string;
Begin
Writeln('¨De cuanto va a ser el pr‚stamo?');
Readln(Pre);

Writeln('¨Cuantos meses durar  el prestamo? S¢lo aceptamos hasta 24 meses.');
Readln(Nmeses);


Writeln('¨Tienes otros tipos de pr‚stamos?');
Readln(riesgo);


If riesgo = 'si' then Apagar:=True
else Apagar:=False;

if Apagar=false then

begin
IntTot:= InteresMensual * Nmeses * Pre;
Devolver:= IntTot + Pre;
CanMen:= Devolver / Nmeses;

Writeln('Como no eres cliente de riesgo te sale a devolver',
Devolver:8:2,'euros y cada mes tendr  que dar',CanMen:8:2);
Readln();
end

else
begin
Pre:=Pre+(Pre *0.01);
IntTot:= InteresMensual * Nmeses * Pre;
IntTot:= IntTot + (IntTot * 0.01);
Devolver:= IntTot + Pre;
CanMen:= Devolver / Nmeses;

Writeln('Se ha incluido otro inter‚s del 4%, entonces devolver ', Devolver:8:2, ' euros bla bla');

Readln();

end;




End.



A ver si me podéis echar una manica :P
Saludos.
If riesgo='si' then Apagar:=True
                        else Apagar:=False;


Hace años que no toco pascal, pero diría que después del True te falta ;
amuchamu escribió:
If riesgo='si' then Apagar:=True
                        else Apagar:=False;


Hace años que no toco pascal, pero diría que después del True te falta ;

Era en el segundo else donde estaba el problema. resulta que no he puesto begin end dentro del if.
Pero ahora hay otro problema:no me coge por teclado el 'si' de riesgo, en cambio si en vez de 'si' pongo un sólo caracter como 's' si que lo reconoce.

Edit: juas ya está, es que he puesto que riesgo:char; en vez de String ...
2 respuestas