Здравствуйте. Я делаю модуль по файлам.
Подскажите почему не считается сумма элементов в массиве и когда я ввожу i элемент, мне всё время пишется file of System.Double
procedure readfil(var f:file of real);
var
m: array [1..1000] of real;
i,n: integer;
a: real;
const name2 = 'massiv.dat';
begin
a := 0;
assign (f, name2);
reset(f);
while not eof(f) do begin
read(f, m[i]);
a := a + m[i];
end;
writeln('Сумма элементов массива = ', a);
close(f);
end;
procedure openfil(var f:file of real);
var
m: array [1..1000] of real;
n,i: integer;
const name2 = 'massiv.dat';
begin
assign (f, name2);
rewrite(f);
writeln('Введите количество элементов');
readln(n);
for i:= 1 to n do begin
writeln('Введите ', i, ' элемент');
readln(m[i]);
Println(f, m[i]);
end;
close(f);
end;
да не то, чтобы “неплохо” - это ОБЯЗАТЕЛЬНО НУЖНО.
локальные переменные ничем не иницилизируются, в стеке может быть любой мусор, это неминуемо приведёт к ошибке.
p.s. я и глобальные переменные без иницилизации не использую - классика жанра, если ты хочешь что-то из переменной взять, то не забудь туда что-то предварительно положить!