какой координатной четверти принадлежит точка



Автор Зайка задал вопрос в разделе Другие языки и технологии

В чем ошибка? (паскаль) и получил лучший ответ

Ответ от Delfin[гуру]
Program Chetverti;
Var a,b: Integer;
Begin
ReadLn (a, b);
If (a=0) and (b=0) Then WriteLn ('Точка находится в центре');
If (a=0) and (b<>0) Then WriteLn ('Точка принадлежит оси X');
If (a<>0) and (b=0) Then WriteLn ('Точка принадлежит оси Y');
If (a>0) and (b>0) Then WriteLn ('Точка принадлежит первой четверти');
If (a<0) and (b>0) Then WriteLn ('Точка принадлежит второй четверти');
If (a<0) and (b<0) Then WriteLn ('Точка принадлежит третьей четверти');
If (a>0) and (b<0) Then WriteLn ('Точка принадлежит четвертой четверти');
end.

Ответ от Ўрий-17[гуру]
Var a,b,c: Integer;
m: array [0..6] of string;
Begin
m[0]:='0';m[1]:='I';m[2]:='II';m[3]:='IV';m[4]:='III';m[5]:='a';m[6]:='b';
WriteLn ('a, b');
ReadLn (a, b);
If a < 0 then c:=c or 1;
If b < 0 then c:=c or 2;
c:=c+1;
If (a=0) and (b <> 0) then c:=5;
If (b=0) and (a <> 0) then c:=6;
If (a=0) and (b=0) then c:=0;
WriteLn (m[c]);
end.

Ответ от Владимир Волков[гуру]
ошибка во первых в том, что структура вложения "косая". У Вас Логика странная... "если а и б равны нулю.... иначе, а или б равны нулю... какие-то выводы не из логики действий, а из палаты №6. Алгоритм оптимизируйте, там всё укладывается без "шестистрочного ямба". Программист ОБЯЗАН БЫТЬ ЛЕНИВ! иначе не прграмма, а полное собрание сочинений классиков получится

Ответ от Otzigatel[гуру]
Ошибка вот в чём: многоуровневое ветвление алгоритма.
Все условия исключают друг друга, так что можно их все подряд запихнуть безо всяких else if... это неудобно для восприятия и анализа. Следствие - легко допустить логическую ошибку.

Ответ от Михаил[активный]
Чето end'ов слишком много. Вообще логичнее через case написать, я думаю.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: В чем ошибка? (паскаль)
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*