Вы находитесь на странице: 1из 12

ГБОУ Школа № 654 имени А.Д.

Фридмана

Процедуры в языке Паскаль

Информатика
10 классы
Профильная подготовка
Учитель: Ермаков Максим Геннадьевич
Вступление
Очевидно:
•чем сложнее задача, тем длиннее код
программы ее решения;
•чем длиннее код, тем выше вероятность
ошибки, и сложнее процесс отладки;
•было бы здорово собирать программу по
принципу конструктора из готовых
промежуточных решений.
О чем речь?
Алгоритм решения сложной задачи можно
условно разделить на части:
 общая задача (ОЗ);
 вспомогательная задача (ВЗ).
Пример.
Сравнить суммы целых чисел, расположенных
между числами [a, b], [c, d] и [m, n].
ОЗ: сравнить числа S1, S2, S3
ВЗ: найти сумму чисел отрезка [p, q]
Решение задачи
Program Z1;
var a, b, c, d, m, n, i: integer;
S1, S2, S3:integer;
BEGIN
Write(‘ Задайте 6 чисел);
Readln(a, b, c, d, m, n);
S1:=0;
for i:=a to b do S1:=S1+i; Одинаковые
S2:=0; фрагменты кода
for i:=c to d do S2:=S2+i;
S3:=0;
for i:=m to n do S3:=S3+i;
if S1>S2 then
if S1>S3 then Writeln(‘Max=‘, S1)
else Writeln(‘Max=‘, S3)
else
if S2>S3 then Writeln(‘Max=‘, S2)
else Writeln(‘Max=‘, S3);
Readln
END.
О чем речь?
• Каждая из выделенных задач проще, чем
целая задача.
• Программу по алгоритму вспомогательной
задачи принято называть подпрограммой.
• В Паскале подпрограмму принято называть
процедурой.
• Использование процедуры позволит
сократить текст основной программы без
«ущерба» результативности.
Описание процедуры
• Осуществляется в блоке описания
программы.
• Структурно повторяет программу.
Procedure <Имя>(<список ФП с типами значений>);
<раздел описаний локальных переменных> ;
Begin
<операторы алгоритма вспомогательной задачи>
End;
Формальные параметры
• ФП – это переменные, используемые для
описания алгоритма решения подзадачи.
• Делятся на группы:
– Параметры-значения
• исходные данные для решения вспомогательной задачи
• при описании: <имя>: <тип значения>
– Параметры-переменные
• результаты решения вспомогательной задачи
• при описании: var <имя>: <тип значения>
Пример описания процедуры
Procedure Summa(p, q: integer; Var S: integer);
var i: integer ;
Begin
S:=0;
for i:=p to q do
S:=S+i;
End;
Обращение к процедуре
• В тексте программы
<Имя > (<список ФАП>);
– ФАП – это величины, используемые при
решении основной задачи.
• Пример
Summa (a,b,S1);
Summa (c,d,S2);
Summa (m,n,S3);
Правила обращения к процедуре
• Порядки списков ФАП и ФП совпадают.
• На месте параметров-значений можно
указывать данные (численные значения)
или переменные, значения которых уже
заданы в программе.
• На месте параметров-переменных
можно указывать только переменные
величины.
Пример
Program Z1; Program Z1pro;
var a, b, c, d, m, n, i: integer; Procedure Summa(p, q: integer; Var S: integer);
S1, S2, S3:integer; var i: integer ;
BEGIN Begin
Write(‘ Задайте 6 чисел); S:=0;
Readln(a, b, c, d, m, n); for i:=p to q do
S:=S+i;
S1:=0; End;
for i:=a to b do S1:=S1+i; var a, b, c, d, m, n, i: integer;
S2:=0; S1, S2, S3:integer;
for i:=c to d do S2:=S2+i; BEGIN
S3:=0; Write(‘ Задайте 6 чисел);
for i:=m to n do S3:=S3+i; Readln(a, b, c, d, m, n);
Summa (a,b,S1);
if S1>S2 then
Summa (c,d,S2);
if S1>S3 then Writeln(‘Max=‘, S1) Summa (m,n,S3);
else Writeln(‘Max=‘, S3) if S1>S2 then
else if S1>S3 then Writeln(‘Max=‘, S1)
if S2>S3 then Writeln(‘Max=‘, S2) else Writeln(‘Max=‘, S3)
else Writeln(‘Max=‘, S3); else
Readln if S2>S3 then Writeln(‘Max=‘, S2)
else Writeln(‘Max=‘, S3);
END.
Readln
END.
Домашнее задание
Переписать в тетрадь:
•тему презентации;
•определения понятий процедура, фактические и
формальные параметры;
•общий вид описания процедуры;
•как различаются формальные параметры;
•правило обращения к процедуре;
•пример программы с процедурой.

Вам также может понравиться