Что такое div в "Паскале"? Сложения, вычисления и примеры

С каждым годом растет востребованность профессии программиста. На данный момент для написания кодов активно используются около десятка языков разного уровня. Для того чтобы сделать процесс обучения компьютерному программированию более эффективным, студентов старших классов и студентов 1-2 курса учат создавать первые собственные приложения на языке «Паскаль». Операциям div и mod и другим вычислениям в его среде посвящена данная статья.

div и mod в Паскале

Несколько слов о языке Pascal

«Паскаль» был создан в 1968-1969 годах известным ученым Никлаусом Виртом, который впоследствии был награжден премией Тюринга и медалью «Пионер компьютерной техники». Последний незадолго до этого участвовал в разработке стандарта языка "Алгол-68". В статье, опубликованной в 1970-м году, главной целью своей работы Вирт назвал создание эффективного инструмента, использующего структурное программирование и данные.

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

Что такое целочисленное деление

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

24:6=4;

100:3=33

55:6=9;

и пр.

Целочисленное деление называют также нахождением неполного частного.

Обратите внимание, что при такой операции, в случае, если делимое меньше делителя, результат равен нулю.

Обозначим результат целочисленного деления a на b, как q. Тогда

div в Паскале

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

Операция div в «Паскале»

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

q:= a div b.

Если речь идет о константах, например, a=50, а b=9, то будем иметь q:= 50 div 9. В результате q будет равно 5.

Вычисление остатка

Операция div в «Паскале» обычно изучается вместе с mod. Прежде чем выяснять, что означает эта запись, разберемся, как можно найти остаток числа.

Очевидно, что его можно найти, используя величину, полученную в результате целочисленного деления, т. е.

r = a – b x q.

Операция mod в «Паскале»

В Pascal найти остаток можно очень просто. Для этих целей предусмотрена бинарная операция mod.

Она записывается следующим образом:

r = a mod b.

Если, например, a=50, а b=9, то будем иметь r:= 50 mod 9. В результате r будет равно 4.

функция div в Паскале

Практическое применение

Нахождение остатка от деления (r) используется в компьютерной технике и в сфере телекоммуникаций. С помощью такой операции генерируются контрольные и случайные чисел в ограниченном диапазоне.

Оператор mod используют и для определения кратности чисел, т. е. делимости одного числа на другое с целочисленным результатом. Очевидно, что это те пары чисел, для которых результат применения оператора mod дает 0.

В "Паскале" условие кратности можно записать так:

if a mod b = 0 then write (a, 'кратно', b).

Например, при запуске кода с условием, записанным выше, при значениях a=4 и b=2 на мониторе высветится надпись «4 кратно 2».

Кроме того, оператор mod можно использовать для вывода последней цифры числа в десятичной записи. Для этого следует использовать конструкцию r = a mod 10. Например, команда r = 37 mod 10 выдаст результат 7.

Оператор trunc

Есть еще один оператор, с помощью которого можно получить такой же результат, как от div в "Паскале". Речь идет о trunc, который применяется не только к целым числам. Он выдает результат в виде целой части дробного аргумента. Вместе с оператором «обычного» деления получается один и тот же результат. Рассмотрим сказанное на примере. Пусть a=51, а b=9. Тогда в результате выполнения команды q:= 51 div 9 получим q:= 5, получившееся в результате округления. Если же применить к тем же числам оператор trunc, то q:= trunc (51/9) даст q:= 5, т. е. имеем тот же результат.

Паскаль операции div и mod

Пример 1

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

  • как уже было показано выше, последнюю из цифр в записи числа можно получить, применив к нему и к числу 10, оператор mod;
  • что касается первого числа, то оно получится, если заменить mod на команду div в "Паскале".

Запишем код на языке «Паскаль». Он будет выглядеть следующим образом:

program Sum_2; (название программы)

var Number,Number1,Number2,Sum: integer; (перечисление переменных и определение их типа, как целочисленного)

begin (начало тела программы)

write('Input Two-digit number'); (вывод на экран фразы "Input Two-digit number")

read(Number); (ввод исходного числа)

Number1 := Number div 10; (вычисление первой цифры)

Number2 := Number mod 10; (вычисление второй цифры)

sum := Number1 + Number2; (вычисление суммы цифр)

write(Sum); (вывод результата на экран)

end.

Для числа 25 результат использования этой программы будет 7, а, например, для 37 — 9.

Пример 2

Напишем код для программы, вычисляющей сумму цифр 3-значного числа.

Как найти последнюю цифру — понятно. Не представляет сложности и вычисление 1-й. Она получится в результате применения оператора div в "Паскале" к этому числу и к 100. Осталось выяснить, как найти вторую цифру. Для этого можно использовать более сложную конструкцию, которая получится, если к исходному числу и к 10 применить оператор div, а затем к результату и к 10 оператор mod.

Код программы для вычисления суммы цифр трехзначного числа будет выглядеть следующим образом:

program Sum_3; (название программы)

var Number3,Sum: integer; (перечисление переменных и определение их типа, как целочисленного)

begin (начало тела программы)

write (' Input Tree-digit number '); (вывод на экран фразы «Input Tree-digit number»)

read (Number3); (ввод исходного числа)

Sum := Number3 div 100 + Number3 mod 10 + Number3 div 10 mod 10; (вычисление суммы)

write ('Sum); (вывод результата на экран)

end.

операция div в Паскале

Некоторые замечания

Обратите внимание, что операция обычного деления при применении к целочисленным аргументам выходит за пределы их класса. Это ее коренным образом отличает от операции div в "Паскале", а также от оператора mod, которые выдают результат, также являющийся целым числом.

Порядок выполнения операций бинарного типа (т. е. выполняющимися над 2-мя операндами) в сложном выражении определяется их приоритетом и круглыми скобками. Иными словами, при наличии скобок сначала вычисляются находящиеся в них выражения в порядке слева направо. При этом операции *, /, mod и div являются более приоритетными, чем + и –. Если скобок нет, то сперва слева направо следует выполнить действия с большим приоритетом, а затем — + и –.

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

Статья закончилась. Вопросы остались?
Комментарии 0
Подписаться
Я хочу получать
Правила публикации
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.