Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ case of + сравнение чисел

Автор: compiler 28.04.2007 22:18

Добрый день!
как можно(если можна) сравнить 2 числа с помощью case of.
заранее благодарен.

Автор: mamont001 28.04.2007 22:26

А обязательно case?
Если да,то


{♂☺☺☺☻☺☺☺♂}
case (x1<x2) of
true:{Если верно}
else {в противном случае}
{♂☺☺☺☻☺☺☺♂}


Если ты это имееш в виду...

Автор: volvo 28.04.2007 22:32

Можно:

var a, b: double;
begin
a := 23.2; b := 23.4;
case byte((a - b) > 0) of
0:
case byte((a - b) < 0) of
1: writeln('a < b');
0: writeln('a = b');
end;


1: writeln('a > b');
end;
end.

Только зачем?

Автор: compiler 28.04.2007 23:03

здорово было бы если можно было написать

var a, b: double;
begin
a := 23.2; b := 23.4;
case (a сравн b) of
0:writeln('a > b');
1: writeln('a < b');
2: writeln('a = b');
end;
end.


читабильно (по-крайне мере для меня)... наверно надо создавать свой объект... но тогда это будет не понятно другим..

Автор: volvo 28.04.2007 23:08

Цитата
наверно надо создавать свой объект...
blink.gif blink.gif
var a, b: double;
begin
a := 23.4; b := 23.4;

case byte((a - b) > 0) + 2 * byte((a - b) < 0) of
0: writeln('a = b');
1: writeln('a > b');
2: writeln('a < b');
end;
end.

Автор: Malice 28.04.2007 23:10

Цитата(compiler @ 28.04.2007 20:03) *

здорово было бы если можно было написать

case byte(a>=b)-byte(a<=b)+1 of
0: writeln ('<');
1: writeln ('=');
2: writeln ('>');
end;


ps Не успел smile.gif

Автор: compiler 28.04.2007 23:18

Цитата(volvo @ 28.04.2007 19:08) *

begin
...
end.

спасибо

собственно еще что лучше писать через if или case, как показал volvo, с точки зрения стиля...