Сумма последних 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.

Объяснение кода листинга программы

  1. Создание переменной f типа file of integer для работы с файлом.
  2. Вывод сообщения о том, что необходимо ввести не менее четырех чисел, окончание ввода 100.
  3. Цикл repeat, который будет выполняться до тех пор, пока введенное число не станет равным 100.
  4. Чтение числа из файла и вывод его на экран.
  5. Если число не равно 100, то записывается в файл.
  6. Вывод сообщения о том, что в файле нет четырех чисел.
  7. Чтение размера файла n.
  8. Цикл while not eof(f) выполняется, пока не будет достигнут конец файла.
  9. Чтение числа из файла и вывод его на экран.
  10. Если число не равно 100, то записывается в файл.
  11. Счетчик s инициализируется нулем.
  12. Цикл for i:=n-4 to n-1 do выполняется четыре раза, начиная с индекса файла n-4 и заканчивая индексом n-1.
  13. Для каждого значения i выполняется поиск в файле f на текущем индексе i, чтение числа из файла и добавление его к сумме s.
  14. Вывод суммы последних четырех чисел.
  15. Чтение числа x с клавиатуры.
  16. Проверка условия if x<s и, в зависимости от результата, запись числа x в файл или вывод сообщения о том, что результат не удовлетворяет условию.
  17. Цикл while not eof(f) выполняется, пока не будет достигнут конец файла.
  18. Чтение числа из файла и вывод его на экран.
  19. Закрытие файла.
  20. Выход из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5