Другие языки программирования и технологии
как можно переписать эту программу, чтобы использовался оператор 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.
но это лишь ответ на вопрос, а гарантированно максимальный элемент эта программа, согласно приведённому алгоритму, не выводит!
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.
но это лишь ответ на вопрос, а гарантированно максимальный элемент эта программа, согласно приведённому алгоритму, не выводит!
Самое интересное, что если a = b, то выведет все равно "с", даже если оно и меньше а и b.
Оператор case служит для выбора.
К примеру:
case Month of
1: S := 'январь';
2: S := 'февраль';
…
end;
И его к данной задаче ни каким боком не приставишь…
К примеру:
case Month of
1: S := 'январь';
2: S := 'февраль';
…
end;
И его к данной задаче ни каким боком не приставишь…
Оператор case используется для выбора одного значения из предложенных вариантов констант, а не для сравнений.
В программе думаю ошибка есть:
if (b > a) and (a > c) then writeln ('b'), должно быть вместо (a > c) выражение (b > c)
В программе думаю ошибка есть:
if (b > a) and (a > c) then writeln ('b'), должно быть вместо (a > c) выражение (b > c)
Case тут бесполезен. Но можно переделать так
if (a>c) then
if (a>b) then writeln('a') else writeln('b')
else writeln('c');
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 не работает
if a=1 ...
else if a=2...
else if a=3 и т. д.
С условиями отличными от равенства (<, >, <= и т. д. ) case не работает
для этого оператора нужен список констант:
case Выражение of
Список1_Констант: begin{ инструкции } end;
Список2_Констант: begin{ инструкции } end;
СписокJ_Констант: begin{ инструкции } end;
У вас констант нет, поэтому нельзя
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) можно опустить.
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) можно опустить.
Похожие вопросы
- программа с помощью оператора case (C++)
- Помогите пожалуйста составить программу на Паскале, используя оператор case
- Помогите пожалуйста найти ошибку. Паскаль. Оператор Case of
- программа на С++ оператор выбора
- C++. В операторе switch нельзя разве использовать case x? а x пробежать в цикле for?
- Как жаль оператор используется в Visal Basic программирования?
- Как на языке С++ сделать вывод 5 задач через switch-case?
- Помогите найти в чем дело перепишите программу.
- Надо решить с Операторами switch и case of в С++
- Написал небольшую программу, не могу понять почему не работает цикл while и оператор else