Автор: Виктор Трофимов, МОУ гимназия №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 = 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);
Автор:
Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.
Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?
Процедуры — мини-программы.
Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.
Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.
program superpuper; var очень много буковок; procedure ampersand; begin write('&&&&&&&&&&&&&&&&&&&&'); end; begin суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; end.
Функции в Паскале — мега переменные.
Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.
Пример: a:=sqr(4).
Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!
Структура функции представлена на картинке ниже.
Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.
Математические функции |
|||
Имя | Тип аргумента | Результат вычисления | Пример |
Abs(x) | Целый или Вещ. | Модуль х | Abs(-6) = 6 |
Sqrt(x) | Вещественный | Корень из х | Sqrt(25)=5 |
Sqr(x) | Целый и Вещ. | Квадрат х | Sqr(5)=25 |
Power(x, a) | Вещественный | Значение ха | Power(5,3)=125 |
Frac(x) | Вещественный | Дробная часть х | Frac(5.67)=0.67 |
Sin(x) | Вещественный | Синус х | Sin(45)=0.8509 |
Cos(x) | Вещественный | Косинус х | Cos(45)=0.5253 |
Arctan(x) | Вещественный | Арктангенс х | Arctan(5)=1.3734 |
Int(x) | Вещественный | Целая часть х | Int(5.67)=5.0 |
Random(x) | Целый | Случайное число (0..х-1) | Random(5)=4 |
Succ(x) | Порядковый | Следующий | Succ(10)=11 |
Pred(x) | Порядковый | Предыдущий | Pred(‘Z’)=’Y’ |
Математические процедуры |
|||
Inc(x, a) | Целый | X:=X+A | Inc(5)=6 |
Dec(x, a) | Целый | X:=X-A | Dec(25,20)=5 |
Преобразование типов |
|||
Trunc(x) | Вещественный | Целая часть х | Trunc(5.67)=5 |
Round(x) | Вещественный | Округление х до целого | Round(5.67)=6 |
Важно! Если х = 5.5, то результат – 6, а если х = 6.5, то результат тоже 6!? |
Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.
Div
Для того, чтобы найти частное от деления, мы используем операцию div.
Примеры:
- 25 div 20 = 1;
- 20 div 25 = 0;
- 39 div 5 = 7;
- 158 div 3 = 52.
Mod
Для того, чтобы найти остаток от деления, мы используем операцию mod.
Примеры:
- 25 mod 20 = 5;
- 20 mod 25 = 0;
- 39 mod 5 = 4;
- 158 mod 3 = 2.
Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:
Задача 1. Найти сумму цифр двухзначного числа.
Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.
program Sumoftwo; var Number, Num1, Num2, Sum: integer; begin write('Введите двухзначное число: '); read(Number); { Возьмем число 25 } Num1 := Number div 10; { 25 div 10 = 2 } Num2 := Number mod 10; { 25 mod 10 = 5 } Sum := Num1 + Num2; { 2 + 5 = 7 } write('Сумма двух чисел -- ', Sum); end.
Задача 2. Найти сумму цифр трехзначного числа.
Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.
program Sumoftree; var Number, Sum: integer; begin write('Введите трехзначное число: '); read(Number); { Возьмем число 255 } Sum := Number div 100 + Number mod 10 + Number div 10 mod 10; { 255 div 100 + 255 mod 10 + 255 div 10 mod 10 = 12 } write('Сумма трёх чисел -- ', Sum); end.
Вот и всё. На следующем уроке мы с вами начнём изучать особенности PascalABC.Net.
Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».
program number7; uses crt; var A,B,C: integer; begin clrscr; A:=17; B:=3; C:=A div B; writeln ('17 div 3 = ',C); C:=A mod B; writeln ('17 mod 3 = ',C); C:=A-B; writeln ('17-3 =',C); readln end.
В строке №8 используется операция Div. Это операция деления нацело, т. е. в результате получится целое число без остатка. Если 17 разделить на 3, то получится 5,66666… Здесь — целое число 5, оно и будет результатом операции div.
Строка №10. Операция Mod вычисляет остаток от целочисленного деления. Если мы разделим 17 на 3, то получится 5 – целое число и 2 – остаток. Таким образом, результатом операции Mod будет число 2
Теперь запишем нашу программу в Паскале и и запустим ее.
Дополнение к материалу.
Правила приоритета при выполнении операций в Паскале.
- Сначала выполняются действия над переменными, которые стоят в скобках.
- Затем вычисляются функции.
- Затем умножение и деление.
- Затем сложение и вычитание.
Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.
В Паскале можно выполнять стандартные математические операции. Обычно для таких операций применяется целочисленный тип данных – integer. Только при выполнении операции деления ((/)) в результате может получиться вещественное число – real.
Для получения целой части частного в результате деления используется операция div. Дробная часть не выводится, например (14 ) (div ) (3 ) (= ) (4).
Для того, чтобы получить в результате деления остаток, используется операция mod.
Например, (14 ) (mod ) (3 ) (= ) (2).
Попробуем написать программу на языке программирования Паскаль, которая вычислит сумму цифр трёхзначного числа.
Будем использовать операции div и mod.
Пусть введённое число с клавиатуры – (x).
Получим первую цифру числа: (x ) (div ) (100).
Вторую цифру: (x ) (mod) (100 ) (div ) (10).
Третью цифру: (x ) (mod) (10).
Например, с клавиатуры ввели число (238).
(238 ) (div ) (100 ) (= ) (2)
(238 ) (mod ) (100 ) (div ) (10 ) (= ) (3)
(238 ) (mod ) (10 ) (= ) (8)
После нужно будет сложить полученные результаты и вывести ответ на экран.
to continue to Google Sites
Not your computer? Use Guest mode to sign in privately. Learn more