Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Область действия идентификаторов





Объекты, описанные в основной программе являются глобальными и могут использоваться во всех вложенных блоках. Вложенные блоки – это процедуры и функции. Описанные в них объекты являются локальными и недоступны во внешних блоках.

Правила использования идентификаторов:

· каждый идентификатор должен быть описан перед тем, как он будет использован;

· областью действия идентификатора является тот блок, в котором он описан;

· все идентификаторы в блоке должны быть уникальными, т.е. не повторяться;

· один и тот же идентификатор может быть по-разному определен в каждом отдельном блоке;

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

Рекурсивные подпрограммы

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

Классический пример использования рекурсии – вычисление факториала целого положительного числа.

Program Demorec;

Var N: Integer;

Function Fact (k:Integer):Integer;

Begin

If k=0 then Fact:=1

else Fact:=k*Fact(k-1);

End;

Begin

Write ('Введите число ->'); Readln (N);

Writeln ('N!=',Fact(N));

End.

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

 

Предварительное описание подпрограмм

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

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

Program DF;

Procedure P2 (формальные параметры); Forward;

Procedure P1;

Begin

P2(фактические параметры);

End;

Procedure P2; {список формальных параметров не повторяется}

Begin

P1;

End;

Begin {основная программа}

P1

End.

 

Date: 2015-10-19; view: 333; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию