Вывести нечетное число | Язык Паскаль

Вывести нечетное число

Из двух чисел с разной четностью вывести на экран нечетное число.

Примеры работы программы

Введите одно четное и одно нечетное число
4 5
5 - нечетное число
Введите одно четное и одно нечетное число
5 4
5 - нечетное число

Исходный код программы (решение задачи) на языке Паскаль

var 
    a, b: integer;

begin
    writeln('Введите одно четное и одно нечетное число');
    readln(a, b);

    if a mod 2 <> 0 then
        writeln(a, ' - нечетное число')
    else
        writeln(b, ' - нечетное число');
end.

Пользователь вводит четное и нечетное число. Последовательность их ввода может быть любой. Таким образом, неизвестно какая из двух переменных (a или b) содержит нечетное число. Чтобы выяснить это, используется конструкция условного ветвления (if-else), а также операция нахождения остатка от целочисленного деления (mod).

Если результат нахождения остатка от деления значения переменной a на 2 неравен (<>) нулю, значит эта переменная содержит нечетное число. Иначе нечетное число находится в переменной b, и тогда его следует вывести на экран.

Дополнение:

В данном случае предполагается, что пользователь осуществляет ввод правильно, то есть всегда вводит одно четное и одно нечетное число. Если же ввод был некорректный (два четных или два нечетных числа), то программа будет работать неправильно. В случае двух четных чисел программа выведет второе. В случае двух нечетных - первое введенное. Чтобы избежать подобных недоразумений, программу можно усовершенствовать следующим образом:

var 
    a, b: integer;

begin
    writeln('Введите одно четное и одно нечетное число');
    readln(a, b);
    
    if (a mod 2 = 0) and (b mod 2 <> 0) then
        writeln(b,' - нечетное число')
    else
        if (a mod 2 <> 0) and (b mod 2 = 0) then
            writeln(a,' - нечетное число')
        else
            writeln('Некорректный ввод');
end.

В данном случае в заголовках условного оператора проверяются оба числа: одно - на четность, другое - на нечетность. Если оба будут четные, или оба будут нечетные, то сработает тело вложенного оператора else.

Введите одно четное и одно нечетное число
3 5
Некорректный ввод
Введите одно четное и одно нечетное число
4 10
Некорректный ввод
Введите одно четное и одно нечетное число
8 13
13 - нечетное число