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.
Program MashaLukianova; uses crt; const n=12; var mas:array[1..n] of integer; b,i,left,right,temp:integer; begin writeln('*** alphaues is thinking... ***'); writeln('*** OK ***'); writeln(); write('Введите загадочное число B '); readln(b); writeln('Элементы массива:'); {создание и вывод начального массива} randomize; for i:=1 to n do begin mas[i]:=random(100)-50; write (mas[i]:4); end; writeln(); left:=0; right:=n; while left <> right do {просматриваем массив с концов к середине, пока "левый" и "правый" текущие элементы не встретятся} begin if mas[left+1]<=b then
{если текущий "левый" элемент меньше или равно В, то просто идём смотреть следующий } begin left:=left+1; end else if mas[right]>=b then {если текущий "правый" элемент больше или равно В, то просто идём смотреть следующий }
begin right:=right-1; end else
{иначе меняем "левый" и "правый" местами} begin temp:= mas[left+1]; mas[left+1]:=mas[right]; mas[right]:=temp; left:=left+1; right:=right-1; end; end; writeln(); {вывод массива-результата} for i:=1 to n do begin write (mas[i]:4); end; writeln(); end.
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.
Program MashaLukianova;
uses crt;
const n=12;
var
mas:array[1..n] of integer;
b,i,left,right,temp:integer;
begin
writeln('*** alphaues is thinking... ***');
writeln('*** OK ***');
writeln();
write('Введите загадочное число B ');
readln(b);
writeln('Элементы массива:');
{создание и вывод начального массива}
randomize;
for i:=1 to n do
begin
mas[i]:=random(100)-50;
write (mas[i]:4);
end;
writeln();
left:=0;
right:=n;
while left <> right do {просматриваем массив с концов к середине, пока "левый" и "правый" текущие элементы не встретятся}
begin
if mas[left+1]<=b then
{если текущий "левый" элемент меньше или равно В, то просто идём смотреть следующий }
begin
left:=left+1;
end
else
if mas[right]>=b then
{если текущий "правый" элемент больше или равно В, то просто идём смотреть следующий }
begin
right:=right-1;
end
else
{иначе меняем "левый" и "правый" местами}
begin
temp:= mas[left+1];
mas[left+1]:=mas[right];
mas[right]:=temp;
left:=left+1;
right:=right-1;
end;
end;
writeln();
{вывод массива-результата}
for i:=1 to n do
begin
write (mas[i]:4);
end;
writeln();
end.