4_Пара слов о div и mod_Вычисления на языке Паскаль3.pptx
Презентации "Изучаем Pascal"
Пара слов о div и
mod…
Вычисления в Pascal-3
Презентации "Изучаем Pascal"
Оператор div
Оператор div выполняет
целочисленное деление одного числа
на другое.
Так результат целочисленного деления
17 div 5 = 3 (дробная часть при этом
отбрасывается)
24 div 4 = 6
48 div 200 = 0 (результат деления
меньшего числа на большее будет
равен 0)
При записи оператора div с обеих сторон от
него должен быть хотя бы один пробел
Презентации "Изучаем Pascal"
Оператор div
Итак,
•Операция a div b осуществляет
целочисленное деление целого a на
целое b.
•Дробная часть при этом
отбрасывается.
•Результат деления меньшего числа на
большее будет равен 0
•Оба числа (a, b) и результат
операции обязательно должны иметь
целочисленный тип (integer).
Презентации "Изучаем Pascal"
Пример задачи
Сколько лодок длиной d можно разместить
вплотную друг к другу вдоль причала
длиной L?
program z;
var L,d,r:integer;
begin
writeln('Введите длину причала: ');
readln(L);
writeln('Введите длину лодки: ');
readln(d);
r:=L div d;
writeln('Количество лодок: ',r);
end.
Сколько лодок длиной d можно разместить вплотную друг к другу вдоль причала длиной L?
Презентации "Изучаем Pascal"
Оператор mod
Оператор mod вычисляет остаток от
деления одного числа на другое.
17 mod 5 = 2
24 mod 4 = 0 (0 – проверка
кратности)
48 mod 200 = 48 (остаток при
делении меньшего числа на большее
будет равен меньшему числу)
При записи оператора mod с обеих сторон
от него должен быть хотя бы один пробел
Презентации "Изучаем Pascal"
Оператор mod
Итак,
•Операция a mod b осуществляет
вычисление остатка от деление
целого a на целое b.
•Если результат равен 0, то большее
число кратно меньшему
•Результат операции меньшего числа
на большее будет равен меньшему
числу
•Оба числа (a, b) и результат
операции обязательно должны иметь
Презентации "Изучаем Pascal"
Пример задачи
Сколько из x яблок останется в корзине,
если их разделить поровну среди n
человек?
program z;
var x,n,r:integer;
begin
writeln('Введите количество яблок в
корзине: ');
readln(x);
writeln('Введите количество людей: ');
readln(n);
r:=x mod n;
writeln('Количество оставшихся яблок: ',r);
end.
Сколько из x яблок останется в корзине, если их разделить поровну среди n человек?
Презентации "Изучаем Pascal"
1237 div 43 и 1237 mod 43
4
32
8
1237 div
43
1237 mod
43
123
7
86
377
344
Презентации "Изучаем Pascal"
Задача
Составить программу нахождения
суммы цифр трехзначного числа.
Проблема:
Компьютер не знает десятичной формы
записи чисел, так для него совершенно
неизвестно, сколько, например, в числе 368
сотен, десятков и единиц.
(он любое число переводит на язык двух цифр: 0 и
1)Алгоритм:
Нужно вычленить цифры единиц, десятков
и сотен введенного числа и сложить их.
Составить программу нахождения суммы цифр трехзначного числа.
Презентации "Изучаем Pascal"
Решение
Будем использовать операции div и mod,
используя то, что наша система счисления
является десятичной (10).
Например:
368 mod 10 = 8 (последняя цифра числа!)
x mod 10 = всегда равна последней цифре
числа
368 div 100 = 3 (первая цифра числа!
(100=102))
Как вычленить среднюю цифру?
Если число четырехзначное, то div 1000,
368 mod 100 = 68 (две последних цифры
двухзначное, то div 10
числа)
368 div 10 = 36 (две первых цифры
Презентации "Изучаем Pascal"
Решение
А решить проблему средней цифры
трехзначного числа можно как раз двумя
способами:
368 mod 100 = 68, а 68 div 10 = 6!
Таким образом: 368 mod 100 div 10 = 6
Операции div и mod имеют одинаковый
приоритет и будут выполнятся слева направо,
то есть сначала вычисляем
368 mod 100 (68), а потом этот результат (68)
целочисленно делим на 10 (6)
или
368 div 10 = 36, а 36 mod 10 = 6!
Таким образом: 368 div 10 mod 10 = 6
Какой способ
использовать –
выбор
программиста.
Презентации "Изучаем Pascal"
Полное решение задачи
program z;
var x,a,b,c,s:integer;
begin
writeln('Вычисление суммы цифр числа.');
write('Введите трехзначное число: ');
readln(x);
a:=x div 100;
c:=x mod 10;
b:=x div 10 mod 10;
s:=a+b+c;
writeln('Сумма цифр числа ',x,' равна ',s);
end.
Цифра сотен
Цифра единиц
Цифра десятков
Презентации "Изучаем Pascal"
Задания
1. Дан номер дня в году. Сколько
полных недель прошло с начала
года?
2. Дано количество секунд,
прошедших с начала суток. Сколько
по отдельности часов, минут и
секунд прошло с полуночи?
3. Выведите цифры четырехзначного
числа в обратном порядке (число
наоборот).
4.Сколько квадратов со стороной a
Задания
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.