Pascal/Turbo Pascal - Ayuda Function de Pascal!!!!!

 
Vista:

Ayuda Function de Pascal!!!!!

Publicado por Facundo Sanchez (2 intervenciones) el 19/06/2009 04:36:25
Hola!
Tengo un pequeño problema al compilar un programa en pascal y no encuentro el error...

Creo la siguiente funcion para saber si el año es bisiesto

Function AnioBisiesto(anio : TD_Anio):boolean;

Var bisiesto : Boolean;

Begin
If (((anio mod 4) = 0) and ((anio mod 100) <> 100)) or ((anio mod 400) = 0) then
Bisiesto := True
else
Bisiesto := False;
AnioBisiesto := Bisiesto;
End;

y luego uso esta funcion dentro de otra.....(espero no sea ese el problema que no se puedan usar funciones dentro de funciones pero no creo)...

Function Atraso(Fecha1,Fecha2 : TD_Fecha) : TD_Atraso;

Var Dia1,Dia2 : TD_Dia;
Mes1,Mes2 : TD_Mes;
Anio1,Anio2 : TD_Anio;
Aux : TD_Atraso;

Calendario : TArr_Calendario;

Begin

DivFecha(Dia1,Mes1,Anio1,Fecha1);
DivFecha(Dia2,Mes2,Anio2,Fecha2);

Aux := 0;

If (Anio1 = Anio2) and (Mes1 = Mes2) then
Atraso := Dia2 - Dia1
Else If (Anio1 = Anio2) Then
Begin
AnioBisiesto(anio1);
if AnioBisiesto = true then
Calendario[2] := 29;
for i:= Mes1 to Mes2 do
Aux:= Aux + Calendario[i];
Atraso := Aux - Dia1 - (Calendario[mes2] - Dia2);
end;
Else
Begin
AnioBisiesto(anio1);
If AnioBisiesto = True then
Calendario[2] := 29;
for i:= Mes1 to 12 do
Aux:= Aux + Calendario[i];
Aux := Aux - Dia1;

AnioBisiesto(anio2);
If AnioBisiesto = True then
Calendario[2] := 29;
Else
Calendario[2] := 29;
for i:= 1 to Mes2 do
Atraso := Atraso Calendario[i];
Atraso := Atraso + Aux - (Calendario[mes2] - Dia2);
End;
End;

El error me lo da en la sentencia If aniobisiesto = true Then y me dice Error 88 : "(" expected

Les agradesco su tiempo....y su ayuda por que en si el algoritmo creo que esta bien, lo tengo echo todo en pseudocodigo pero al pasarlo al pascal se me esta complicando con algunos detalles en la compilacion como estos.
Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda Function de Pascal!!!!!

Publicado por Miguel (159 intervenciones) el 19/06/2009 19:56:23
Mira, no se si sera por esto (es mas creo que no deberia saltar ese error) pero si dentro del cuerpo del if hay mas de una accion tenes que ponerlo entre begin - end, sino ejecutara una sola accion. Si es posible deja todo el codigo, es mas facil asi!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda Function de Pascal!!!!!

Publicado por Yo =) (8 intervenciones) el 21/06/2009 07:35:19
AnioBisiesto(anio2); <---- borra esta línea
If AnioBisiesto = True then <---- ponle aquí el (anio2)
Calendario[2] := 29; <--- borra este ';'
Else
Calendario[2] := 29;

------------------------------------------------------------

If AnioBisiesto (anio2) then
Calendario[2] := 29
Else
Calendario[2] := 29;

Para los condicionales con variables (y funciones) boolean, no es necesario poner '= true', sopon que tienes la variable " flag: boolean"

"If flag" - es igual a - "If flag = true"
"If not flag" - es igual a - "If flag = false"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar