Hi, I tried to compile and run following code under Lazarus and FPC IDE and it gave me different results. On the following input. Do anybody know why?
program ps12;
var Soubor: Text;
var max:real;
var i,j:integer;
var pole:array [1..10000] of real;
var nalezeno,dvazaznamy:boolean;
begin
assign(Soubor, 'vstup.txt');
reset(Soubor);
i:=0;
max := -1E1000;
dvazaznamy:=false;
{write(max);}
repeat
Begin
nalezeno:=false;
for j:=1 to i-1 do
begin
if (pole[j]=pole[i]) then
begin
nalezeno:=true;
dvazaznamy:=true;
{write(pole[j]);}
end;
end;
if (nalezeno and (pole[i] > max)) then
begin
max:=pole[i];
end;
i:=i+1;
Read(Soubor,pole[i]);
End
until EOF(Soubor);
if (dvazaznamy) then
begin
write(max:16:4);
end
else
begin
write('Zadny prvek se v seznamu neopakuje.');
end;
close(Soubor);
read(max);
end.
older version of code where error occurred for first time:
program ps12;
var Soubor: Text;
var max:real; var i,j:integer;
var pole:array [1..10000] of real;
var nalezeno,dvazaznamy:boolean;
begin
assign(Soubor, 'vstup.txt');
reset(Soubor);
i:=1;
max := -1E1000;
dvazaznamy:=false;
{write(max);}
While (true) do
Begin
Read(Soubor,pole[i]);
if(EOF(Soubor)) then begin break;
end;
nalezeno:=false;
for j:=1 to i-1 do
begin
if (pole[j]=pole[i]) then begin nalezeno:=true;
dvazaznamy:=true;
{write(pole[j]);}
end;
end;
if (nalezeno and (pole[i] > max)) then begin max:=pole[i];
end;
i:=i+1; End;
if (dvazaznamy) then begin write(max:16:4);
end else begin write('Zadny prvek se v seznamu neopakuje.');
end;
close(Soubor);
read(max);
end.