Prograsion geométrica

Buenos días, tengo otro pequeño problemilla con un programa sobre si hay progresión geométrica o no de una serie de números. El programa funciona correctamente, lo único que me han comentado que tengo que cambiar la cabecera del subprograma ProgGeomet ¿me podrías ayudar?
Program Progresion(F, Output);
VAR contLin,numAnt,numAct,razAnt,razAct:Integer;
F:text;
EsProg:Boolean;
Procedure ProgGeomet(var F:text; var numAnt,numAct:integer; Var razAnt:integer;var EsProg:boolean; var contLin:integer);
{El subprograma toma los valores de los componentes del fichero y calcula o establece la razon geometrica si la hay de cada una de las lineas.
Utiliza variables de entrada y salida}
Var num:integer;
BEGIN
Read(F,num);
If Eoln(F) then
EsProg:=false
else
Begin
EsProg:=true;
Read(F,numAct);
RazAnt:=numAct div num;
End;
contLin:=contLin+1;
(*comparacion*)
While not eoln (F) and Esprog do
Begin
num:=numAct;
Read (F,numAct);
If numAct <> num*razAnt then EsProg:=false
End
END;
Procedure ProcesarLinea(EsProg:boolean; razAnt,contLin:integer);
{Recibe una variable Boolean a partir de la cual escribe los resultados
calculados anteriormente.Utiliza variables de entrada}
BEGIN
if EsProg then
writeln('linea ',contLin,', hay progresion geometrica de razon: ', razAnt)
else
writeln('linea ',contLin,', no hay progresion geometrica.');
Readln(F)
END;
BEGIN (*Programa Principal*)
contLin:=0;
Esprog:=false;
assign (F,'C:\P1\datosp1b.txt');
Reset(F);
while not eof (F) do
BEGIN
ProgGeomet(F,numAnt,numAct,razAnt,Esprog,contLin);
ProcesarLinea(EsProg,razAnt,conTLin)
END
END.
Gracias

1 Respuesta

Respuesta
1
Me podes pasar el archivo de texto al que accedes, ¿así lo pruebo?
Teóricamente, puede ser por esto...
Procedure ProgGeomet(var F:text; Var razAnt:integer;var EsProg:boolean;
var contLin:integer);
numAnt,numAct:integer;
Begin
Porque esos 2 parámetros no vienen ni van... así que se pueden quitar del header
El fichero contiene:
1
2 4 8
2 4 8 16 72 144 145
7 49
1 4 12 36 98
He modificado la cabecera y he escrito lo siguiente:
Procedure ProgGeomet(var F:text; numAct:integer; var razAnt:integer; var EsProg:boolean; var contLin:integer);
Gracias
Perfecto
Por nada, nos vemos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas