Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Люди в чём ошибка?

Автор: jackal 2.04.2003 22:27

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

Автор: ozzy 3.04.2003 14:25

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');