Математические операции, функции и
процедуры в Pascal
Функции и процедуры - это подпрограммы —
части программы, выполняющие определенный алгоритм и допускающие обращение к
ним из различных частей общей программы. В чем же разница между процедурой и
функцией?
Процедуры
— мини-программы.
Процедуры используются в случаях,
когда в подпрограмме необходимо получить несколько результатов. Из картинки,
расположенной ниже вы видите, как работает процедура. Входных данных может не
быть вовсе, а может быть сто.
Например, программист хочет в своем
суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы
облегчить себе задачу, он напишет простую подпрограмму.( Амперсанд
— это название знака &.)
1. program
superpuper;
2. var очень
много буковок;
3. procedure
ampersand;
4. begin
5. write('&&&&&&&&&&&&&&&&&&&&');
6. end;
7. begin
8. суперсложный
код;
9. ampersand;
10. суперсложный код;
11. ampersand;
12. суперсложный код;
13. ampersand;
14. суперсложный код;
15. ampersand;
16. end.
Функции
в Паскале
Функции отличается от процедуры тем,
что после выполнения функции на ее месте в коде ставится одно число, буква,
строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк.
Например, для того, чтобы подсчитать квадрат числа можно воспользоваться
стандартной функцией 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
|
Пример использования процедуры (напишем
программу, которая будет округлять 2 введенных пользователем числа)
program primer_mat_func;
uses crt;{вызов командной строки}
var
a:real;
procedure rounded;{описание
процедуры округления
до целого}
begin
read(a);
a:=round(a);
writeln(a);
end;
begin {начало основной программы}
rounded;
rounded;
end.
(Для запуска программы с
вызовом командной строки , необходимо нажать Shift+F9)
Операции
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
. Найти сумму цифр двухзначного числа.
Так как эта задача
очень простая, мы с вами обойдемся блок-схемой и программой.
Блок-схема
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(самостоятельно
написать программу на Паскале) Найти сумму
цифр трехзначного числа.(Число рассмотрим 255)
Рассмотрим блок-схему такой задачи:
Number div
100- 255/100=2,55 2(целая часть)
Number mod
10- 255/10=25,5 5 (дробная часть)
Number div
10 mod
10- 255/10=25,5 25(берем целую часть) 25/10=2,5 5(берем дробную
часть )
Итог: 2+5+5=12
Программа:
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.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.