Подпрограммы в Паскаль
Понятие вспомогательного алгоритма
Назначение подпрограмм
Процедуры и функции
Способы включения подпрограмм в код
Структура программы
Процедура
Функция
Формальные и фактические параметры
Формальные параметры
353.00K
Category: programmingprogramming

Подпрограммы в Паскаль

1. Подпрограммы в Паскаль

Процедуры
Функции

2. Понятие вспомогательного алгоритма

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

3. Назначение подпрограмм

• Избавляют от необходимости
многократно повторять в тексте
программы аналогичные фрагменты;
• Улучшают структуру программы,
облегчая ее понимание;
• Повышают устойчивость к ошибкам
программирования и непредвиденным
последствиям при модификации
программы.

4. Процедуры и функции

• Существует два вида подпрограмм:
процедуры и функции.
• Разница между ними состоит в том, что
функция через свое имя возвращает одно
значение определенного типа и может
использоваться в выражениях наряду со
встроенными функциями.

5.

• Стандартная подпрограмма (процедура
или функция) – подпрограмма,
включенная в библиотеку программ
ЭВМ, доступ к которой обеспечивается
средствами языка программирования.
• Примеры:
Power(x,n), Sin(x) и др.

6. Способы включения подпрограмм в код

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

7. Структура программы

program <имя программы>;
Uses <список модулей>;
Const <описание констант>;
type
<описание типов данных>;
var
<описание переменных>;
<процедуры и функции>;
begin
<основное тело программы>;
end.

8. Процедура

procedure <имя процедуры>
(<список параметров>);
var
<локальные переменные>
begin
<операторы>
end;

9. Функция

function <имя>(<параметры>):<тип
результата>;
var
<локальные переменные>
begin
<операторы>
result:=<значение>;
end;

10.

• Глобальными называются
переменные, объявленные в основной
программе и доступные как программе,
так и всем ее подпрограммам.
• Локальными называются переменные,
объявленные внутри подпрограммы и
доступные только ей самой.
• Подпрограмма может использовать
любые глобальные переменные кроме
тех, которые имеют имена,
совпадающие с именами локальных
переменных.

11.

12. Формальные и фактические параметры

• В процедуру могут передаваться параметры,
то есть некоторые переменные, которые
могут использоваться внутри процедуры.
• При вызове процедуры с помощью
оператора вызова этим переменным
присваиваются значения, указанные в этом
операторе.
• Параметры, описанные в заголовке
процедуры, называются формальными, а
значения, которые присваиваются этим
параметрам в процессе вызова —
фактическими параметрами.

13. Формальные параметры


Параметры-значения;
Параметры-переменные;
Параметры-константы;
Параметры-процедуры и параметрыфункции.

14.

• Параметры в процедуру могут передаваться по
значению или по ссылке.
• В случае передачи параметра по значению, в
процедуру передастся значение фактического
параметра. Изменение формального параметра
внутри процедуры не отразится на значении
фактического параметра.
• При передаче параметра по ссылке
формальный параметр является ссылкой на
фактический и его изменение внутри процедуры
изменит значение фактического параметра.
Второй метод обычно используется для
возвращения результатов работы функции в
главную программу.

15.


Для того чтобы передать параметр по
ссылке, в Паскале в описании формальных
параметров в теле процедуры используется
ключевое слово var:
procedure SubTest(a,b:integer;
var c:real, var d:integer);
здесь параметры а и b передаются по
значению, а параметры с и d — по ссылке.
English     Русский Rules