В чем заключается вопрос: Что такое операции mod и div в языке Pascal. Как с нами работать?
Сложность : легкая .
Постараюсь быть краток, сразу стоит сказать что эти операции работают только с целыми числами, т.е. integer и т.д.
Сначала операция div:
Эта операция используется для того чтобы найти целую часть от деления, как это понять? Допустим у нас есть код:
n у нас будет равно 1. Почему? Как я и сказал div ищет целую часть от деления, т.е. у нас делится 12 на 10, это будет равно 1.2. Целая часть от деления равна 1. Вот это и делает операция div, если допустим 12 div 2, ответ 6.0, целая часть уже равна 6. Т.е. мы как бы делим 12 на 10, но в ответ записывается только целая часть от деления.
Дальше операция mod:
Эта операция уже ищет остаток от деления. Не думайте что это дробная часть, НЕ ПУТАЙТЕ!
Допустим есть код:
Тут остаток от деления равен 2. Другой пример, допустим следующее :
Эти операции в основном используются для того чтобы разбить например трехзначное число на цифры, давайте маленький пример, допустим есть число 123:
Обычно начинают искать с последний цифры, у нас это 3. Чтобы её оторвать надо сделать следующее:
Т.е. мы 123 делим на 10, ответ 12.3 , а остаток равен 3. Первая цифра есть. Дальше 2. Тут делается так, сначала убирается последняя цифра, т.е. 3, с помощью div, а потом с помощью mod ищем 2-ую цифру:
Т.е. сначала у нас из-за div будет 12, а потом с помощью mod у нас появится 2. Ну а последнюю цифру можно найти так:
Вот как то так. Может вы сразу не поймете, но тут надо немного по практиковаться. Удачи! Спасибо за внимание!
Всем привет, как дела? Че делаешь? ммм ясно, понятно. Не будем долго и дружелюбно общаться, проходите, присаживайтесь по удобнее, чувствуйте себя как дома. На улице с каждым днем солнце порабощает планету, мне это нравится, с нетерпением жду прихода молодой теплой, походу грязной и с множеством воды, весны. Но есть и свои плюсы: тепло, птицы, растительность, легкая куртка. А как вы относитесь к весне?
В этой части поговорим о еще двух функциях DIV и MOD, в прошлой части мы говорили об математических операциях, сегодняшние функции тоже по сути ими являются. Поехали =)
DIV, MOD или обычное деление
DIV и MOD похожи на обычное деление, но все таки они для чего то существуют, значит разница быть должна. Вспомним начальную школу и математику, когда вы только-только учились умножать и делить, когда вы еще не подозревали, что судьба вас свяжет с программированием и будете работать «тыж программистом» или же помбуром. Шутки в сторону, так вот вспомним деление «столбиком». Возьмем число 23 и разделим его столбиком, как учили в школе, на число 10.
Вот таким образом мы разделили число 23 на 10. У нас осталась в целой части число 2, а в остатке число 3. Проще говоря наш ответ стал равен двум целым и трем десятых(2.3). Отлично, это было обычное деление, но как будет выглядеть это в случае с MOD и DIV?
MOD — если мы делим число с помощью функции MOD, то в ответ у нас пойдет остаток. По примеру выше, если бы мы делили не обычным делением, а с помощью mod, то ответ у нас был бы 3.
DIV — соответственно наоборот, если мы делим в с помощью DIV то в ответ пойдет только целая часть — 2.
Pascal
Откроем PascalABC и напишем заготовку
Объявим две переменные с целочисленным типом данных
Дальше присвоим переменной «a» какое-либо значение и переменную «b» приравняем к переменной «a».
Отлично, теперь выведем ответ на действие обычного деления на число 100
Теперь проделаем тоже деление, но вместо обычного используем DIV и MOD. Переменную «a» делим с помощью функции DIV, а переменную «b» соответственно функцией MOD и посмотрим что получится.
Как видим, div вывел в ответ целую часть, а mod — остаток.
Разделим число на тысячи, сотни, десятки и единицы
Думаю в голове у многих уже что-то начинает откладываться, давай закрепим знания, напишем не большую программу с линейным алгоритмом, которая будет показывать сколько в число тысяч, сотен, десятков и единиц. Напишем заготовку и объявим две переменные с целочисленным типом данных.
Присвоим переменной «a» числовое значение.
Дальше присвоим переменной «b» действие — деление переменной «a» на число 1000 с помощью функции div.
- program chislo;
- var
- a,b: integer;
- begin
- a:= 4321;
- b:= a div 1000;
- a:= a-b*1000;
- end.
Теперь напишем команду вывода с новой строки.
Тем самым мы разделили число на тысячи и вывели сколько содержится в нем тысяч, теперь тоже самое проделаем для сотен, десятков и единиц, изменив лишь пару значений и вывод.
И добавим команду вывода в самое начало
- program chislo;
- var
- a,b: integer;
- begin
- a:= 4321;
- writeln( ‘ Число » ‘+a+’ » состоит из’ );
- b:= a div 1000;
- a:= a-b*1000;
- writeln( b+’ тысячи’ );
- b:= a div 100;
- a:= a-b*100;
- writeln( b+’ сотен’ );
- b:= a div 10;
- a:= a-b*10;
- writeln( b+’ десятков’ );
- b:= a div 1;
- a:= a-b;
- writeln( b+’ единиц’ );
- end.
Запустим программу и увидим его выполнение
- Число «4321» состоит из
- 4 тысячи
- 3 сотен
- 2 десятков
- 1 единиц
Заключение
Вот и все на сегодня, думаю принцип работы понятен. Если что не так, сильно не ругайте, а пишите в комменты что и как. В следующей статье начнем изучение ветвящихся алгоритмов.
Всем спасибо.
Пока =)

В данной статье мы рассмотрим операторы mod и div, их применение при решении задач. Рассмотрим несколько примеров с решением, а также задачи для самостоятельного выполнения.
Успехов вам в программировании.
- С помощью mod мы получаем остаток от деления числа a на число b.
Переменная s будет равна 5.
- С помощью оператора div мы получим целую часть от деления числа a на число b
Переменная s будет равна 2.
Использование mod при решении задач
- Чаще всего оператор mod используется для определения кратности числа и используется в условии (оператор IF)
Задача: определить, является ли число, введенное с клавиатуры, четным.
Чтобы ответить на этот вопрос нужно поделить число a с помощью mod на 2 (a mod 2) и сравнить это значение с нулем. Условие будет выглядеть так: a mod 2 = 0
Итак, чтобы узнать: делится ли число a на число b без остатка, нужно воспользоваться условием:

- Также оператор mod используется для определения последней цифры числа
Задача: умножить последнюю цифру числа на 10 и результат вывести на экран.
Чтобы поместить последнюю цифру числа a в некоторую переменную необходимо поделить это число с помощью mod на 10. Получим: b:=a mod 10 — в переменной b окажется последняя цифра числа.
Если мы хотим отделить 2-е последние цифры числа, то должны делить с помощью mod на 100; если 3 — на 1000 и т.д.
Чтобы узнать, оканчивается ли число a на цифру b необходимо воспользоваться условием:

Задача: е с ли введенное с клавиатуры число оканчивается на 5 и делится на 7, то вывести «YES» иначе «NO»
С помощью рассмотренных условий и цикла со счетчиком можно решить следующую задачу:
посчитать количество чисел, которые кратны 9 и оканчиваются на 5 в диапазоне от 1 до 500
Использование оператора div при решении задач
Задача: дано трехзначное число. Выяснить, является ли оно палиндромом («перевертышем»), т.е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.
Отделить первую цифру числа можно, поделив его с помощью div на 100.
Отделить последнюю цифру можно, поделив его с помощью mod на 10. Вторая цифра нам не нужна для решения задачи, т.к. от нее не зависит, будет ли число палиндромом.
Задачи для самостоятельного выполнения:
- Дано трехзначное число. Определить:
- является ли сума его цифр двузначным числом
- является ли произведение его цифр трехзначным числом
- больше ли числа a произведение его цифр
- кратна ли пяти сумма его цифр
- кратна ли сумма его цифр числу a
- Дано четырехзначное число. Определить:
- равна ли сумма двух первых его цифр сумме двух его последних цифр
- кратна ли трем сума его цифр
- кратно ли четырем произведение его цифр
- кратно ли произведение его цифр числу а