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

Автор публикации:

Дата публикации:

Краткое описание: ...


Математические операции, функции и процедуры в Pascal

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

Процедуры — мини-программы.

Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.

[pic]

Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 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).

Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!

Структура функции представлена на картинке ниже.

[pic]

Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру.

Математические функции

Имя

Тип аргумента

Результат вычисления

Пример

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)

[pic]



Операции 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 . Найти сумму цифр двухзначного числа.

Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.

[pic] Блок-схема



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.

[pic]

Задача №2(самостоятельно написать программу на Паскале) Найти сумму цифр трехзначного числа.(Число рассмотрим 255)

Рассмотрим блок-схему такой задачи:

[pic]

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.

[pic]