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

Процедуры и функции, или как структурировать программы

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

Procedure <имя процедуры>

[(<список_параметров>)];

[Var часть] [Const часть] Begin

{тело процедуры} [<операторы>]

End;

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

[Var] <имя формального параметра>: <тип параметра>

разделенных точками с запятой, где именем параметра является идентификатор, с которым ассоциируется значение фактически переданного процедуре параметра (именно значение, а не переменная, передаваемая в качестве параметра), а типом параметра - стандартный или ранее определенный тип. Если перед именем параметра стоит ключевое слово Var, то изменение данного параметра в теле процедуры приведет к изменению значения переменной, переданной в качестве параметра.

Вызов процедуры производится так:

<имя процедуры> [(<список фактических параметров>)];

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

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

Function <имя_функции>

[(<список_параметров>)]: тип_результата;

[Var часть] [Const часть] Begin

{тело функции} [<операторы>]

End;

Единственным отличием функций от процедур является возможность возврата некоторого значения. Указание конкретного значения, возвращаемое функций, производится путем присваивания в теле функции идентификатору имени функции данного значения. Естественно, что таких присваиваний может быть несколько, при этом значение возвращаемое функцией будет зависеть от того, какое из таких присваиваний было произведено последним. В Turbo Pascal, начиная с версии 7.0 возможен вызов функции без использования возвращаемого ею значения - аналогично процедуре. Так как при возврате значение функции находится, за редким исключением, в регистрах процессора, накладываются ограничения на типы результатов, возвращаемых функциями. Функции могут возвращать значения простых типов и строки.

Первая программа, или с чего начинают все всегда и везде

Собственно, прочитав этот текст вы имеете представление о восьмидесяти процентах синтаксических структур на Pascal'е. Осталось набрать стандартную первую программу

Program Hello; {привет, значит} Var

I: Integer;

Begin

WriteLN('Hello, World!'); Write('Enter the integer number, please '); ReadLN(I); WriteLN('You entered number greater than ', I-1, ', namely ', I);

End.

Стоит обратить внимание на разницу в выполнении WriteLN и Write. 

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