Similar presentations:
Подпрограммы в Паскаль
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 — по ссылке.