Показать сообщение отдельно
Старый 27.05.2011, 21:17   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ошибок - просто море.
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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070