Вывести общее количество зерна (в центнерах) отдельно каждого сорта для каждого района - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

О поступлении с элеваторов к зернохранилища зерна I, II и III сорта Структура записи: • название района, • номер элеватора, • количество зерна I, II и III сорта в центнерах за подотчетный период. Количество записей в файле> 10. Значение - стоимость центнера зерна, соответственно I, II и III сортов - ввести с клавиатуры. Вывести на печать следующую информацию: 1. Общее количество зерна (в центнерах) отдельно каждого сорта для каждого района; 2. Общая стоимость зерна отдельно каждого сорта для каждого района; 3. Общее количество зерна (в центнерах) для указанного с клавиатуры сорта.

Решение задачи: «Вывести общее количество зерна (в центнерах) отдельно каждого сорта для каждого района»

textual
Листинг программы
  1. program pr;
  2. const
  3.   Csize = 10;
  4. type
  5.   Tgranary = record
  6.     district: string[50];
  7.     number: integer;
  8.     cI: integer;
  9.     cII: integer;
  10.     cIII: integer;
  11.   end;
  12.   Tarr = array [1..Csize] of Tgranary;
  13.  
  14. var
  15.   f: file of Tgranary;
  16.   a: Tarr;
  17.   i, n, af, b, c, s, sum: integer;
  18.  
  19. begin
  20.   assign(f, 'c:\gra.txt');
  21.   rewrite(f);
  22.   writeln('Введите количество запсей');
  23.   readln(n);
  24.   for i := 1 to n do
  25.   begin
  26.     sum := 0;
  27.     writeln('Введите название района');
  28.     readln(a[i].district);
  29.     writeln('Введите номер элеватора');
  30.     readln(a[i].number);
  31.     writeln('Введите количество зерна 1 сорта');
  32.     readln(a[i].cI);
  33.     writeln('Введите количество зерна 2 сорта');
  34.     readln(a[i].cII);
  35.     writeln('Введите количество зерна 3 сорта');
  36.     readln(a[i].cIII);
  37.     write(f, a[i]);
  38.     writeln;
  39.   end;
  40.   close(f);
  41.   writeln('Введите стоимость 1,2,3 сорта');
  42.   readln(af, b, c);
  43.   reset(f);
  44.   while not eof(f) do
  45.   begin
  46.     read(f, a[i]);
  47.     writeln('Район: ', a[i].district, ' Номер эл: ', a[i].number, ' 1 сорт: ', a[i].cI, ' 2 сорт: ', a[i].cII, ' 3 сорт ', a[i].cIII, ' ');
  48.   end;
  49.   for i := 1 to n do
  50.   begin
  51.     writeln('Район: ', a[i].district, ' ', ' Стоимость 1 сорт: ', a[i].cI * af, ' Стоимость 2 сорт: ', a[i].cII * b, ' Стоимость 3 сорт: ', a[i].cIII * c, ' '); end;
  52.   writeln('Введите сорт');
  53.   readln(s);
  54.   if s = 1 then
  55.     for i := 1 to n do
  56.     begin
  57.       sum := sum + (a[i].cI);
  58.     end;
  59.   if s = 2 then
  60.     for i := 1 to n do
  61.     begin
  62.       sum := sum + (a[i].cII);
  63.     end;
  64.   if s = 3 then
  65.     for i := 1 to n do
  66.     begin
  67.       sum := sum + (a[i].cIII);
  68.     end;
  69.   writeln('Общее количество зерна ', s, ' сорта: ', sum);
  70. end.

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

  1. Создается программа на языке Pascal ABC с использованием структуры данных Tgranary, которая представляет собой запись с полями district (район), number (номер элеватора), cI (количество зерна 1 сорта), cII (количество зерна 2 сорта), cIII (количество зерна 3 сорта).
  2. Создается переменная Tarr, которая представляет собой массив из структур Tgranary.
  3. Создается файл f типа file of Tgranary.
  4. Задаются значения переменных n, af, b, c, sum.
  5. Запускается цикл чтения данных из файла f. В каждой итерации считывается информация о районе, номере элеватора, количестве зерна каждого сорта и записывается в переменную a[i].
  6. После завершения цикла чтения данных из файла f, считываются данные о стоимости каждого сорта.
  7. Запускается цикл записи данных в файл f. В каждой итерации считывается информация о районе, номере элеватора, количестве зерна каждого сорта и записывается в файл.
  8. После завершения цикла записи данных в файл f, считывается информация о сорте.
  9. Если сорт равен 1, то суммируется количество зерна 1 сорта.
  10. Если сорт равен 2, то суммируется количество зерна 2 сорта.
  11. Если сорт равен 3, то суммируется количество зерна 3 сорта.
  12. Выводится общее количество зерна каждого сорта.

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


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

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

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы