Найти ошибку в программе определения типа целого числа - Pascal
Формулировка задачи:
Почему не выводит отрицательное нечётное число?? в чём ошибка, помогите пожалуйста исправить сильно не изменяя код, я конечно понимаю что он не оптимизирован, но всё же...
program if_29; var a: integer; begin readln(a); if a = 0 then writeln('нулевое число') else begin if (a < 0) and (a mod 2 = 0) then writeln('отрицательное четное число') else if (a > 0) and (a mod 2 = 0) then writeln('положительное четное число') else if (a < 0) and (a mod 2 = 1) then writeln('отрицательное нечетное число') else if (a > 0) and (a mod 2 = 1) then writeln('положительное нечетное число'); end; end.
Решение задачи: «Найти ошибку в программе определения типа целого числа»
textual
Листинг программы
var a: Integer; begin Write('Введите число: '); ReadLn(a); if a=0 then WriteLn('ноль') else begin if a<0 then Write('отрицательное') else Write('положительное'); if Odd(a) then Write(' нечетное') else Write(' четное'); WriteLn(' число'); end; end.
Объяснение кода листинга программы
- Переменная
a
объявлена как целочисленная. - Выводится сообщение «Введите число: », а затем считывается значение переменной
a
с помощью функцииReadLn
. - Выполняется проверка условия
a=0
. Если это условие истинно, то выводится сообщение «ноль». - Если условие
a=0
ложно, то выполняется следующая ветвь кода. - Выполняется проверка условия
a<0
. Если это условие истинно, то выводится сообщение «отрицательное». - Если условие
a<0
ложно, то выполняется следующая ветвь кода. - Выполняется проверка условия
Odd(a)
. Если это условие истинно, то выводится сообщение «нечетное». - Если условие
Odd(a)
ложно, то выполняется следующая ветвь кода. - Выполняется проверка условия
a>=0
. Если это условие истинно, то выводится сообщение «положительное». - Если условие
a>=0
ложно, то выводится сообщение «отрицательное». - Выводится сообщение « число».
- Код завершается.