Ошибок - просто море.
1. Параметру процедуры Abc Вы зачем-то присваиваете имя глобальной переменной Org. Зачем?
2. В то же время внутри процедуры Вы пытаетесь манипулировать с переменной-записью S, для данной процедуры вовсе не определенной.
3. Изначальное значение переменной Min в виде Org. (и никакого поля!!!) - полнейшая нелепость.
4. В теле основной программы запись вида Abc (Worker[i]) - тоже нечто невразумительное. Если по замыслу обращение к процедуре Abc входит в цикл по i, то:
а) процедуры vivod и Abc, составляющие тело цикла, должны быть заключены в операторные скобки begin end. Но этого не сделано.
б) Применение того же глобального счетчика (i) без переопределения в теле процедуры абсолютно недопустимо.
Если же обращение Abc (Worker[i]) НЕ входит в глобальный цикл, то что тогда там такое i и зачем оно?
В общем так. Я бы это организовал как-нибудь в таком роде:
Код:
procedure Abc;
var j:Integer;
begin
Min:=Org[1].Salary;
for j:=2 to N do
with Org[j] do
if Salary<Min then Min:=Salary;
writeln ('Минимальная зарплата = ', Min);
end;
begin
For i:=1 to N do
Vvod (Org[i]);
for i:=1 to N do
vivod (Org[i]);
Abc;
Readln
end.