Подпрограммы
Подпрограммы
Определение
Структура процедуры
Вызов подпрограммы
Схема алгоритма (основная программа и подпрограмма)
Параметры
Пример
Соответствие параметров
Параметры-значения Параметры - переменные
Принципиальная структура программы
При вызове процедуры выполняются следующие действия
Знать днём и ночью
Знать ночью и днём
Пример
Текст программы
136.19K

Подпрограммы

1. Подпрограммы

2. Подпрограммы

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

3. Определение

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

4. Структура процедуры

Procedure имя (формальные параметры);
Var
блок описания локальных переменных
Begin
тело процедуры
End;

5. Вызов подпрограммы


Вызов подпрограммы осуществляется по
ее имени из любых точек программы и
любое количество раз
Имя_процедуры (параметр1, параметр2, . . .);

6.

Пример: требуется разделить чертой вывод
результатов на экран. Например:
{__________________________}
PROGRAM EDITOR;
{раздел описания констант,
типов, переменных}

PROCEDURE LINIA;
var i: integer;
begin
write ('{ ');
for i:=1 to 78 do write ('_');
writeln (' }');
end;
begin

LINIA;

LINIA;
END.
PROGRAM EDITOR;
var p: char; dl: integer;

Procedure LINIA (pod: char; kol: integer);
var i: integer;
begin
write('{');
for i:=1 to kol do write(pod);
writeln('}');
end;
begin
writeln('Введите символ для
подчеркивания');
readln(p);
writeln('Введите длину строки');
readln(dl);

LINIA (p, dl) ;

LINIA ('*', 50) ;
end.

7. Схема алгоритма (основная программа и подпрограмма)

Н
……
……
Lin
Lin (‘*’,50)
……
……
Lin (h,k)
……
К
K

8. Параметры

Параметры обеспечивают механизм
замены, который позволяет выполнять
процедуру с различными данными.
Между фактическими параметрами в
операторе вызова процедуры и
формальными параметрами в заголовке
описания процедуры устанавливается
соответствие:
по количеству;
типу (real, integer…);
по сущности (переменная, массив…)

9. Пример

формальные параметры
Процедура ЭКЗАМЕН (студент, предмет, дата, оценка)
ВЫЗОВ
фактические параметры
ЭКЗАМЕН(Иванов, Программирование, 13.01, оценка);
ЭКЗАМЕН(Михеев, Информатика, 38.02, оценка);
студент := Василевский;
предмет := Математический анализ;
ЭКЗАМЕН(студент, предмет, 24.12, оценка);
ЭКЗАМЕН(23.09, Сидоров, История, оценка);

10. Соответствие параметров

Процедура:
Procedure имя (формальный параметр1, формальный параметр2…);
PROCEDURE ST (VAR A:MAS; N,L: INTEGER; VAR K: INTEGER);
………………
end;
Вызов процедуры:
имя процедуры (фактический параметр1, фактический параметр2. . .);
ST(X,NR,0,K);
ST(Р,8,G,S);

11. Параметры-значения Параметры - переменные

Если процедура возвращает в программу какие-то
значения, соответствующие переменные должны быть
описаны как параметры-переменные с использованием
оператора Var, исходные данные для подпрограммы –
параметры-значения.
Procedure center (a:real, Var h:real, y: real);
Var предшествует тем параметрам, значения которых должны
быть (или могут быть) изменены процедурой!!!

12. Принципиальная структура программы

ПРИНЦИПИАЛЬНАЯ СТРУКТУРА ПРОГРАММЫ
PROGRAM Имя программы;
USES
Список используемых библиотек (модулей);
CONST
Определение констант программы;
TYPE
Описание типов;
VAR
Определение глобальных переменных программы;
ОПРЕДЕЛЕНИЕ ПРОЦЕДУР (заголовки и, возможно тела процедур)
ОПРЕДЕЛЕНИЕ ФУНКЦИЙ(заголовки и, возможно тела функций)
BEGIN
Основной блок программы (тело программы)
……
END.

13. При вызове процедуры выполняются следующие действия

ПРИ ВЫЗОВЕ ПРОЦЕДУРЫ ВЫПОЛНЯЮТСЯ
СЛЕДУЮЩИЕ ДЕЙСТВИЯ
1.
2.
3.
4.
Формальные параметры заменяются фактическими.
Выполняется тело процедуры.
Происходит возврат в вызывающую программу.
После вызова процедуры выполняется оператор,
следующий за вызовом.

14. Знать днём и ночью

Параметры
Формальные
Переменные
Фактические
Значения

15. Знать ночью и днём

Параметры
Локальные
Глобальные

16. Пример

Лабораторная работа №5.
Разработка и использование подпрограмм
Цель работы: получение практических навыков по
программированию с использованием подпрограмм.
Задание по лабораторной работе
Разработать подпрограмму определения результатов решения
задачи лабораторной работы № 2.
Программа должна содержать:
• ввод исходных данных;
• вызов подпрограммы;
• вывод результатов.
При необходимости в подпрограмме следует предусмотреть
проверку аргументов задачи на допустимость

17.

Схема
обобщенного
алгоритма
Н
Ввод данных
Решение
Вывод результата
К

18.

Н
Схема
обобщенного
алгоритма
Ввод данных
Решение
нет
Есть
решение?
Вывод
сообщения об
ошибке
да
Вывод
результата
К

19. Текст программы

Program labrab5 ; {Иванов А., 15-ИЭ, лаб. раб. 2, вариант 28}
Procedure PLOSH (aa, bb: real; VAR ss: real; VAR ff: boolean);
Begin
If ((aa<=0) or (bb<=0)) then ff:=false else begin
ff:= true;
ss:= aa*bb;
end;
End;
Var
a, b, s: real;
f: boolean;
Begin
Writeln ('введите значение сторон A и B');
Readln (a, b);
PLOSH (a, b, s, f);
If (f=true) then writeln (' Площадь прямоугольника= ‘, s:7:2)
else writeln (' Введены неверные данные‘);
End;
End.
English     Русский Правила