Конспект: Язык программирования Паскаль.Математические операции, процедуры и функции


Математические операции, функции и процедуры в Pascal
Функции и процедуры - это подпрограммы — части программы, выполняющие определенный алгоритм и допускающие обращение к ним из различных частей общей программы. В чем же разница между процедурой и функцией?
Процедуры — мини-программы.
Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.

Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.( Амперсанд — это название знака &.)
program superpuper;
var очень много буковок;
procedure ampersand;
begin
write('&&&&&&&&&&&&&&&&&&&&');
end;
begin
суперсложный код;
ampersand;
суперсложный код;
ampersand;
суперсложный код;
ampersand;
суперсложный код;
ampersand;
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;{вызов командной строки}
vara:real;
procedure rounded;{описание процедуры округления до целого}
beginread(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.