Вывести общее количество зерна (в центнерах) отдельно каждого сорта для каждого района - Pascal ABC
Формулировка задачи:
О поступлении с элеваторов к зернохранилища зерна I, II и III сорта
Структура записи:
• название района,
• номер элеватора,
• количество зерна I, II и III сорта в центнерах за подотчетный период.
Количество записей в файле> 10.
Значение - стоимость центнера зерна, соответственно I, II и III сортов - ввести с клавиатуры.
Вывести на печать следующую информацию:
1. Общее количество зерна (в центнерах) отдельно каждого сорта для каждого района;
2. Общая стоимость зерна отдельно каждого сорта для каждого района;
3. Общее количество зерна (в центнерах) для указанного с клавиатуры сорта.
Решение задачи: «Вывести общее количество зерна (в центнерах) отдельно каждого сорта для каждого района»
textual
Листинг программы
- program pr;
- const
- Csize = 10;
- type
- Tgranary = record
- district: string[50];
- number: integer;
- cI: integer;
- cII: integer;
- cIII: integer;
- end;
- Tarr = array [1..Csize] of Tgranary;
- var
- f: file of Tgranary;
- a: Tarr;
- i, n, af, b, c, s, sum: integer;
- begin
- assign(f, 'c:\gra.txt');
- rewrite(f);
- writeln('Введите количество запсей');
- readln(n);
- for i := 1 to n do
- begin
- sum := 0;
- writeln('Введите название района');
- readln(a[i].district);
- writeln('Введите номер элеватора');
- readln(a[i].number);
- writeln('Введите количество зерна 1 сорта');
- readln(a[i].cI);
- writeln('Введите количество зерна 2 сорта');
- readln(a[i].cII);
- writeln('Введите количество зерна 3 сорта');
- readln(a[i].cIII);
- write(f, a[i]);
- writeln;
- end;
- close(f);
- writeln('Введите стоимость 1,2,3 сорта');
- readln(af, b, c);
- reset(f);
- while not eof(f) do
- begin
- read(f, a[i]);
- writeln('Район: ', a[i].district, ' Номер эл: ', a[i].number, ' 1 сорт: ', a[i].cI, ' 2 сорт: ', a[i].cII, ' 3 сорт ', a[i].cIII, ' ');
- end;
- for i := 1 to n do
- begin
- writeln('Район: ', a[i].district, ' ', ' Стоимость 1 сорт: ', a[i].cI * af, ' Стоимость 2 сорт: ', a[i].cII * b, ' Стоимость 3 сорт: ', a[i].cIII * c, ' '); end;
- writeln('Введите сорт');
- readln(s);
- if s = 1 then
- for i := 1 to n do
- begin
- sum := sum + (a[i].cI);
- end;
- if s = 2 then
- for i := 1 to n do
- begin
- sum := sum + (a[i].cII);
- end;
- if s = 3 then
- for i := 1 to n do
- begin
- sum := sum + (a[i].cIII);
- end;
- writeln('Общее количество зерна ', s, ' сорта: ', sum);
- end.
Объяснение кода листинга программы
- Создается программа на языке Pascal ABC с использованием структуры данных
Tgranary
, которая представляет собой запись с полямиdistrict
(район),number
(номер элеватора),cI
(количество зерна 1 сорта),cII
(количество зерна 2 сорта),cIII
(количество зерна 3 сорта). - Создается переменная
Tarr
, которая представляет собой массив из структурTgranary
. - Создается файл
f
типаfile of Tgranary
. - Задаются значения переменных
n
,af
,b
,c
,sum
. - Запускается цикл чтения данных из файла
f
. В каждой итерации считывается информация о районе, номере элеватора, количестве зерна каждого сорта и записывается в переменнуюa[i]
. - После завершения цикла чтения данных из файла
f
, считываются данные о стоимости каждого сорта. - Запускается цикл записи данных в файл
f
. В каждой итерации считывается информация о районе, номере элеватора, количестве зерна каждого сорта и записывается в файл. - После завершения цикла записи данных в файл
f
, считывается информация о сорте. - Если сорт равен 1, то суммируется количество зерна 1 сорта.
- Если сорт равен 2, то суммируется количество зерна 2 сорта.
- Если сорт равен 3, то суммируется количество зерна 3 сорта.
- Выводится общее количество зерна каждого сорта.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д