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

Задача: 

Всем известна прямоугольная (декартова) система координат, в которой две перпендикулярные оси делят плоскость на четверти. В первую четверть попадают точки, у которых обе координаты (x и y) больше нуля. Во вторую: x < 0, y > 0; третью: x < 0, y < 0; четвертую: x > 0, y < 0.

Допустим, требуется написать программу, определяющую по координатам точки, в какой четверти она находится.

Алгоритм решения задачи: 

Для решения этой задачи уместно использовать условные операторы if-else вложенные друг в друга.

Программа на языке Паскаль: 

var
    x,y: real;
 
begin
    write ('x = '); read (x);
    write ('y = '); readln (y);
 
    write ('Номер четверти координатной плоскости: ');
    if (x > 0) and (y > 0) then
        writeln ('I')
    else
        if (x < 0) and (y > 0) then
            writeln ('II')
        else
            if (x < 0) and (y < 0) then
                writeln ('III')
            else
                if (x > 0) and (y < 0) then
                    writeln ('IV')
                else
                    writeln ('-. Точка лежит на оси.');
 
readln
end.

Примечания: 

Почему именно вложенные? Ведь программа выглядела куда проще, если убрать все ветки else и оставить только if. Дело в том, что тогда при работе программа будет проверять все ветки if, даже если будет уже известно, что точка принадлежит I или II четверти. Такой алгоритм работы программы будет не совсем эффективным и грамотным.
Также желательно в программе предусмотреть случай, когда x или y (или оба значения) равны нулю. В таком случае точка будет лежать на соответствующей координатной оси (или находиться в начале координат).

Комментарии

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

 uses crt;
 var
    x,y: real;
 
begin  clrscr;
    write ('x = '); read (x);
    write ('y = '); readln (y);
 
 
    if (x > 0) and (y > 0) then
        writeln ('Номер четверти координатной плоскости:I')
    else
        if (x < 0) and (y > 0) then
            writeln ('Номер четверти координатной плоскости:II')
        else
            if (x < 0) and (y < 0) then
                writeln ('Номер четверти координатной плоскости:III')
            else
                if (x > 0) and (y < 0) then
                    writeln ('Номер четверти координатной плоскости:IV')
                else
                if (x>0)or(x<0) and (y=0) then    writeln ('-. Точка лежит на оси. X')
                                   else
                if (y>0)or(y<0) and (x=0) then    writeln ('-. Точка лежит на оси. Y')
                                   else writeln ('-. Точка лежит в центре.');
 
readln
end.

Более короткий вариант

Function Oktava(x,y : Integer) : Byte;
Begin
  If (x=0) or (y=0) then Oktava:=0 else
    If x>0 then
      If y>0 then Oktava:=1 else Oktava:=4
    else
      If y>0 then Oktava:=2 else Oktava:=3;
End;