В данной статье мы рассмотрим операторы mod и div, их применение при решении задач. Рассмотрим несколько примеров с решением, а также задачи для самостоятельного выполнения.
Успехов вам в программировании!!!
- С помощью mod мы получаем остаток от деления числа a на число b.
a:= 21; b:=8; s:=21 mod 8;
Переменная s будет равна 5.
- С помощью оператора div мы получим целую часть от деления числа a на число b
a:= 21; b:=8; s:=21 div 8;
Переменная s будет равна 2.
Использование mod при решении задач
- Чаще всего оператор mod используется для определения кратности числа и используется в условии (оператор IF)
Задача: определить, является ли число, введенное с клавиатуры, четным.
Чтобы ответить на этот вопрос нужно поделить число a с помощью mod на 2 (a mod 2) и сравнить это значение с нулем. Условие будет выглядеть так: a mod 2 = 0
var a:integer; begin readln(a); // вводим число if a mod 2 = 0 then writeln('введенное число - четное'); // если условие выполняется - выводим на экран сообщение end.
Итак, чтобы узнать: делится ли число a на число b без остатка, нужно воспользоваться условием:
- Также оператор mod используется для определения последней цифры числа
Задача:умножить последнюю цифру числа на 10 и результат вывести на экран.
Чтобы поместить последнюю цифру числа a в некоторую переменную необходимо поделить это число с помощью mod на 10. Получим: b:=a mod 10 — в переменной b окажется последняя цифра числа.
var a,b,res:integer;
begin
readln(a);
b:= a mod 10; //присваиваем переменной b последнюю цифру числа a
res:=b*10; // умножаем b на 10
writeln(res); // выводим результат на экран
end.
Если мы хотим отделить 2-е последние цифры числа, то должны делить с помощью mod на 100; если 3 — на 1000 и т.д.
Чтобы узнать, оканчивается ли число a на цифру b необходимо воспользоваться условием:
Задача: если введенное с клавиатуры число оканчивается на 5 и делится на 7, то вывести «YES» иначе «NO»
var a:integer; begin readln(a); if (a mod 7 = 0) and (a mod 10 = 5) then writeln('YES') else writeln('NO'); end.
С помощью рассмотренных условий и цикла со счетчиком можно решить следующую задачу:
посчитать количество чисел, которые кратны 9 и оканчиваются на 5 в диапазоне от 1 до 500
var i, n:integer; begin for i:=1 to 500 do if (i mod 9 = 0) and (i mod 10 = 5) then n:=n+1; writeln('Количество чисел = ', n); end.
Использование оператора div при решении задач
Задача: дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т.е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.
Отделить первую цифру числа можно, поделив его с помощью div на 100.
Отделить последнюю цифру можно, поделив его с помощью mod на 10. Вторая цифра нам не нужна для решения задачи, т.к. от нее не зависит, будет ли число палиндромом.
var a, a1, a3:integer; begin readln(a); a1:=a div 100; a3:= a mod 10; if a1=a3 then writeln('Число ', a,' является палиндромом'); end.
Задачи для самостоятельного выполнения:
- Дано трехзначное число. Определить:
- является ли сума его цифр двузначным числом
- является ли произведение его цифр трехзначным числом
- больше ли числа a произведение его цифр
- кратна ли пяти сумма его цифр
- кратна ли сумма его цифр числу a
- Дано четырехзначное число. Определить:
- равна ли сумма двух первых его цифр сумме двух его последних цифр
- кратна ли трем сума его цифр
- кратно ли четырем произведение его цифр
- кратно ли произведение его цифр числу а
Спасибо. Толковая и точная информация. Использую при обучении детей!!!!