Операторы действий с целыми числами div и mod
Оператор div – целочисленное деление
- x - число , которое будем делить на y (делимое) y - число , на которое будем делить число x (делитель) z - результат целочисленного деления (целочисленное частное)
- Z:=x div y
- 9 div 2 = 4
- Результатом операции div является целое число
Давайте подумаем:
- 20 div 2 =10
- 21 div 2 =10
- 9 div 3=
- 10 div 3=
- 15 div 5=
- 19 div 5=
- 5467 div 10 = 546
- 5467 div 100 = 54
- 5467 div 1000 = 5
- 5467 div 10000 = 0
Оператор div убирает справа от числа столько цифр, сколько нулей в делителе
Оператор mod – деление с остатком
- x - число , которое будем делить на y (делимое) y - число , на которое будем делить число x (делитель) z - остаток от деления
- Z:=x mod y
- 9 mod 2 = 1
- Результатом операции mod является остаток
Давайте подумаем:
- 19 mod 2 =1
- 21 mod 6 = 3
- 9 mod 3=
- 10 mod 3=
- 15 mod 4 =
- 19 mod 5=
- 5467 mod 10 = 7
- 5467 mod 100 = 67
- 5467 mod 1000 = 467
- 5467 mod 10000 = 5467
Сколько нулей в делителе, столько цифр получаем в ответ
Возможности оператора mod
- X mod 2 = 0 - условие чётности числа
- X mod 2 = 1 – условие нечётности положительного числа
- X mod 2 = -1 – условие нечётности отрицательного числа
- X mod 3 = 0 - условие кратности числа Х трём
- X mod 5 0 - условие, при котором Х не делится на 5
Задача: Найти цифры двухзначного числа.
- program chislo;
- Var x, y, z :integer; { х – число, y – первая цифра числа, z – вторая цифра числа }
- begin
- writeln( ' введите число ' ); { надо будет ввести двухзначное число }
- readln(x);
- y:=x div 10; { делим на 10 и берём целую часть }
- z:=x mod 10; { делим на 10 и берём остаток }
- writeln (‘ Первая цифра - ’ , y, ’ Вторая цифра - ’ , z);
- end .
Задача: Найти сумму всех цифр трёхзначного числа
- program summa;
- Var N:integer;
- begin
- writeln( ' введите число ' );
- readln(N);
- N:=(N div 100)+((N div 10) mod 10)+(N mod 10);
- writeln( 'Сумма чисел равна: ‘ , N);
- end .
Задача: Определить является ли трёхзначное число, введённое с клавиатуры, палиндромом.
- program palindrom;
- Var x, x1, x2:integer;
- begin
- writeln(' введите число ');
- readln(x);
- x1:= х div 100 ;
- X2:=x mod 10;
- If x1=x2 then writeln (‘ палиндром ’) else writeln (‘ не палиндром ’)
end .
Задачи для самостоятельного решения:
- 1. Определить является ли число х, введённое с клавиатуры, нечётным.
- 2. Определить оканчивается ли число х, введённое с клавиатуры, цифрой 5.
- 3. Найти произведение цифр трёхзначного числа.
- 4. Ввести два числа. Если их сумма нечётна, то прибавить к нему 1, иначе вычесть 1.
- 5. Найти разность между трёхзначным числом и числом, составленным из тех же цифр, но в обратном порядке.