Главная ошибка - в цикле сравнения должно быть не
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.
А вообще - правильно ли искать минимум? Может быть следует просто вывести список работников, у кого обеспеченность квадратными метрами на человека ниже заранее установленной нормы? Мне кажется, так было бы логичнее. Впрочем, Вам виднее.