Понятие стандартных функций и процедур
Рассмотренные ранее операторы позволяют реализовать любые задачи, алгоритм решения которых известен. Многие из таких задач настолько часто встречаются на практике, что соответствие им программы поставляются вместе с конкретной версией и составляют уже откомпилированную библиотеку стандарт подпрограмм.
В зависимости от типа решаемой задачи подпрограмма может быть оформлена как функция или как процедура.
Разница между ними состоит в том, что функция может появляться только как элемент выражения, а процедура представляет собой законченную программу, вызов которой осуществляете в любом месте, где синтаксис Pascal разрешает появление оператора.
Если функция имеет аргументы, а процедура — параметры, они заключаются в круглые скобки.
В зависимости от версии языка различается и набор стандартных функций и процедур. С некоторыми из них мы познакомимся сейчас, с другими позже, а некоторые останутся вне нашего по зрения.
Порядковые функции
Эти функции определены только для объектов тех типов, которые могут быть отображены на множество неотрицательных целых чисел, то есть всех простых типов, кроме Real, а именно Boolean, Byte, Integer, Char, диапазоны и перечисляемые типы.
Функция Ord возвращает порядковый номер аргумента Множестве, определенном типом аргумента. Исключение составляет Integer, для которого функция Ord возвращает значение аргумента.
Пример: Ord(true) возвращает 1, Ord('A') возвращает 65, Ord(-5) возвращает -5.
Разы типа "функция возвращает" означают, что во время выполнения программы вместо функции в выражение будет подставлено ее вычисленное значение.
Функция Pred возвращает значение, предшествующее аргументу в множестве, определенном типом. Если такого значения нет, то возникает ошибка.
Пример:
Pred (100) возвращает 99,
Pred('B') возвращает 'А' .
Функция Succ возвращает значение, следующее за аргументом в множестве, определенном типом. Если такого значения нет, то возникает ошибка.
Пример:
Succ(false) возвращает true, Succ('B') возвращает 'С, Succ(true) вызывает ошибку.
Элементарные математические функции
Аргументом математических функций Pascal, может быть любое выражение числового типа, значение которого лежит внутри области определения. Будем обозначать его как х.
Таблица 3.2. Математические функции
Функция |
Результат |
Тип результата |
Abs(x) |
Модуль x |
Тип аргумента |
Arctan(x) |
Арктангенс х |
Real |
Cos(x) |
Косинус x |
Real |
Ехр(х) |
Число е в степени х |
Real |
Frac(x) |
Дробная часть числа |
Real |
Ln(x) |
Натуральный логарифм х |
Real |
Sin(x) |
Синус х |
Real |
Sqr(x) |
Квадрат х |
Тип аргумента |
Sqrt(x) |
Корень квадратный из х |
Real |
Функции преобразования
Имена перечислимых и ограниченных типов, а также стандартных типов Integer, Byte, Boolean, Char могут быть использованы как функции преобразования к данному типу.
Пример:
Char(78) возвращает ‘N’
Boolean(0) возвращает false.
Если определить TYPE Side==(North, South, East, West); то Integer(East) возвращает 3, a Side(2) возвращает South.
Для преобразования числовых объектов из одного другой существуют специальные функции:
Int(x) — целая часть числа,
Trunc(x) — отбрасывание дробной части числа,
Round(x) — округление числа; причем первая всегда возвращает действительный результат последние — целый.
Пример: привести пример
Процедуры ввода/вывода
В Pascal существуют две стандартные процедуры ввода процедуры вывода, которые по умолчанию адресуются к клавиатуре и экрану.
Read (Pi,. Vi, ... , Vn) — считывает значения переменной клавиатуры, Vt— идентификатор переменной. При вводе переменные отделяются друг от друга пробелами, ввод заканчивается нажатием клавиши Enter.
ReadLn(FbV2, ... ,Vn) — выполняет те же действия, a после окончания ввода происходит автоматический возврат курсора к началу следующей строки.
Write(xi, X2, ... , хп) — выводит на экран значения переменных и выражений.
WriteLn(xi, Х2? ... , хп) — выполняет те же действия, а после окончания вывода происходит автоматический возврат курсора к началу следующей строки.
Некоторые полезные функции и процедуры
При написании первых программ могут оказаться полезными следующие стандартные функции и процедуры.
Функции:
KeyPressed — равняется true, если нажата любая клавиша на клавиатуре, и false — в противном случае. Позволяет организовать ожидание нажатия клавиши.
Odd(x) — проверка целого числа на четность, функция возвращает true, если значение выражения х — нечетное.
Random — генерация случайного числа, принадлежащего интервалу [0,1].
Random(x) — генерация случайного числа, принадлежащего интервалу [0, х -1 ].
Процедуры:
ClrScr — очистка экрана.
Delay(x) — временная задержка на х ms.
DelLine —- удаление строки экрана, на которой находится курсор.
GotoXY(xi, Xj) — позиционирование курсора по координатам X=xhY=x2.
Halt — принудительный останов программы.
InsLine — вставка пустой строки на экране.
Randomise — инициализация генератора случайных чисел.