Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы.Паскаль.doc
Скачиваний:
3
Добавлен:
26.11.2018
Размер:
192.51 Кб
Скачать

20. Вложенные подпрограммы. Принципы локализации имен (локальные и глобальные переменные).

Вложенными являются подпрограммы, вызываемые из других подпрограмм.

Если какая либо программа использует некоторые переменные подпрограммы,

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

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

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

Пример:

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

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

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

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

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

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

 

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

PROCEDURE<имя>

Begin

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

end;

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

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

Пример:

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);

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

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

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

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

Begin

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

end;

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

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

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

Begin

…………………………

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

……………………….

End;

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

Procedure b(j: byte);

 Forward;

Procedure a (i: byte);

Begin

B(i);

End;

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

Любой из структурированных типов (а в ТП их 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/  

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]