Similar presentations:
Подпрограммы
1.
Цель урока:Изучить понятие "подпрограмма" и
возможности реализации подпрограммы в
языке программирования Паскаль.
Научиться решать задачи на компьютере с
использованием подпрограмм.
2. Что такое подпрограмма?
Подпрограмма — повторяющаясягруппа операторов, оформленная в
виде самостоятельной программной
единицы.
Записывается однократно, а в
соответствующих местах программы
обеспечивается обращение к ней
(ссылка).
3. В каком случае при повторении действий используют цикл, а в каком подпрограмму?
Если действия повторяются на одном этапеобработки информации, то используют цикл.
Если на различных, то подпрограммы.
4. Для чего используют подпрограммы?
Подпрограммы используют, чтобысократить объем и улучшить структуру
программы с точки зрения наглядности и
читаемости, уменьшить вероятность
ошибок и облегчить процесс отладки
программы.
5.
Принцип нисходящего программированияПри создании программы для решения сложной задачи
выполняется разделение этой задачи на подзадачи, этих
подзадач – на более мелкие подзадачи и так далее до тех
пор, пока подзадачи не станут легко программируемыми.
Для такой организации используются подпрограммы.
6.
В языке Паскаль подпрограммы реализуются в видепроцедур и функций.
7. При вызове процедуры или функции формальные параметры, указанные в заголовке, …
заменяются фактическимипараметрами в порядке их следования.
8. Формальные параметры — это
переменные, формально присутствующиев процедуре и определяющие тип и место
подстановки фактических параметров.
Фактические параметры — это
реальные объекты программы,
заменяющие в теле процедуры при ее
вызове формальные параметры.
9. Соответствие между фактическими и формальными параметрами должно быть следующим:
• число фактических параметровдолжно быть равно числу
формальных параметров;
• соответствующие фактические и
формальные параметры должны
совпадать по порядку следования и по
типу.
10.
program primer1;procedure okl;
begin
writeln (‘Это подпрограмма.’);
end;
procedure ok2;
begin
writeln ('Еще одна подпрограмма.');
end;
begin
writeln (‘Привет!’);
okl;
writeln ('Снова привет!');
okl;
writeln ('А это что такое?');
ok2;
end.
Привет!
Это подпрограмма.
Снова привет!
Это подпрограмма.
А это что такое?
Еще одна
подпрограмма.
11.
2. Найти большее из трех данных чисел, используяподпрограмму нахождения большего из двух.
I. Используем процедуру
Вспомогательный алгоритм
нет
x>y
z:=x
начало
Ввод
a, b, c
max(x, y)
да
Основной алгоритм
z:=y
выход (z)
x, y, z - Формальные параметры
max(a,b,m1)
max(m1,c,m)
Вывод
m
конец
a, b, c - Фактические параметры
12.
2. Найти большее из трех данных чисел, используяподпрограмму нахождения большего из двух.
I. Используем процедуру
program pr2;
var a, b, c, m, m1: real;
procedure max(x, y: real; var z: real);
begin
параметры переменные
if x>y then z:=x else z:=y
end;
параметры значения
begin
writeln(‘a=’); readln (a);
writeln(‘b=’); readln (b);
m1 – большее из a и b
writeln(‘c=’); readln (c);
m – большее из m1 и c
max(a, b, m1);
x, y, z – локальные переменные,
max(m1, c, m);
writeln (‘max= ', m);
a, b, c, m, m1- глобальные
end.
переменные
13.
2. Найти большее из трех данных чисел, используяподпрограмму нахождения большего из двух.
II. Используем функцию
Вспомогательный алгоритм
начало
Вход (x, y)
да
нет
Ввод
a, b, c
max:=y
m:=max(max(a,b),c)
x>y
max:=x
Основной алгоритм
Выход
(max)
x, y, z - Формальные параметры
Вывод
m
конец
a, b, c - Фактические параметры
14.
2. Найти большее из трех данных чисел, используяподпрограмму нахождения большего из двух.
II. Используем функцию
program pr2;
var a, b, c, m, m1: real;
function max(x, y: real): real;
begin
if x>y then max:=x else max:=y
end;
begin
writeln(‘a=’); readln (a);
writeln(‘b=’); readln (b);
writeln(‘c=’); readln (c);
m:=max(max(a, b), c);
writeln (‘max= ', m);
end.
15.
Вывести на экран 5 строк примерно такого текста:Привет,
Привет,
Привет,
Привет,
Привет,
Катя! Поздравляю тебя с новым годом!
Таня! Поздравляю тебя с новым годом!
Вася! Поздравляю тебя с новым годом!
Коля! Поздравляю тебя с новым годом!
Боря! Поздравляю тебя с новым годом!
В программе использовать процедуру для вывода текста.
16.
program primer;var s: string;
procedure ok;
begin
writeln (‘Привет’, s,’! Поздравляю тебя с новым годом! ’);
end;
begin
s:=‘Катя’;
ok;
s:=‘Таня’;
ok;
s:=‘Вася’;
ok;
s:=‘Коля’;
ok;
s:=‘Боря’;
ok;
end.
17.
2 max(a, b) min(a 3, b)Найти
, используя подпрограммы
min(c, a b)
нахождения большего и меньшего из двух чисел.
m :
Вспомогательные алгоритмы
Вход (x, y)
да
Вход (x, y)
нет
x>y
max:=x
нет
x<y
max:=y
Выход
(max)
да
min:=x
min:=y
Выход
(min)
18.
Основной алгоритмprogram pr2;
var a, b, c, m: real;
function max(x, y: real): real;
начало
begin
if x>y then max:=x else max:=y
Ввод
end;
a, b, c
function min(x, y: real): real;
begin
2 max(a, b) min(a 3, b)
m :
if x<y then min:=x else min:=y
min(c, a b)
end;
begin
Вывод
writeln(‘a=’); readln (a);
m
writeln(‘b=’); readln (b);
writeln(‘c=’); readln (c);
конец
m:=(2*max(a, b)+min(a+3,b))/min(c,a-b);
writeln (‘max= ', m);
end.
19.
2 max(a, b) min(a 3, b)m :
min(c, a 8)
Найти
, используя подпрограммы
нахождения большего и меньшего из двух чисел.
Вспомогательные алгоритмы
Вход (x, y)
да
Вход (x, y)
нет
x>y
max:=x
нет
x<y
max:=y
Выход
(max)
да
min:=x
min:=y
Выход
(min)
20.
Параметры - значения в основной программе неменяются.
Используются для передачи исходных данных в
подпрограмму (отсутствует слово var).
21.
Параметры - переменные подпрограмма можетизменить в основной программе.
Используется для определения результатов выполнения
процедуры (обязательно var).
22.
• Локальные переменные объявляютсявнутри подпрограммы и доступны
только ей самой, т.е. недоступны
основной программе.
• Глобальные переменные объявляются
в основной программе и доступны как
программе, так и всем подпрограммам.