Показать сообщение отдельно
Старый 13.05.2011, 21:56   #3 (permalink)
Karel
Новичок
 
Регистрация: 13.05.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Главная ошибка - в цикле сравнения должно быть не
if rabotnik[1].metrnachel<=min then, а
if rabotnik[i].metrnachel<=min then
Кроме того, подправил и подчистил программу, например, убрал в начале абсолютно ненужное обнуление переменной цикла (i:=0), выбросил K - оно не используется, отредактировал вывод - вместо
write('kolichestvo kvadrat. metrov na 1 cheloveka:',' ');
write(min,' ');
сейчас
write('kolichestvo kvadrat. metrov na 1 cheloveka: ');
writeln(min:5:1); .
Итого:
Код:
program sp;
uses crt;
const
 n=3;
type spisok=record
  fio:string;
  kolchel:integer;
  kolkvmetrov:real;
  metrnachel:real;
end;
var
 i:integer;
 min:real;
 rabotnik:array[1..n] of spisok;
begin
 clrscr;
 for i:=1 to n do
  with rabotnik[i] do
   begin
    writeln('vvedite svedenia o rabotnike');
    writeln('vvedite fam, name, otch');
    readln(fio);
    writeln('vvedite kolichestvo chel');
    readln(kolchel);
    writeln('vvedite kolichestvo kvad.metrov');
    readln(kolkvmetrov);
    metrnachel:=kolkvmetrov/kolchel;
   end;
 writeln('spisok rabotnikov:');
 min:=rabotnik[1].metrnachel;
 for i:=1 to n do
  begin
   if rabotnik[i].metrnachel<=min then
    begin
     min:=rabotnik[i].metrnachel;
     write(rabotnik[i].fio,' ');
     write('kolichestvo kvadrat. metrov na 1 cheloveka: ');
     writeln(min:5:1);
    end;
  end;
 readln;
end.
А вообще - правильно ли искать минимум? Может быть следует просто вывести список работников, у кого обеспеченность квадратными метрами на человека ниже заранее установленной нормы? Мне кажется, так было бы логичнее. Впрочем, Вам виднее.
Нормы нету!
Получается если min у второго работника, то в выводе он не отображается.
Karel вне форума   Ответить с цитированием
Ads

Яндекс

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