1.построить файл данных, компонентами которого являются натуральные числа. подсчитать сумму тех компонент, которые делятся на 5 и не делятся на 10. 2.построить типизированный файл данных, который состоит из записей с такими полями: название продукта, количество углеводов, количество белков, количество жиров. вывести названия тех продуктов, которые соответствуют следующим условиям: белки меньше 20, жиры больше 10, углеводы больше 30.
Program KDSUP_1;
uses crt;
Var
f: File of Integer;
i,n,x,sum : Integer;
begin
write('Введите количество чисел: ');
readln(n);
assign(f,'1.dat');
rewrite(f);
for i:=1 to n do
write(f,Random(100)+1);
reset(f);
writeln('Исходный файл:');
while not Eof(f) do
begin
read(f,x);
write(x,' ');
end;
writeln;
sum:=0;
For i:=0 to FileSize(f)-1 do
begin
Seek(f,i);
Read(f,x);
if (x mod 5=0) and (x mod 10<>0) then
begin
sum:=sum+x;
end;
end;
Close(f);
writeln('Сумма: ',sum);
end.
Program KDSUP_2;
uses crt;
Type
Eda=Record
prod:string;
ugl,bel,fat:real;
end;
ps=File of eda;
Var f:ps;
i,n,m:Integer;
z:eda;
Begin
assign(f,'1.dat');
rewrite(f);
writeln('Ввести количество продуктов');
readln(n);
randomize;
for i:=1 to n do
begin
z.prod:='Product_'+IntToStr(i);
z.ugl:=random(100);
z.bel:=random(100);
z.fat:=random(100);
write(f,z);
end;
Close(f);
writeln('');
writeln('* М Е Н Ю *');
writeln('* продукты с содержанием *');
writeln('* белки: меньше 20 *');
writeln('* жиры: больше 10 *');
writeln('* углеводы: больше 30 *');
writeln('');
assign(f,'1.dat');
reset(f);
while not(eof(f)) do
begin
read(f,z);
if (z.ugl>30) and (z.bel<20) and (z.fat>10) then
writeln(' ',z.prod);
end;
close(f);
end.