uses wincrt;
type name = (Mary, Jane, Kim, Bob, Jan, Pit, Tom, Sara, Bill, Pol);
data = record
male : boolean; {муж: true - , false - жен}
height: 140..220;
l:name;
end;
group = array[name] of data;
var g:group; n:byte;
function d(g:group;k:byte ):name;
var c:name;
w:name;
begin
for c:=Mary to Pol do
if g[c].male=true then
if g[c].height=k then
w:=g[c].l;
d:=w;
end;
begin
with g[Mary] do begin
male:=false;
height:=150
end;
with g[Kim] do begin
male:=true;
height:=170;
end;
readln(n);
writeln(d(g,n));{ - здесь ошибка!! в чём?}
end.
Нужно выбрать мужчину из группы с ростом N
type name = (Mary, Jane, Kim, Bob, Jan, Pit, Tom, Sara, Bill, Pol);
Этот тип перечисляемый, напрямую переменные этого типа вывести процедурой writeln нельзя.
Можно поставить в соответствие строковую константу:
const
namestr : array [name] of string = ('Mary', 'Jane', 'Kim', 'Bob', 'Jan', 'Pit', 'Tom', 'Sara', 'Bill', 'Pol');