ПОДПРОГРАММЫ
Учитель I
квалификационной категории
КОУ «Адаптивная школа-интернат № 14» Звягина Валентина
Брониславовна
г. Омск
Решение сложных задач
Подпрограмма
Подпрограмма — это
вспомогательная программа, предназначенная для решения простых подзадач в
составе более сложной задачи.
В теле
основной программы подпрограмма вызывается по имени.
Вам
уже известны стандартные подпрограммы языка программирования Pascal: процедуры
ввода и вывода read, readln, write, writeln. Также вы встречались с
некоторыми стандартными функциями, например sqrt — функция
извлечения квадратного корня.
Процедуры и функции
В языке
Pascal существует два вида подпрограмм: процедуры и функции.
Процедуры
и функции отличаются описанием и способом вызова в основной программе. Вызов процедуры
— это команда, вызов функции — часть выражения.
Процедура
может передавать в основную программу любое число величин или не передавать
никаких величин. Функция всегда должна передавать одну величину.
Описание процедур
Описание
процедуры производится в разделе описаний программы procedure идентификатор (список_параметров:
тип; var список_параметров: тип); begin end;
Идентификатор — имя
процедуры (будет использоваться как команда вызова). begin
раздел
операторов процедуры end;
Процедура, так же, как и
основная программа, может иметь собственный раздел описаний.
Параметры процедур
В процедурах используются
параметры-значения и параметры-переменные.
Параметры-значения нужны для передачи
величин из основной программы в процедуру.
Параметры-переменные передают величины из
процедуры в основную программу.
При описании подпрограммы указываются
формальные параметры, которые при её вызове заменяются параметрами фактическими
procedure proc1 (a, b, c: integer; var
rez: boolean);
Описание функций
Описание
функции производится в разделе описаний программы function идентификатор
(список_параметров: тип): тип; begin
идентификатор:= … end;
Идентификатор — имя
функции (будет использоваться как часть выражения). begin
раздел
операторов функции, в разделе операторов end; обязательно должна
быть команда присваивания результата функции.
При описании функции
обязательно указывается тип результата.
Функция, так же, как и
основная программа, может иметь собственный раздел описаний.
Программа
вычисления площади правильного N-угольника по известному радиусу описанной
окружности
Дано n
— количество сторон
R — радиус
описанной окружности
Найти S
— площадь n-угольника
S1 —
площадь треугольника, образованного радиусами R и стороной n-угольника a.
S1=R2sin(180n
)cos(180n
)
Программа
вычисления площади правильного n-угольника
program n_ugol;
var
s,s1,r:real; n:integer;
procedure treugol (x:real;m:integer;var y:real);
begin
y:=sqr(x)*sin(pi/m)*cos(pi/m);
end;
begin
write('Введи
количесто сторон ');
readln(n);
write('Введи
радиус описанной окружности ');
readln(r); treugol(r,n,s1);
s:=s1*n;
writeln('Площадь
',n,'-угольника
',s);
end.
Задания
1)
Для
чего нужны подпрограммы?
2)
Чем
процедуры отличаются от функций?
3)
Для
чего нужны параметры-значения?
4)
Для
чего нужны параметры-переменные?
5)
В
программе из рассмотренного примера найдите и перечислите формальные параметры
процедуры treugol. Какие их них являются параметрами-значениями, а какие
параметрами-переменными?
6)
Из
программы выпишите строку, в которой производится вызов процедуры. Какие
фактические параметры передаются из основной программы в процедуру? Какие
фактические параметры передаются из процедуры в основную программу?
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.