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

divandmod

В данной статье мы рассмотрим операторы 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

Оператор mod

  • Также оператор 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 необходимо воспользоваться условием:

amod10

Задача: если введенное с клавиатуры число оканчивается на 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.

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

  1. Дано трехзначное число. Определить:
    • является ли сума его цифр двузначным числом
    • является ли произведение его цифр трехзначным числом
    • больше ли числа a произведение его цифр
    • кратна ли пяти сумма его цифр
    • кратна ли сумма его цифр числу a
  2.  Дано четырехзначное число. Определить:
    • равна ли сумма двух первых его цифр сумме двух его последних цифр
    • кратна ли трем сума его цифр
    • кратно ли четырем произведение его цифр
    • кратно ли произведение его цифр числу а

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 голос, значение: 5,00 из 5)
Loading...Loading...
Вы можете оставить комментарий, или ссылку на Ваш сайт.
Комментарии:

Оставить комментарий


1 + = четыре