Математические операции, функции и процедуры в Pascal
Функция и процедура. Это
подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая
обращение к ней из различных частей общей программы.
Разница между процедурой и функцией:
1.
Процедуры. Процедуры
используются в случаях, когда в подпрограмме необходимо получить несколько
результатов. Из картинки, расположенной ниже вы видите, как работает процедура.
Входных данных может не быть вовсе, а может быть сто.
2.
Функции. Функции
отличается от процедуры тем, что после выполнения функции на ее месте в коде
ставится одно число, буква, строка и т.д. Набор встроенных функций в языке
Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа
можно воспользоваться стандартной функцией sqr(x). Как вы, наверное,
уже поняли sqr(x) требует лишь один фактический параметр — число.
Пример: a:=sqr(4).
Обратите внимание! Функции необходимо присваивать! Просто написав
их в тексте программы, как процедуры, вы ничего не добьетесь!
Структура функции представлена на картинке ниже.
Если в программу необходимо включить новую уникальную функцию, ее
надо описать также, как процедуру.
Основные стандартные функции и процедур в Паскаль.
Математические функции
|
Имя
|
Тип аргумента
|
Результат вычисления
|
Пример
|
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 и 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 . Найти сумму цифр двухзначного числа.
Так как эта задача очень простая, мы с вами обойдемся блок-схемой
и программой.
Блок-схема
Код программы:
1.
program
Sumoftwo;
2.
var Number,Num1,Num2,Sum: integer;
3.
begin
4.
write('Введите
двухзначное число: ');
5.
read(Number);
{ Возьмем число 25 }
6.
Num1 :=
Number div 10; { 25 div 10 = 2 }
7.
Num2 :=
Number mod 10; { 25 mod 10 = 5 }
8.
Sum := Num1
+ Num2; { 2 + 5 = 7 }
9.
write('Сумма
двух чисел -- ',Sum);
10.
end.
Задача 2 . Найти сумму цифр трехзначного числа.
Чуть усложненная версия предыдущей задачи. Самая большая сложность
— вторая цифра.
Приоритет div и mod больше, чем приоритете + и -. Поэтому в данной
программе можно обойтись без скобок.
1.
program
Sumoftree;
2.
var
Number,Sum: integer;
3.
begin
4.
write('Введите
трехзначное число: ');
5.
read(Number);
{ Возьмем число 255 }
6.
Sum := Number div 100 + Number mod 10 + Number
div 10 mod 10; { 255 div 100 + 255 mod 10 + 255 div 10 mod 10 = 12 }
7.
write('Сумма трёх чисел -- ',Sum);
8.
end.
Вопросы и задания:
1. Что
означает Div
и Mod?
Объясни письменно.
2. Что
такое функция?
3. Что
такое процедура?
4. Реши
задачу с помощью программы Паскаль. Найти сумму цифр четырехзначного числа.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.