Similar presentations:
Подпрограммы
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.