Операции целочисленного деления и нахождения остатка от деления в Паскаль
Автор: Виктор Трофимов, МОУ гимназия №5, г. Волгодонск, Ростовская обл.
В Паскале существует возможность использования трех методов определения кратности числа.
1. С помощью оператора div (целоисчисленное деление). Как это работает?
x := 10 div 2 (переменная x получит значение 5; процессор вычисляет пример 10 / 2 и выдает результат 5)
x := 10 div 3 (переменная x получит значение 3; вычисляется 10 / 3 = 3,33 и отбрасывается дробная часть, такова природа работы оператора div)
x := 10 div 4 (переменная x получит значение 2; 10 / 4 = 2,5 – и опять отбрасывается дробная часть).
2. С помощью оператора mod (остаток от деления).
Тут и понятно, остаток от деления числа, которое полностью делится на делитель, будет равен нулю.
x := 10 mod 2 (переменная x получит значение 0; процессор вычисляет по формуле 10 – ((10 div 2) * 2) = 0, то есть оператор mod возвращает пользователю остаток, который получится в результаты вычитания из делимого числа разницы между первым в сторону уменьшения делящимся нацело на делитель… эмм, надеюсь, понятно. Еще на примерах:
x := 10 mod 3 (переменная x получит значение 1; происходит следующее 10 div 3 = 3 (целое), дальше 10 – 3 (результат) * 3 (делитель) = 1)
x := 10 mod 4 (переменная x получит значение 2; вычисляется 10 – ((10 div 4) * 4)).
Внимательно изучите работу операторов div и mod, они важны для решения задач ГИА по информатике.
3. С помощью функции отбрасывания дробной части числа (не округления, а именно отбрасывания).
trunc(z), где z – вещественное число или математическое выражение.
Примеры:
x := trunc(3.33) (x получит значение 3; «удаляется» дробная часть)
x := trunc(10 / 3) (x получит значение 3, 10 / 3 = 3.33, отбрасываем «,33»)
x := trunc(10 / 2) (x получит значение 5, 10 / 2 = 5 (целое число))
x := trunc(10 / 4) (x получит значение 2, 10 / 4 = 2.5, отбрасываем дробную часть)
Но этот метод не совсем удобен, так как дублирует более понятный в тексте программы div. Таким же образом можно проверить кратность чисел:
Если ((x mod 3) = 0), то число кратно трем (остаток от деления равен нулю).
Если ((x mod 8) = 0), то число кратно восьми и т.д.
Как найти цифру, на которую оканчивается число? Все просто, надо найти остаток от деления числа на 10.
Примеры:
Результатом 150 mod 10 будет число 0, т.к. 150 полностью делится на 10. 0 – это последняя цифра числа.
153 mod 10 вернет 3 (153 – ((153 div 10) * 10); 3 – эта цифра, на которую оканчивается число.
87 mod 10 вернет 7 – последнюю цифру числа.
33 mod 10 вернет 3 и т.д. Попробуйте сами: writeln(33 mod 10);
Автор: Александр Чернышов
2 комментария
Крутая вещь
«Попробуйте сами: writeln». Знать бы, что такое «writeln».