Funciones y procedimientos como parámetros
Publicado por Ana (2 intervenciones) el 07/06/2010 07:14:34
Hola, necesito que alguien me ayude con este programa porque no se compila y no sé donde está el problema, el mensaje de error me dice que el número de parámetros para la llamada a la función "AproxIntegral" es erróneo . Gracias de antemano.
PROGRAM Integracion2( input, output );
TYPE
FuncionReal = FUNCTION( x : real ) : real;
VAR
a, b : real;
n : integer;
Respuesta : char;
FUNCTION Poli( x : real ) : real;
BEGIN
Poli := sqr(x) + 1;
END;
FUNCTION AproxIntegral( Poli : FuncionReal;
a, b : real;
n : integer ) : real;
VAR
x,
Deltax,
Suma : real;
i : integer;
BEGIN
Deltax := (b-a) / n;
x := a + Deltax/2;
Suma := 0;
FOR i := 1 TO n DO
BEGIN
Suma := Suma + Poli(x) * Deltax;
x := x + Deltax
END {FOR};
AproxIntegral := Suma;
END;
BEGIN {*** Programa principal ***}
REPEAT
write( 'Introduzca los limites del intervalo: ' );
readln( a, b );
REPEAT
write( 'Introduzca el numero de subintervalos: ' );
readln( n );
writeln;
writeln( 'El area aproximada utilizando ', n:1, ' intervalos es' );
writeln( AproxIntegral(Poli, a, b, n):8:4 );
writeln;
write( 'Diferente numero de intervalos (S o N)? ' );
readln( Respuesta )
UNTIL (Respuesta = 'N') OR (Respuesta = 'n');
write( 'Diferentes limites del intervalo (S o N)? ' );
readln( Respuesta );
UNTIL (Respuesta = 'N') OR (Respuesta = 'n');
END.
PROGRAM Integracion2( input, output );
TYPE
FuncionReal = FUNCTION( x : real ) : real;
VAR
a, b : real;
n : integer;
Respuesta : char;
FUNCTION Poli( x : real ) : real;
BEGIN
Poli := sqr(x) + 1;
END;
FUNCTION AproxIntegral( Poli : FuncionReal;
a, b : real;
n : integer ) : real;
VAR
x,
Deltax,
Suma : real;
i : integer;
BEGIN
Deltax := (b-a) / n;
x := a + Deltax/2;
Suma := 0;
FOR i := 1 TO n DO
BEGIN
Suma := Suma + Poli(x) * Deltax;
x := x + Deltax
END {FOR};
AproxIntegral := Suma;
END;
BEGIN {*** Programa principal ***}
REPEAT
write( 'Introduzca los limites del intervalo: ' );
readln( a, b );
REPEAT
write( 'Introduzca el numero de subintervalos: ' );
readln( n );
writeln;
writeln( 'El area aproximada utilizando ', n:1, ' intervalos es' );
writeln( AproxIntegral(Poli, a, b, n):8:4 );
writeln;
write( 'Diferente numero de intervalos (S o N)? ' );
readln( Respuesta )
UNTIL (Respuesta = 'N') OR (Respuesta = 'n');
write( 'Diferentes limites del intervalo (S o N)? ' );
readln( Respuesta );
UNTIL (Respuesta = 'N') OR (Respuesta = 'n');
END.
Valora esta pregunta


0