Другие языки программирования и технологии

как можно переписать эту программу, чтобы использовался оператор case?

program chislo; uses crt; var a, b, c: real; begin writeln ('vvedite a, b, c'); readln (a,b,c); if (a>b) and (a>c) then writeln ('a') else if (b>a) and (a>c) then writeln ('b') else writeln ('c'); readln; end. Или ее нельзя написать используя case? Заранее спасибо.
Лучше бы вопрос задали как это на С++ реализовать! А на Паскале это выглядит как-то не интересно:

var
a,b,c: integer;
begin
writeln ('введите a, b, c');
readln (a,b,c);
case (a>b) and (a>c) of
True: writeln('a');
False:
case (b>a) and (a>c) of
True: writeln('b');
False: writeln('c');
end;
end;
end.

но это лишь ответ на вопрос, а гарантированно максимальный элемент эта программа, согласно приведённому алгоритму, не выводит!
АМ
Александр Морозов
76 473
Лучший ответ
Самое интересное, что если a = b, то выведет все равно "с", даже если оно и меньше а и b.
Джокер ***
Джокер ***
60 951
Оператор case служит для выбора.
К примеру:
case Month of
1: S := 'январь';
2: S := 'февраль';

end;

И его к данной задаче ни каким боком не приставишь…
Саша Тронин
Саша Тронин
83 224
Оператор case используется для выбора одного значения из предложенных вариантов констант, а не для сравнений.

В программе думаю ошибка есть:
if (b > a) and (a > c) then writeln ('b'), должно быть вместо (a > c) выражение (b > c)
MZ
Mihail Zelenko
40 015
Case тут бесполезен. Но можно переделать так
if (a>c) then
if (a>b) then writeln('a') else writeln('b')
else writeln('c');
case подразумевает равенство скалярных значений, т. е.
if a=1 ...
else if a=2...
else if a=3 и т. д.
С условиями отличными от равенства (<, >, <= и т. д. ) case не работает
для этого оператора нужен список констант:

case Выражение of
Список1_Констант: begin{ инструкции } end;
Список2_Констант: begin{ инструкции } end;
СписокJ_Констант: begin{ инструкции } end;

У вас констант нет, поэтому нельзя
case можно использовать (насколько я знаю) только с одним числом/выражением, например:

case x of
1 : ___;
2 : ___;
...
...
else ___ (else необязателен) .

а у тебя сравниваются разные условия: (a>b), (a>c) ,(b > c).

И ещё:
if (a>b) and (a>c) then writeln ('a')
else
тут ты уже знаешь, что "а" не максимально, поэтому условие (b>a) можно опустить.