Найти предприятие с минимальным грузооборотом - Pascal ABC
Формулировка задачи:
Задание 7
Даны шифры предприятий, расчётный и реальный грузооборот их в ткм. Вывести список автопредприятий, у которых реальный грузооборота более чем на 10% ниже расчётного. Найти предприятие с минималь*ным грузооборотом.
Надо решить с процедурами
Решение задачи: «Найти предприятие с минимальным грузооборотом»
textual
Листинг программы
program pr;
const
Csize = 100;
type
Tcompa = record
cipher: integer;
estimated: integer;
really: integer;
end;
Tarr = array [1..Csize] of Tcompa;
var
i, n,min,indx: integer;
a: Tarr;
procedure df(var x:Tarr; const n:integer); // процедура поиска предприятия с минимальным грузооборотом
var
i,min:integer;
begin
min:=a[1].really;
for i := 1 to n do
if a[i].really<=min then
begin
min:=a[i].really;
indx:=i;
end;
writeln('Предприятие с минимальным грузооборотом: Шифр:',a[indx].cipher,' Расчётный оборот: ',a[indx].estimated, ' Реальный: ',min);
end;
begin
writeln('Введите количество предприятий');
readln(n);
for i := 1 to n do
begin
writeln('Введите шифр предприятия');
readln(a[i].cipher);
writeln('Введите расчётный грузооборот предприятия');
readln(a[i].estimated);
writeln('Введите реальный грузооборот предприятия');
readln(a[i].really);
writeln;
end;
writeln('Cписок авто предприятий, у которых реальный грузооборота более чем на 10% ниже расчётного');
for i := 1 to n do
if (a[i].estimated - (a[i].estimated * 0.1)) > (a[i].really) then
begin
writeln('Шифр: ', a[i].cipher);
writeln('Расчётный: ', a[i].estimated);
writeln('Реальный: ', a[i].really);
end;
df(a,n); // вызов процедуры
end.
Объяснение кода листинга программы
- В программе объявлены переменные: i, n, min, indx, a, df.
- В const section заданы константы: Csize.
- В type section определен тип данных Tcompa, который включает в себя четыре поля: cipher (целое число), estimated (целое число), really (целое число).
- В var section объявлены переменные: i, n, min, indx, a, df.
- В procedure df объявлены переменные: i, min, indx, a.
- В body procedure df выполняется поиск предприятия с минимальным грузооборотом. Переменная min инициализируется значением первого элемента массива a. Затем происходит цикл for, который проверяет каждый элемент массива a. Если значение реально меньше или равно min, то min обновляется на значение реально текущего элемента, а indx обновляется на индекс текущего элемента. В конце выводится информация о найденном предприятии.
- В body beginning заданы вопросы пользователю о количестве предприятий и их характеристиках.
- В for loop выводится информация о каждом предприятии.
- Во вложенном for loop проверяется условие (a[i].estimated - (a[i].estimated * 0.1)) > (a[i].really) и если оно истинно, то выводится информация о предприятии.
- В end procedure.
- В end program.