Операции с целыми числами ( mod div )
Над целыми числами В PascalABC можно проводить не только простые арифметические операции (сложение, вычитание, деление и умножение). Есть еще две: деление нацело (обозначается div) и деление с остатком (mod). Рассмотрим их применение на примерах.
Деление нацело ( div )
Целочисленное деление — это деление, при котором одно целое число делится на другое целое число. Результатом является целая часть их частного.
Результатом операции является целое число, полученное в результате деления, а точнее — целая часть результата деления.
15 div 3 = 5 //результат обычного деления 5 14 div 3 = 4 //результат обычного деления 4.66666 3 div 2 = 1 // результат обычного деления 1.5
Остаток от деления ( mod )
Деление с остатком — это деление одного числа на другое, при котором остаток не равен нулю. 16: 7 = 2 (ост. 2) 23: 8 = 2 (ост. 7)
Результатом операции является целое число — разность делимого числа и ближайшего к нему меньшего или равного целого числа, которое делится нацело на делитель.
15 mod 3 = 0 //результат 15-15 14 mod 3 = 2 //результат 14-12 3 mod 2 = 1 // результат 3-2
Важно! Операции div и mod применяются только к целым числам.
Операцию mod используют для определения кратности чисел, то есть делимости на какое-нибудь число нацело. Например, что числа 2, 6, 12, 24 кратны двум (чётные числа). Получается, что все числа не кратные двум — нечётные. Или числа 5,10,15,20 кратны 5.
Рассмотрим несколько примеров использования данных операций в программировании.
Задание 1. Дан размер файла в байтах. Используя операцию деления нацело, найти количество полных килобайтов, которые занимает данный файл (1 килобайт = 1024 байта).
Решение:
program zadanie1; var b:integer; {размер файла} begin read(b); { ввод значения b в байтах} b:= b div 1024; { вычисление количества полных килобайтов в файле} write(b); {вывод на экран значения в килобайтах} end.
Задание 2. Дано трехзначное число k. Найдите сумму его цифр S.
Решение:
program zadanie2; var k,s,c1,c2,c3:integer; {k-число, s-сумма цифр, c1,c2,c3-цифры} begin read(k); { ввод значения числа k} с1:= k mod 10; { вычисление первой цифры - разряд единиц} с2:= (k div 10) mod 10; { вычисление второй цифры - разряд десятков} с3:= k mod 100; { вычисление третьей цифры - разряд сотен} s:=c1+c2+c3; { вычисление суммы цифр} write(s); {вывод на экран результата} end.
Стандартные функции PascalABC
При составлении программ на Паскале для расчетов можно использовать функции, которые присутствуют в среде программирования. Ниже приведен список наиболее востребованных функций: степень, модуль, корень и другие
Обозначение функции | Тип результата | Описание функции |
Abs(x) | совпадает с типом параметра | Модуль в паскале определяется через функцию Abs(x). Она возвращает абсолютное значение (модуль) x. Пример, если х=-6, то Abs(x)=6. |
Sqr(x) | совпадает с типом параметра | Вторая степень в паскале может быть вычислена через функцию Sqr(x). Она возвращает квадрат числа x. Пример, если х=5, то Sqr(5)=25 |
Sqrt(x) | Квадратный корень в паскале извлекается с помощью функции Sqrt(x). Она возвращает квадратный корень из числа x. Например, если х=49, то Sqrt(49)=7. Аргумент функции должен быть положительным числом. | |
Power(x,y) | real | Произвольную степень в паскале вычисляют с помощью Power(x,y). Она возвращает x в степени y. Например, если основание х=2, а степень у=5, то Power(2,5)=32. В PascalABC степень можно вычислить следующей записью: 2**5 (две звездочки — это возведение в степень) |
Int(x) | real | возвращает целую часть х |
Random(x) | integer | возвращает случайное целое в диапазоне от 0 до x-1 |
Random | real | возвращает случайное вещественное в диапазоне [0..1) |
Frac(x) | real | возвращает дробную часть х |
Trunc(x) | x-real, integer | возвращает целую часть х |
Подробный и более полный список функций можно получить в справочной системе среды программирования PascalABC в меню Помощь — Содержание — Справочник по языку — Стандартные процедуры и функции
Задание 3. Вычислите значение выражения y=5x7-4x2+3
Решение:
program zadanie3; var x,y:real; {x-аргумент, y-функция} begin read(x); { ввод значения x} y:= 5*power(x,7)-4*sqr(x)+3; { вычисление значения выражения} write(y); {вывод на экран результата} end.