Сумма последних 4 компонент файла - Pascal ABC
Формулировка задачи:
Очень прошу, помогите. Вроде все правильно, но я не пойму как сделать так, чтобы считалась сумма последних 4 компонент.
Записать на диск файл вещ чисел. Если сумма последних 4 компонент файла превышает некоторое x (вводится с клавиатуры), то записать х на место последней компоненты, иначе записать х на место первой компоненты. Файл распечатать.
Решение задачи: «Сумма последних 4 компонент файла»
textual
Листинг программы
var f:file of integer; s,x,a,n,i:integer; begin assign(f,'f.dat'); rewrite(f); writeln('Введите в файл не менее четырех чисел, окончаеие ввода 100'); repeat write('a<>100 a='); readln(a); until a<>100; write(f,a); while a<>100 do begin write('a='); readln(a); if a<>100 then write(f,a); end; writeln('Содержание исходного файла'); reset(f); n:=filesize(f); while not eof(f) do begin read(f,a); write(' ',a); end; writeln; if n<4 then begin writeln('В файле нет четырех чисел'); close(f); exit; end; reset(f); s:=0; for i:=n-4 to n-1 do begin seek(f,i); read(f,a); s:=s+a; end; writeln('Сумма последних 4=',s); writeln('Введите число x='); readln(x); if x<s then begin seek(f,n-1); write(f,x); end else begin seek (f,0); write(f,x); end; writeln('Результат:'); reset(f); while not eof(f) do begin read(f,a); write(' ',a) end; close(f); end.
Объяснение кода листинга программы
- Создание переменной
f
типаfile of integer
для работы с файлом. - Вывод сообщения о том, что необходимо ввести не менее четырех чисел, окончание ввода 100.
- Цикл
repeat
, который будет выполняться до тех пор, пока введенное число не станет равным 100. - Чтение числа из файла и вывод его на экран.
- Если число не равно 100, то записывается в файл.
- Вывод сообщения о том, что в файле нет четырех чисел.
- Чтение размера файла
n
. - Цикл
while not eof(f)
выполняется, пока не будет достигнут конец файла. - Чтение числа из файла и вывод его на экран.
- Если число не равно 100, то записывается в файл.
- Счетчик
s
инициализируется нулем. - Цикл
for i:=n-4 to n-1 do
выполняется четыре раза, начиная с индекса файлаn-4
и заканчивая индексомn-1
. - Для каждого значения
i
выполняется поиск в файлеf
на текущем индексеi
, чтение числа из файла и добавление его к суммеs
. - Вывод суммы последних четырех чисел.
- Чтение числа
x
с клавиатуры. - Проверка условия
if x<s
и, в зависимости от результата, запись числаx
в файл или вывод сообщения о том, что результат не удовлетворяет условию. - Цикл
while not eof(f)
выполняется, пока не будет достигнут конец файла. - Чтение числа из файла и вывод его на экран.
- Закрытие файла.
- Выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д