Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Вызов подпрограмм (формальные и фактические параметры)



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

Пример:

PROCEDURE<имя>[(<формальные параметры>)];

FUNCTION<имя>[(<формальные параметры>)]:<тип>

Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.

PROCEDURE SB(a: real<формальный параметр>);

Фактические параметры – это глобальные переменные подставленные в формальные

ТИП ФАКТ=ТИП ФОРМ.

 

Процедуры без параметров и с параметрами.

PROCEDURE<имя>

Begin

<текст процедуры>

end;

Передача в подпрограмму параметров регулярного типа (массивов, строк).

Типом любого формального параметра может быть только стандартный или ранее объявленный тип.

Пример:

TYPE TYPE

ATYPE=ARRAY[1..10]OF REAL; INTYPE=STRING[15];

PROCEDURE S(A:ATYPE); OUTTYPE=STRING[30];

FUNCTION ST(S:INTYPE):OUTTYPE

Иной способ для передачи параметров переменных отключением контроля компиляции.

Открытый массив PROCEDURE I (A: ARRAY OF REAL);

Функции. Описание. Вызов функции.

FUNCTION<имя>[(<формальные параметры>)]:<тип>

Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.

FUNCTION<имя функции>(параметр: тип);

Begin

<тело подпрограммы>

end;

Рекурсии. Прямая и косвенная рекурсия. Директива FORWARD.

Рекурсия – это такой способ организации вычислительного процесса при котором программа в ходе выполнения составляющих её операторов обращается сама к себе.

Для избежания переполнения стёка, следует размещать промежуточные результаты во вспомогательной переменной.

Begin

…………………………

F:=fac(n-1); - вспомогательная переменная

……………………….

End;

Рекурсивный вызов может быть косвенным, который разрешается опережающим описанием:

Procedure b(j: byte);

Forward;

Procedure a (i: byte);

Begin

B(i);

End;

Тип-диапазон. Структурированные типы. Массивы.

Любой из структурированных типов (а в ТП их 4 : массивы, записи, множества, файлы) характеризуется множественностью образующих этот тип элементов. В ТП

Допускается бесконечная глубина вложенности типов, однако Суммой=<65520 байт (т.к. каждый компонент может представлять структурированный тип).

PACKED- осуществляется везде где это возможно.

Тип диапазон:

TYPE

D = array [0..9] of char;

Var m: d;

Begin <операторы>end.

Обычно в качестве идентификатора типа используется тип–диапазон, в котором задаются границы изменения индексов.

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

<мин. значение >..<макс. значение>

TYPE digit = ‘0’..’9’; можно Var date:1..31;

dig2=48..57; month:1..12;

1CHR:’a’..’z’;

High(x) – максимальное значение типа диапазон

Low(x) – минимальное значение типа диапазон.

Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.д.), рассматриваемое как единое целое.

Var a: array [1..10] of real;

Компоненты массива состоят из данных одного типа (возможно структурированного).

В качестве идентификаторов порядковые типы кроме LongInt и типа диапазон с базисным типом LongInt/

Символьный тип.

Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапазоне 0..255.Это служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII – 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то же время в 8-битном байте, отведённом для хранения символа в ТП, можно закодировать в 2 раза больше символов (0..255). (0-127ASCII, 128-255-может меняться на ПК разных типов).

0-31 – служебные коды (пробелы)

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.