Type падеж = (им,род,дат,вин,твор,предл); слово = (степь,боль,тетрадь,дверь); var w:...

0 голосов
40 просмотров

Type падеж = (им,род,дат,вин,твор,предл);
слово = (степь,боль,тетрадь,дверь);
var w: слово; р: падеж;
Напечатать слово w в падеже р и единственном числе (например, при w = степь и р = твор надо напечатать слово степью).
Язык программирования Паскаль, помогите пожалуйста.


Информатика (34 баллов) | 40 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
Очень яркая иллюстрация того, как НЕ НАДО работать с перечислимым типом данных

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
тетрадью
(150k баллов)
0

ладно.разберемся) спасибо огромное за помощь))