Очень яркая иллюстрация того, как НЕ НАДО работать с перечислимым типом данных
type
падеж=(им,род,дат,вин,твор,предл);
слово=(степь,боль,тетрадь,дверь);
var
w:слово;
p:падеж;
s:string;
n:0..5;
begin
Writeln('Введите номер слова');
Write('0-степь,1-боль,2-тетрадь,3-дверь: '); Read(n);
case n of
0:w:=степь;
1:w:=боль;
2:w:=тетрадь;
3:w:=дверь
end;
s:=w.ToString;
Writeln('Введите номер падежа');
Write('0-им, 1-род, 2-дат, 3-вин, 4-твор, 5-предл: '); Read(n);
case n of
0:p:=им;
1:p:=род;
2:p:=дат;
3:p:=вин;
4:p:=твор;
5:p:=предл
end;
case p of
им,вин: Writeln(s);
род,дат,предл: Writeln(Copy(s,1,Length(s)-1)+'и');
твор:Writeln(s+'ю')
end
end.
Пример
Введите номер слова
0-степь,1-боль,2-тетрадь,3-дверь: 2
Введите номер падежа
0-им, 1-род, 2-дат, 3-вин, 4-твор, 5-предл: 4
тетрадью