#10.0 Деление нацело и получение остатка от деления в Паскале. Проверка четности и нечетности чисел

(урок в процессе разработки)

Математическая подготовка

Прежде чем читать этот урок разберите темы и сделайте упражнения:

И затем можно уже перейти к примерам кода дальше.

Общая идея

Общую идею работы операторов div и mod можно проиллюстрировать примером кода:

var a, b: integer;
begin
  writeln('Введите делимое:');
  readln(a);
  writeln('Введите делитель:');
  readln(b);
   writeln(a, '/', b, '=', a div b);
  writeln('Остаток=', a mod b);

  readln();
end.

Оператор mod

Для получения остатка от деления числа $A$ на число $B$ используйте выражение с оператором mod:
$ A \; mod \; B$

Например:

b := 78 mod 33; // получим  12 = 78 - 66 = 78 - 33*2

Примеры для конкретных чисел

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

5 mod 2  // 1
3 mod 2  // 1
6 mod 2  // 0
8 mod 2  // 0
4 mod 1  // 0
3 mod 5  // 3

Узнать делится ли число нацело на другое

С помощью условного оператора в Паскаль можно узнать делится ли одно число на другое.
Приведём пример программы, которая получает из консоли (от пользователя) два целых числа и проверяет делится ли первое на второе с помощью оператора mod.

Идея состоит в том, что если число $a$ делится на $b$ нацело, то остаток от такого деления равен нулю.
Приведём решение:

var a, b:integer;
begin
  writeln('vvedite chislo a:');
  readln(a); // считываем число а
  writeln('vvedite chislo b:');
  readln(b);  // считываем число b

  if (a mod b) = 0 then  // проверяем делимость
    writeln(a, ' delitcy na ', b, ' nacelo')
  else
    writeln(a, ' NE delitcy na ', b, ' nacelo');

  readln();  // удержимаем консоль
end.   

Четность/нечетность (делимость на 2)

Аналогично коду выше, если число делится нацело на 2 -- то оно четное (остаток равен нулю), иначе -- нечетное.

Еще примеры (необходимо дооформить):

//
//var a, b, c, d : integer;
//begin
//  writeln('Введите целое число:');
//  readln(a);
//  writeln(a, '/2=', a div 2);
//  writeln('Остаток=', a mod 2);
//
//  readln();
//end.

//var a, b: integer;
//begin
//  writeln('Введите делимое:');
//  readln(a);
//  writeln('Введите делитель:');
//  readln(b);
//  writeln(a, '/', b, '=', a div b);
//  writeln('Остаток=', a mod b);
//
//  readln();
//end.

//var a, b: integer;
//begin
//  writeln('8 четное:', (8 mod 2) = 0);
//
//  readln();
//end.


//var a, b: integer;
//begin
//  writeln('8 делится на 3:', (9 mod 3) = 0);
//
//  readln();
//end.      

Видео-пояснения

Для этого урока есть следующию видео-пояснения:

  • Div и mod для деления и получения остатка в Паскале -- УТОЧНЕНИЕ: в видео говорится, что мы еще не знаем условный оператор, но это не так! Условный оператор по порядку изучения идет раньше, поэтому в тексте этого урока вы встретите примеры его использования.