делфи. проблемма с CASE. вроде нормлаьно все а ошибку выдает...

var r:string;
....
....
....

case (r) of ошибка: [Error] Unit1.pas(130): Ordinal type required (Порядковый тип требуются)
'п': b[1]:=b[1]+1;
'и': b[2]:=b[2]+1;
end;

но я не понимаю данной ошибки... почему не работает?

  • В дельфи (и паскале) вроде case работает только с целочисленными цифрами, то есть Integer, либо с Char применяя неявное преобразование к тому же Integer
  • ошибка тут:
    var r:string;

    case в классическом паскале/Delphi работает только с порядковыми типами, т. е. такими, которые можно перебрать по порядку: целыми числами, перечислениями, символами и т. д. Поменяй
    var r:character;
    и соответствующим образом задавай - и все будет в порядке.

Вас заинтересует