Описать функцию s3(f), значением которой является сумма последних трех элементов файла - Free Pascal
Формулировка задачи:
type fr=file of real
описать функцию s3(f) значением которой является сумма последних трех элементов файла f имеющего тип fr и содержащего не менее 3 элементов.Введите файл( последний элемент=0) и вычислите функцию s3(F)
Решение задачи: «Описать функцию s3(f), значением которой является сумма последних трех элементов файла»
textual
Листинг программы
program _files;
const
fin = 'input.dat';
type
TFR = file of real;
var
fi : TFR;
R : real;
count : byte;
procedure FillInput(var f : TFR);
{процедура заполнения типизированного файла}
var
r : real;
count : byte;
begin
count:=0;
repeat
write('>: ');readln(r);
inc(count);
if r<>0 then write(f,r)
until (R=0) and (count>3)
end;
function s3(var f : TFR):real;
{возвращает сумму последних трех элементов файла f}
var
x,sum : real;
size : byte;
i : byte;
begin
x:=0;
sum:=0;
size:=filesize(f);
for i:=1 to 3 do
begin
seek(f,size-i);
read(f,x);
sum:=sum+x;
end;
S3:=Sum;
end;
BEGIN
{fill input file}
Assign(fi,fin);rewrite(fi);
FillInput(fi) ;close(fi);
{proces. & output}
assign(fi,fin);reset(fi);
Write(s3(fi):0:2);close(fi);
END.
Объяснение кода листинга программы
- Объявлены константы и переменные:
- const fin = 'input.dat';
- type TFR = file of real;
- var fi : TFR;
- var R : real;
- var count : byte;
- Определена процедура FillInput(var f : TFR). Эта процедура заполняет типизированный файл f числами, которые пользователь вводит с клавиатуры, до тех пор, пока не будет введено число 0 и не будет введено больше трех чисел. Введенные числа записываются в файл.
- Определена функция s3(var f : TFR):real). Эта функция возвращает сумму последних трех элементов файла f. Для этого используется цикл for, который выполняется три раза. На каждой итерации цикла файл f перемещается к последнему элементу, затем считывается значение этого элемента и добавляется к сумме.
- В основной части программы выполняются следующие действия:
- Создается экземпляр файла fi, который ссылается на файл input.dat.
- Выполняется процедура FillInput(fi), которая заполняет файл fi числами.
- Файл fi закрывается.
- Выполняется функция s3(fi), которая возвращает сумму последних трех элементов файла fi.
- Результат функции s3(fi) выводится на экран.
- Файл fi открывается для записи и закрывается.