Студопедия

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

Разделы сайта

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






Область действия идентификаторов, правила их использования. Нетипизированные параметры-переменные. Расширенный синтаксис вызова функции.






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

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

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

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

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

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

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

Нетипизированные параметры–переменные. Существует разновидность ссылочных параметров без типа. Они называются нетипизированными и предназначены для передачи и приёма данных любого типа. Параметр считается нетипизированным, если тип формального параметра–переменной в заголовке подпрограммы не указан, при этом соответствующий ему фактический параметр может быть переменной любого типа. Нетипизированными могут быть только параметры–переменные.

Нетипизированные параметры описываются с помощью ключевых слов var и const, при этом тип данных опускается:

Procedure MyProc(const y; var x);

Function MyFunc(const y; var x): Real;

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

Расширенный синтаксис вызова функции

В языке программирования Pascal есть возможность вызывать функцию и не использовать то значение, которое оно возвращает, т.е. вызов функции может внешне выглядеть как вызов процедуры, например:

{$X+} {Включаем расширенный синтаксис}

Function MyFunc(var x: Integer): Integer;

Begin

If x< 0 Then x: =0

Else MyFunc: =x+10;

End; {MyFunc}

Var

i: Integer;

begin

i: =1;

i: =2*MyFunc(i)-100; {Стандартный вызов функции}

MyFunc(i) {Расширенный вызов функции}

end.

С помощью расширенного синтаксиса нельзя вызывать стандартные функции. Компиляция с учетом расширенного синтаксиса включается активным состоянием опции EXTENDED SYNTAX диалогового окна OPTION/COMPILER или глобальной директивой компилятора {$X+}.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.