
- •Тема 3. Объекты и средства программирования на языке.
- •1. Структура программы.
- •2. Данные как объекты работы программы.
- •3. Константы и их определение.
- •Идентификаторы и переменные.
- •Выражения.
- •Встроенные функции и процедуры.
- •Начальные сведения о вводе-выводе данных. Ввод данных.
- •Вывод данных.
- •Тема 5. Простые типы данных.
- •1. Классификация типов
- •Стандартные функции для работы с порядковыми типами данных
- •2. Характеристика простых типов данных
- •Характеристики целых типов данных
- •Характеристики вещественных типов данных
- •3. Совместимость и преобразование типов
- •Массивы и работа с ними
- •Действия над массивами.
- •Константы-массивы.
Встроенные функции и процедуры.
Для повышения производительности и эффективности программирования полезно применять т.н. встроенные (стандартные) функции и процедуры. Их не надо объявлять. Должны быть объявлены только используемые в них параметры.
Хранятся такие процедуры и функции в 8-ми стандартных библиотечных модулях Турбо-Паскаля, в т.ч. SYSTEM, DOS, CRT. Доступ к модулю SYSTEM обеспечен всегда. А остальные надо подключать при написании программы. Тогда станут доступными расположенные в них встроенные процедуры и функции. Это делается записью оператора USES после заголовка программы:
USES <список имен стандартных модулей через запятую>;
Например:
PROGRAM …
USES CRT, DOS;
В программе имена вызываемых встроенных процедур записываются как обычные операторы, а имена функций – как операнды.
В языке Турбо-Паскаль используются следующие встроенные функции и процедуры:
А) математические:
№ п/п |
Имя функции или процедуры |
Тип аргумента (параметра) |
Результат |
Тип результата |
|
Функции:
|
|
|
|
1. |
ABS(x) |
Целый, веществ.-й |
Модуль (абсолютное значение) x |
Целый, веществ.-й |
2. |
ARCTAN(x) |
Веществ.-й |
Арктангенс угла (х – в радианах) |
Веществ.-й |
3. |
SIN(x) |
- « - |
Синус угла (х – в радианах) |
- « - |
4. |
COS(x) |
- « - |
Косинус угла (х – в радианах) |
- « - |
5. |
CHR(x) |
BYTE |
Символ с порядковым номером x |
CHAR |
6. |
EXP(x) |
Веществ.-й |
Экспонента (е в степени х) |
- « - |
7. |
FRAC(x) |
- « - |
Дробная часть х |
- « - |
8. |
INT(x) |
- « - |
Целая часть х |
- « - |
9. |
LN(x) |
- « - |
Натуральный логарифм х (где х>0) |
- « - |
10. |
ODD(x) |
Порядк.-й |
TRUE, если х – нечетно, FALSE, если х – четно |
BOOLEAN |
11. |
ORD(x) |
- « - |
Порядковый номер, соответствующий значению х |
LONGINT |
12. |
SUCC(x) |
- « - |
Последующее значение аргумента |
Порядк.-й |
13. |
SQRT(x) |
Целый, веществ.-й |
Квадрат х (где х>0) |
- « - |
14. |
SQRT(x) |
Веществ.-й |
Корень квадратный х |
- « - |
15. |
PI |
|
Число π=3.1415926535897932385 |
- « - |
16. |
PRED(x) |
Порядк.-й |
Предшествующее значение аргумента |
Порядк.-й |
17. |
ROUND(x) |
Веществ.-й |
Ближайшее (округленное) целое х |
LONGINT |
18. |
TRUNC(x) |
- « - |
Целое от х (усеченное целое) |
LONGINT |
|
Процедуры:
|
|
|
|
1. |
DEC(x,[s]) |
Порядк.-й |
х, уменьшенное на 1 или s, если s задано |
Порядк.-й |
2. |
INC(x,[s]) |
- « - |
х, увеличенное на 1 или s, если s задано |
- « - |
Пример:
(N - ABS(a -b)*SQR(b))/( π + SQRT(2*a – SQR(c -d)))
Б) cтроковые:
№ п/п |
Имя функции или процедуры |
Результат |
Тип результата |
|
Функции:
|
|
|
1. |
CONCAT(s1[,s2,…,sN]) |
Строка как сцепление подстрок s1 … sN |
STRING |
2. |
COPY(st,n,k) |
Подстрока в строке st длиной к символов, начиная с позиции n |
- « - |
3. |
LENGTH(st) |
Длина строки st |
INTEGER |
4. |
POS(pst,st) |
Номер начальной позиции первого вхождения подстроки pst в строке st или ноль, если вхождение не обнаружено |
- « - |
5. |
UPCASE(ch) |
Заглавная латинская буква, соответствующая аналогичной строчной из выражения ch. Другие символы не преобразовываются |
CHAR |
|
Процедуры:
|
|
|
1. |
DELETE(st,n,k) |
Cтрока st после удаления из нее к символов, начиная с позиции n |
STRING |
2. |
INSERT(pst,st,n) |
Cтрока st после вставки в нее подстроки pst, начиная с позиции n |
- « - |
3. |
STR(cv[:w[,d]],st) |
Cтрока st (общей длиной w c d cимволами для дробной части ) как результат преобразования целого или вещественного числа cv |
- « - |
4. |
VAL(st,cv,kod) |
Результат внутреннего преобразования строки st в переменную cv целого или вещественного типа. Коd=0, если преобразование было успешным. Иначе в коd фиксируется номер позиции в st с ошибочным символом |
|
С) специальные: они обеспечивают выполнение вспомогательных операций в программе, таких как:
- прерывание выполнения программы;
- задержку выполнения определенных шагов программы;
- генерацию случайных чисел;
- подачу звукового сигнала;
- определение объема памяти в байтах, занимаемой переменной;
- копирование блоков информации в оперативной памяти;
- работу с экраном дисплея;
- редактирование отображаемой информации и др.
Отметим наиболее употребимые специальные встроенные функции и процедуры.
Из модуля SYSTEM:
функции:
1. IORESULT – возвращает код состояния последней операции
ввода-вывода;
2. RANDOM и RANDOM(n) –возвращают случайное число типа
REAL в диапазоне от 0 до 1 (в первом случае) или от 1 до n-1,
где n – целое.
Использованию этих функций должен предшествовать вызов
процедуры RANDOMIZE.
процедуры:
EXCLUDE(s,e);- исключает элемент е из множества s того же типа;
EXIT; - осуществляет выход из выполняемого блока, передавая управление по метке, помещенной перед служебным словом END, закрывающим блок; при вызове из подпрограммы – возвращает управление в основную программу; при вызове из основной программы – прекращает ее работы;
FILLCHAR(p,n,v); – заполняет n байтов в переменной p любого типа выражением v любого порядкового типа;
HALT[(k)]; - останавливает работу программы, возвращая управление операционной системе и, если к указано, отображая код завершения программы;
5. INCLUDE(s,e); - включает во множество s элемент е того же типа;
6. RANDOMIZE; - инициализирует некоторым случайным значением генератор случайных чисел;
Из модуля CRT:
функции:
1. KEYPRESSED – возвращает TRUE, если была нажата какая-
либо клавиша на клавиатуре; иначе – FALSE;
READKEY – читает (но не выводит на экран) символ с
клавиатуры, приостанавливая выполнение программы до
момента нажатия любой клавиши (исключая регистровые);
WHEREX и WHEREY – возвращают соответственно
горизонтальную и вертикальную координаты текущей позиции
курсора на активном окне;
процедуры:
CLRSCR; – очищает экран, помещая курсор в левый нижний угол;
DELEY(t);- задерживает выполнение программы на t миллисекунд;
GOTOXY(x,y); - перемещает курсор в позицию экрана, определяемую координатами Х (по горизонтали) и Y 0о вертикали);
SOUND(g);- включает подачу звукового сигнала частотой g – герц.
TEXTBACKGROUND(c);- устанавливает цвет фона, определяемый параметром с байтового типа;
TEXTCOLOR(c); - устанавливает цвет символов, определяемый параметром с байтового типа;
WINDOW(x1,y1,x2,y2); - формирует текстовое окно, определяемое координатами левого верхнего (x1,y1) и нижнего правого (x2,y2) углов;