Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_programmirovaniyu.doc
Скачиваний:
23
Добавлен:
09.12.2018
Размер:
2.5 Mб
Скачать

5.1. Процедуры и функции

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

72

Концепция подпрограмм впервые была предложена М. Уилксом в 1957 году.

В Паскале подпрограммы реализуются в виде процедур и функций.

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

Функция аналогична процедуре, но имеет два отличия: функция передает в точку вызова скалярное значение, как значение имени этой функции; функция может входить в выражение как операнд.

Все процедуры и функции в языке Паскаль делятся на две группы: встроенные (стандартные) и определенные пользователем.

Характеристики основных стандартных процедур и функций приведены в табл. 5.1.

Таблица 5.1

Арифметические процедуры и функции

Abs(x: real / integer): real / integer

Abs(-45)=45

Abs(-3.723)=3.723

Вычисление абсолютной величины x. Тип результата совпадает с типом аргумента.

ArcTan(x: real): real

Вычисление угла, тангенс которого равен x.

Cos(x: real): real

Вычисление косинуса x.. Аргумент x задает значение угла в радианах.

73

Продолжение табл. 5.1

Exp(x: real): real

Вычисление экспоненты числа x (- основание натурального логарифма).

Frac(x: real): real

Frac(3.5)=0.5

Frac(0.25*11)=0.75

Вычисление дробной части числа x. Результат имеет вещественный тип.

Int(x: real): real

Int(123.546)=123

Int(-365.567)=-365

Вычисление целой части x. Если , то функция возвращает ближайшее целое, меньшее или равное x. Если , то функция возвращает ближайшее целое, большее или равное x.

Ln(x: real): real

Вычисление натурального логарифма числа x

Sin(x: real): real

Вычисление синуса x. Аргумент x задает значение угла в радианах.

Sqr(x: real / integer): real / integer

Вычисление квадрата величины x. Тип результата совпадает с типом аргумента.

Sqrt(x: real): real

Вычисление квадратного корня из x.

Random: real

Генерирует значение случайного числа из диапазона 0..0.99.

Random(i:word):word

Генерирует значение случайного числа из диапазона 0..1.

74

Продолжение табл. 5.1

Randomize

Изменение базы генерации случайных чисел.

Скалярные процедуры и функции

Dec(x{,n})

Dec(7)=6

Процедура уменьшает значение целочисленной переменной на величину . Если отсутствует, то x уменьшается на 1.

Inc(x{,n})

Inc(5)=6

Процедура увеличивает значение целочисленной переменной на величину . Если отсутствует, то x увеличивается на 1.

Функции преобразования типов

Roud(x:real):longInt

Round(-27.34)=27

Round(3.7)=4

Round(0.5)=1

Возвращает значение x, округленное до ближайшего целого числа.

Trunc(x:real):longInt

Trunc(3.7)=3

Trunc(-10.7)= -10

Возвращает ближайшее целое число, меньшее или равное x, если , и большее или равное x, если .

Процедуры управления программой

Delay(i:word)

Delay(1500) - задержка выполнения программы на

1.5 сек.

Задержка времени выполнения программы на i мс.

75

Продолжение табл. 5.1

Exit

Выход из выполняемого блока в окружающую среду. Если текущий блок является процедурой или функцией, то выход производится во внешний блок. Если Exit находится в операторной части основной программы, программа прекращает свою работу и управление передается системе программирования.

Halt(n:word)

Прекращение выполнения программы и передача управления системе программирования; - код завершения программы, передаваемый в операционную систему.

Специальные процедуры и функции

Пересылает содержимое основной памяти, начиная с первого байта, занимаемого переменной , в область, которая начинается с первого байта переменной . Длина областей определяется параметром d. Параметры и - переменные любого типа.

76

Продолжение табл. 5.1

Hi(i: integer): byte

Hi($3657)=$0036

Hi($0810)=$0008

Выделяет старший байт значения i и помещает его в младший байт результата. Старший байт результата равен 0.

Lo(i: integer): byte

Lo($3657)=$0057

Lo($0810)=$0010

Выделяет младший байт значения i и помещает его в младший байт результата. Старший байт результата равен 0

Swap(i: integer): integer

Swap($7893)=9378

Swap($1020)=2010

Меняет местами содержимое младшего и старшего байта целочисленного параметра i.

SizeOf(x)

x: integer; x=136;

SizeOf(x) =2.

x: real; x=145.36;

SizeOf(x) =6.

x:string(14); x=’Класс’;

SizeOf(x) =15.

Вычисляет объем основной памяти в байтах, которую занимает указанная переменная или тип.

KeyPressed

Возвращает значение true, если на клавиатуре нажата какая-либо клавиша, и false в противном случае.

77

Окончание табл. 5.1

FillChar(p,dl,z)

FillChar(Mas, SizeOf(Mas),0)-заполняет все биты

файла Mas нулями

Заполняет побайтно область основной памяти заданным значением (наполнителем). Область начинается с первого байта указанной переменной p и имеет размер, заданный параметром dl; p – переменная любого типа; dl – целочисленное выражение, указывающее длину; z – заполнитель, выражение литерного или байтового типа