Div mod в алгоритмическом языке

Div mod в алгоритмическом языке

В данной статье мы рассмотрим операторы mod и div, их применение при решении задач. Рассмотрим несколько примеров с решением, а также задачи для самостоятельного выполнения.

Успехов вам в программировании.

Переменная s будет равна 5.

Переменная s будет равна 2.

Использование mod при решении задач

Задача: определить, является ли число, введенное с клавиатуры, четным.

Чтобы ответить на этот вопрос нужно поделить число a с помощью mod на 2 (a mod 2) и сравнить это значение с нулем. Условие будет выглядеть так: a mod 2 = 0

Итак, чтобы узнать: делится ли число a на число b без остатка, нужно воспользоваться условием:

Задача: умножить последнюю цифру числа на 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. Вторая цифра нам не нужна для решения задачи, т.к. от нее не зависит, будет ли число палиндромом.

Задачи для самостоятельного выполнения:

Источник

Операции div и mod в Pascal

В нашей статье мы разберем такие операции, как div и mod в Паскале. Сейчас вы узнаете, что это такое и зачем эти операции нужны.

Div, mod или обычное деление

Вообще, div и mod очень похожи на обычное деление, которому нас учат в школе. Но если они зачем-то существуют, значит, все-таки отличия есть. И уже в самом начале очень хочется отметить, что обе операции работают только с целыми числами (integer).

Оператор div в Pascal

На самом деле здесь все довольно просто. Div применяется для поиска целой части от деления.

Приведем в пример код, чтобы разобраться:

В итоге наше n будет равняться двум. Если делить 9 на 4, то выходит 2,25. То есть, применяя операцию div в Паскале, вы получите результат до запятой (целую часть числа).

Оператор mod в Pascal

Данная операция действует немного наоборот — она уже ищет остаток от деления. Бывает, что новички в Паскале ошибочно думают, что mod ищет дробную часть. Нет, это не так.

Возьмем в пример все тот же код:

В итоге мы получаем n, которое равно единице. Как так получилось? Когда мы делим 9 на 4, мы можем взять два раза по 4 (получается 8). Но у нас остается единица, которая не делится на 4. Такую вот “единицу” и будет искать mod, или, говоря по-другому, остаток от деления ваших чисел.

Вообще, нередко mod в Паскале используют для того, чтобы определить кратности чисел. Обратите внимание, что число является кратным, если его остаток равняется нулю.

Использование оператора div и mod при решении задач

Мы приведем несколько примеров использования этой программы для того, чтобы вам было еще легче разобраться, как это работает.

Таким образом, используя div, мы получим ответ 2 (13 разделить на 5 равняется 2,6; нам же нужна только целая часть). А используя mod, получаем результат 3 (остаток от деления).

Читайте также:  Stalker anomaly как сменить язык

Вот еще один пример:

Конечно, программа все сама посчитает. Но еще раз уточним: здесь div будет равняться 26 (берем только целую часть), а mod — 4 (остаток от деления).

Надеемся, мы ответили на ваш вопрос, что же значат mod и div в программе Pascal, и тем самым смогли облегчить вашу работу в этой программе. Свои предложения вы можете оставить в комментариях.

Источник

Эти замечательные div и mod.

Эти замечательные div и mod…

Киселева И.Ю., учитель информатики МАОУ «Лицей № 38»

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

Данные операции применяются достаточно широко: решение некоторых задач на линейные алгоритмы, определение четности-нечетности или кратности чисел, задачи на целочисленную арифметику, олимпиадные задачи. Более того, операции целочисленного деления часто встречаются и в заданиях ЕГЭ и ГИА. И, хотя один ученик даже заявил «Не люблю я эти div и mod!», я не теряю надежду приучить ребят применять операции целочисленного деления при составлении программ.

При изучении темы «Начала программирования» знакомство с операциями целочисленного деления происходит на первых уроках. Вспоминаем из арифметики: для целых и неотрицательных А и В (В ≠ 0), частное A div B показывает, сколько раз делитель – число B, содержится в делимом – числе A; в то же время, остаток A mod B показывает, сколько останется, если из делимого – числа А, вычесть все вхождения в него делителя – числа В.

И сразу же учащиеся получают задания на вычисления (например):

39 div 6 – 42 mod 5 + 3 div 7 = 6 – 2 + 0 = 4

( n div 100 ) mod 10 = (12345 div 100) mod 10 = 123 mod 10 = 3

n mod 1000 div 10 + n mod 100 = 12345 mod 1000 div 10 + 12345 mod 100 = = 345 div 10 + 45 = 34 + 45 = 79

И тут же выясняется: ребята не умеют производить вычисления устно, плохо помнят таблицу умножения и деление столбиком. Да и зачем! В каждом телефоне и прочих устройствах есть калькулятор! Вот только он не может делить нацело с остатком!

Вспоминаем деление столбиком из далекой начальной школы.

157 | _13_

13 12 – это результат операции div (частное)

26

это результат операции mod (остаток от деления)

Выясняем, как проверить правильность вычислений:

Даны два натуральных числа X и Y (Y ≠ 0).

Пусть A = X div Y, B = X mod Y. Тогда справедливо равенство: X = Y ∙ A + B

Пример: 157 = 13 ∙ 12 + 1

При изучении линейного алгоритма: выделение целого количества часов из заданного количества минут, килобайтов – из байтов, определение суммы цифр заданного целого числа, например, трехзначного и др.

Для условного алгоритма: определение четности, нечетности, кратности целых чисел. (Условие четности, нечетности, кратности чисел проговариваем хором!)

При изучении циклических алгоритмов в обязательном порядке разбираются задачи: поиск палиндромов, простых чисел, совершенных чисел из заданного интервала, определение разрядности числа, нахождение наибольшей и наименьшей цифры числа и пр.

При изучении темы «Массивы» рассматриваются задачи на нахождение суммы, произведения, количества чисел с определенными свойствами, поиск максимальных и минимальных элементов. И свойства элементов опять же требуют применения операций целочисленного деления: например, найти сумму четных элементов массива, количество чисел, оканчивающихся на 5, найти максимальный элемент массива, кратный 3 и т.д.

Надеюсь, что постоянный тренинг применения операций целочисленного деления на уроках программирования позволят ребятам часто использовать эти замечательные операции в олимпиадных задачах, успешно справиться с соответствующими задачами из ГИА и ЕГЭ.

Источник

Урок 5. Математические операции, функции и процедуры в Pascal (Часть первая)

Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.

Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?

Процедуры — мини-программы.

Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.

Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.

Читайте также:  Валютная функция языка это

Функции в Паскале — мега переменные.

Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.

Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!

Структура функции представлена на картинке ниже.

Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.

Имя Тип аргумента Результат вычисления Пример Abs(x) Целый или Вещ. Модуль х Abs(-6) = 6 Sqrt(x) Вещественный Корень из х Sqrt(25)=5 Sqr(x) Целый и Вещ. Квадрат х Sqr(5)=25 Power(x, a) Вещественный Значение х а Power(5,3)=125 Frac(x) Вещественный Дробная часть х Frac(5.67)=0.67 Sin(x) Вещественный Синус х Sin(45)=0.8509 Cos(x) Вещественный Косинус х Cos(45)=0.5253 Arctan(x) Вещественный Арктангенс х Arctan(5)=1.3734 Int(x) Вещественный Целая часть х Int(5.67)=5.0 Random(x) Целый Случайное число (0..х-1) Random(5)=4 Succ(x) Порядковый Следующий Succ(10)=11 Pred(x) Порядковый Предыдущий Pred(‘Z’)=’Y’ Trunc(x) Вещественный Целая часть х Trunc(5.67)=5 Round(x) Вещественный Округление х до целого Round(5.67)=6 Важно! Если х = 5.5, то результат – 6, а если х = 6.5, то результат тоже 6!?

Очень странная ошибка.

Операции div и mod.

Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.

Для того, чтобы найти частное от деления, мы используем операцию div.

Для того, чтобы найти остаток от деления, мы используем операцию mod.

Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:

Задача 1. Найти сумму цифр двухзначного числа.

Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.

Задача 2. Найти сумму цифр трехзначного числа.

Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.

Источник

Математические задачи с использованием операций DIV и MOD

Математические задачи с использованием операций DIV и MOD.

Остановимся немного подробнее на операции целочисленного деления (div) и операции, выдающей остаток от деления (mod).

Так, результатом целочисленного деления 17 на 5 будет 3:

17 div 5 = 3, а результатом деления меньшего числа на большее, будет 0:

Делаем вывод, что при целочисленном деление дробная часть отбрасывается, сам термин «целочисленное деление» или «деление нацело» говорит сам за себя.

Операция a div b осуществляет целочисленное деление целого a на целое b.

Дробная часть при этом отбрасывается.

Понятно, что остатком от деления 17 на 5 будет число 2:

а вот чему будет равен остаток от деления меньшего числа на большее, например, 46 mod 200?

Оказывается, в этом случае, результатом операции будет число 46. Вот другие примеры:

Интересно, что остаток от деления любого целого числа на 10 будет равен последней цифре этого числа:

543 mod 10 = 3, 45 mod 10 = 5, 7 mod 10 = 7.

Рассмотрим задачу, которая показывает использование операций целочисленного деления и остатка от деления.

Пример 1. Найти разность между трехзначным числом и числом, составленным из тех же цифр, но взятых в обратном порядке.

Способ первый достаточно простой. Сущность которого в следующем.

Для определения цифры сотен делим данное число на 100 и остаток отбрасываем, т. е. выполняем целочисленное деление.

Для определения цифры десятков надо из данного числа вычесть сотни, результат разделить на 10 и остаток отбросить.

Для определения цифры единиц надо из данного числа вычесть сотни и десятки. Для записи числа теми же цифрами в обратном порядке, умножим цифру единиц на 100, сложим с цифрой десятков, умноженной на 10 и с цифрой сотен.

Далее из заданного числа вычитаем полученное новое. Например, для числа 342. Выполним целочисленное деление числа на 100, получим цифру сотен:

наконец, вычитаем из заданного числа сотни и десятки, получаем цифру единиц:

Для записи числа в обратном порядке, умножаем цифру единиц 2 на 100 и складываем с цифрой десятков, умноженных на 10 (4*10) и прибавляем цифру сотен 3. Получим новое число, записанное теми же цифрами, но в обратном порядке:

Читайте также:  День государственного языка в кыргызстане

2100 + 410 + 3 = 243.

a, s, d, e, b, r : integer;

write(‘Введите трехзначное число ‘); readln(a);

writeln(‘Искомая разность равна ‘, r)

Программа достаточно проста и понятна.

Вводится трехзначное число и присваивается переменной a.

Переменной s присваивается результат целочисленного деления введенного числа a на 100. Это значение есть цифра сотен. Переменная d получает значение цифры десятков:

Дальнейшая работа программы понятна.

Составим программу для первого примера на основе второго способа.

Посмотрите на примере, в чём состоит математика этого способа.

Находим цифру единиц: 342 mod 10 = 2.

Делим заданное число на 10, при этом уже найденная цифра единиц «отбрасывается«: 342 div 10 = 34.

Находим цифру десятков: 34 mod 10 = 4.

Делим, оставшееся число 34 на 10, при этом цифра десятков «отбрасывается», а результатом будет цифра сотен:

Дальнейшие операции такие же, как и в первом способе.

a, c, s, d, e, b, r : integer;

write(‘Введите трехзначное число ‘); readln(a);

e := a mod 10; (* Цифра единиц *)

d := a mod 10; (* Цифра десятков *)

s := a div 10; (* Цифра сотен *)

(* Число, записан. в обратном пор. *)

writeln(‘Искомая разность равна ‘, r)

Пример 2. Определить и вывести на экран цифры целого числа n.

Разберем математику этого вопроса на частном примере.

Найдем цифры числа 4538. Для этого надо найти остаток от деления 4538 на 10 с помощью операции нахождения остатка от деления целых чисел (mod):

4538 mod 10 = 8, получим последнюю цифру числа (она же является первой справа).

После этого выполним целочисленное деление заданного числа 4538 на 10, получим 453 (остаток отбрасывается):

Далее процесс повторяем:

Обратите внимание! Процесс будет продолжаться пока число n не равно нулю. Как только оно станет равно нулю цикл заканчивается.

В программе еще надо указывать какая по счету цифра в числе справа. Для этого надо завести еще одну переменную в качестве счетчика. Эта переменная каждый цикл должна увеличиваться на 1.

write(‘Введите натуральное число n 0 do

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

В разделе описаний

В разделе операторов

С помощью оператора write выводится на экран запрос для пользователя о вводе целого числа. Оператор readln заносит его значение в память и присваивает переменной n.

Счетчику i устанавливается первоначальное значение 1.

В операторе while записывается условие (пока n не равно 0), при котором цикл будет выполняться.

Так как в цикле несколько операторов, то используются операторные скобки

В них записаны операторы:

Пример 3. Составить программу перестановки первой и последней цифр введенного натурального числа.

Математику этого вопроса разберем на частном примере.

Пусть пользователем введено число 4538. После перестановки первой и последней цифр число станет таким: 8534.

Определить последнюю цифру числа нетрудно. Это можно сделать уже известным нам способом: 4538 mod 10.

Чтобы найти и отделить первую цифру числа, надо использовать прием, который применялся в предыдущих программах для вывода цифр числа и для подсчета суммы цифр, т. е. отделять по одной цифре справа. Но, если в предыдущих программах такой процесс продолжался до тех пор пока n <> 0 (n не равнялось нулю), а когда n становилось равным нулю, то цикл заканчивался т. е. все цифры, включая первую, отделялись, то теперь надо этот процесс остановить на одну цифру раньше и тогда последним значением переменной n будет первая цифра числа.

В нашем примере она равна 4.

Итак, первая и последняя цифры найдены. Как переставить их в числе.

Для введенного нами числа это можно сделать так. Вычесть из него первую цифру, умноженную на 1000 и вычесть последнюю цифру:

Две последние операции можно записать в одной строке:

Возникает одна трудность. Как определить разряд, в котором находится первая цифра числа (первая слева) и на сколько надо умножить ее при вычитании? Тысячи ли это, десятки тысяч или другой разряд?

Для того, чтобы это выяснять заведем переменную, первоначальное значение которой 1, а затем, каждый раз при отделении цифры она умножается на 10.

Посмотрим весь процесс на примере того же числа 4538.

Первоначальные значения: n = 4538, i = 1.

n := 4538 div 10 = 453.

i := i*10 = 100*10 = 1000, n := 45 div = 4.

Источник

Поделиться с друзьями
Расскажем обо всем понемногу