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!!!
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


0