Следуя 6 правилу форума, создаю новую тему.
http://forum.pascal.net.ru/index.php?showtopic=20389
Задание такое же, что и в предыдущей задаче. Только теперь действия выполняются не в массиве, а в файле.
Нужно вычислить:
1. Номер минимального по модулю элемента;
2. Сумму модулей элементов, расположенных после первого отрицательного элемента.
Вот, начал... Ток во-первых Паскаль выдаёт ошибку: "100: Disk read error.", указывая на строку "read (f, buf);", хотя диск и файл существуют. Во-вторых, не могу завершить задачу (вторую часть). Помогите, плз...
Program OAIP_L03;
Var
i, a, min, sum, buf : Longint;
f : file of Longint;
Begin
assign (f, 'D:\File_2.dat');
reset (f);
read (f, min);
min:=abs(min);
a:=1;
while not eof (f) do begin
read (f, buf);
if abs(buf) < min then begin
min:=abs(buf);
a:=filepos (f)-1;
end;
end;
writeln ('nomer min. el. - ', a);
close (f);
End.
а ты файл-то заполнил ? Причем файл у тебя типизированный и заполнять его надо программно ...
Конечно, заполнил:
файл НЕ текстовый и, как я уже сказал, заполняется программно. То есть для его заполнения нужно написать отдельную программу (ну или сделать это в основной программе перед началом работы алгоритма)
...
rewrite(f);
randomize;
for i := 1 to n do write(f, Random(100));
close(f);
...
И всё-таки непонятно, где должен быть код:
rewrite(f);
randomize;
for i := 1 to n do write(f, Random(100));
close(f);
Ну так запихни этот код в отдельную программу, если так хочешь ... пусть она создаст файл. А потом работай с ним из своей программы.