СО
Сергей Овчеренко

помогите с условным оператором в Pascal

значит такая программка с условным оператором if - else
суть программы опередлить какое число ввел пользователь четное или нечетное.
вопрос не пойму этой директивы if n mod 2 = 0 насколько я понимаю оператор mod дает в результате целый тип занчения тоесть например 5 делить на 2 2,5 но результат будет 2 без ноля или тот же 4 поделить на 2 будет 2.0 но с модом будет просто 2 .а причем здесь" = 0" ?объясните пожалуйста
вначале я думала что ноль означает значение булевого типа false

var n:integer;
begin
write (' Введите целое число ');
readl (n);

if n mod 2 = 0 then
write ('Число четное");
else
write('Число нее четное");
readln
end.

Александра Киселева
Александра Киселева

Конечно, решение не ахти, но работает, потому что mod определяет в данном случае остаток от деления числа на 2. Для четных чисел он равен нулю, для нечетных - 1 или -1.
А плохое оно потому, что есть специальная функция для определения четности числа - проще и быстрее.
Ну и синтаксическая мелочь - знак ; перед else недопустим, это с if одно предложение (один оператор) .

var n:integer;
begin
write (' Введите целое число '); readln (n);
if odd(n) then writeln('Число нечетное") else writeln('Число четное");
readln
end.

АС
Александр Скачков

Mod делит данное число (n) на заданное (2) и берет остаток от деления.
То есть так мы проверяем на четность, ведь четные числа делятся на 2 нацело.
Поэтому если остаток равен нулю, то число четное, если нет, то нечетное

ОИ
Ольга Ильина

есть такие штуки div и mod первая это целочилсенное деление (7 делим на 3 ровно 2) второе что в твоем случае остаток от деления, то есть если остаток 0 то четное число

МК
Максим Керкин

оператор целочисленного деления - div (5 div 2 --> 2)
у вас mod остаток целочисленного деления (5 mod 2 --> 1 6 mod 2 --> 0) при делении четных чисел остаток =0 о чем и говорит ваше условие

))))
))))

Начнем с того, что If-then-else не условный оператор, а инструкция с условием. Операторами являются + (оператор сложения) , = оператор (сравнения) и т. п или операторы целых чисел (div и mod). Div - делит число нацело (представьте, что 10/2 то же самое, что 10 div 2), mod находит остаток от деления (10 mod 2 = 0 От числа 10 найдем остаток при делении на 2) . Каждый оператор имеет операндов (чисел над которыми производится действие (Пример c:=a+b здесь a и b операнды, а + оператор сложения) или (Пример 10 div 5, 10 и 5 операнды, div оператор целого деления)

ЗС
З* Светлана

четное-нечетное?

Решение
=====================
if(odd(n))then
showmessage('четное')
else
ShowMessage('нечетное');
======================
Вариант собственной Odd функции
function my_odd(X:integer):boolean; assembler;
asm
mov ecx,eax
or eax,1 // присваивание первого бита, если отсутствует
cmp eax,ecx //сравнение чисел оригинала и с добавленным битом
jne @no_odd
mov eax,1
jmp @exit
@no_odd:
mov eax,0
@exit:
end;

Похожие вопросы
Напишите любую программу с двумя условными операторами.
Программа Pascal ошибка оператор and.
Язык Pascal. Оператор Readln;
pascal ABC (оператор case)
Условный оператор паскаль ABC помогите найти ошибку
Ожидался оператор PASCAL
Pascal, Delphi. Оператор ветвления
Помогите с условными операторами C#
Помогите составить программу на с++(условный оператор
Не закрыт один или более условный оператор (<?if?>)