1.Построить файл данных, компонентами которого являются натуральные числа. Подсчитать...

0 голосов
25 просмотров

1.Построить файл данных, компонентами которого являются натуральные числа. Подсчитать сумму тех компонент, которые делятся на 5 и не делятся на 10. 2.Построить типизированный файл данных, который состоит из записей с такими полями: название продукта, количество углеводов, количество белков, количество жиров. Вывести названия тех продуктов, которые соответствуют следующим условиям: белки меньше 20, жиры больше 10, углеводы больше 30.


Информатика (48 баллов) | 25 просмотров
Дан 1 ответ
0 голосов
Правильный ответ


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.

(52.6k баллов)