Арифметические действия с элементами файла - PascalABC.NET
Формулировка задачи:
вот задача: Для заданного файла вычислить
a1*2a2 – 3a3*4a4 + 5a5*6a6 +… (здесь ai — последовательно прочитанные элементы файла, причём нумерация начата с 1)
вот код:
почему преподаватель сказал, что данный код написан не на pascal abc? Если он прав, то что "это" тогда?
Решение задачи: «Арифметические действия с элементами файла»
textual
Листинг программы
var f:text;
a1,a2,i,s:integer;
begin
assign(f,'input.txt'); //в файле записано четное число целых чисел
reset(f); //файл в папке с программой
s:=0;
i:=0;
while not seekeof(f) do
begin
read(f,a1,a2);
i:=i+1;
if odd(i) then s:=s+a1*a2
else s:=s-a1*a2;
end;
close(f);
write('S=',s);
end.
Объяснение кода листинга программы
- Объявлены переменные: — f (тип: text); — a1, a2, i, s (тип: integer).
- Присваивается значение переменной f равное 'input.txt'.
- Файл открывается на чтение с помощью функции reset(f).
- Инициализируется счётчик строк s = 0.
- Инициализируется счётчик строк i = 0.
- Запускается цикл while, который выполняется до тех пор, пока не будет достигнут конец файла (eof).
- В каждой итерации цикла считывается пара чисел из файла с помощью функции read(f, a1, a2).
- К счётчику i прибавляется единица.
- Если i является нечётным числом, то к переменной s прибавляется произведение чисел a1 и a2.
- Если i является чётным числом, то из переменной s вычитается произведение чисел a1 и a2.
- Завершается цикл while.
- Файл закрывается с помощью функции close(f).
- Выводится сообщение с результатом s.