Процедуры и функции в Паскале. Рекурсия

Содержание

Слайд 2

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

Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.

Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях
Для того, чтобы описывать эту последовательность один раз, а применять многократно, в языках программирования применяются подпрограммы.
Подпрограмма - специальным образом оформленный блок программы, для дальнейшего его многократного использования в основной программе
Использование подпрограмм позволяет реализовать один из самых современных методов программирования - структурное программирование

Слайд 3

Подпрограммы решают три важные задачи, значительно облегчающие программирование:

избавляют от необходимости многократно

Подпрограммы решают три важные задачи, значительно облегчающие программирование: избавляют от необходимости многократно
повторять в тексте программы аналогичные фрагменты, т.е. сократить объём программы;
улучшат структуру программы, облегчая понимание при разборе;
уменьшают вероятность появления ошибок, повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификации.

Слайд 4

Процедуры и функции

В языке Паскаль существует два вида подпрограмм: процедура (PROCEDURE )

Процедуры и функции В языке Паскаль существует два вида подпрограмм: процедура (PROCEDURE
и функция ( FUNCTION ). Процедуры и функции в Паскале объявляются в разделе описания за разделом переменных.
Program ИмяПрограммы;
VAR … // раздел описания переменных главной программы;
procedure ИмяПроцедуры;
var …
begin
…//Тело процедуры
end;
begin
//тело главной программы
end.

Слайд 5

У функций и процедур существуют параметры (переменные, которые передают какое - либо

У функций и процедур существуют параметры (переменные, которые передают какое - либо
значение). Они бывают двух видов:
1) Формальные - те, которые находятся в описании подпрограммы
2) Фактические - те, которые передаются из основной программы в функцию или процедуру.
Фактические параметры должны соответствовать формальным по количеству, порядку следования и типу.

Слайд 6

Также у подпрограммы существую переменные. с которыми она в дальнейшем работает. Они

Также у подпрограммы существую переменные. с которыми она в дальнейшем работает. Они
делятся опять же на два типа:
1) Глобальные переменные, то есть действующие во всей программе
2) Локальные - те, которые действуют только в процедуре или функции

Слайд 7

Процедуры

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

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

Слайд 8

Пример 1. Процедура без параметров, которая печатает строку из 60 звездочек.

Пример 1. Процедура без параметров, которая печатает строку из 60 звездочек. procedure
procedure pr;
var i : integer ;
begin
for i :=1 to 60 do write (‘ * '); writeln;
end;
begin
pr;
end.

Слайд 9

Пример 3. Даны 3 различных массива целых чисел (размер каждого не превышает

Пример 3. Даны 3 различных массива целых чисел (размер каждого не превышает
15). В каждом массиве найти сумму элементов и среднеарифметическое значение.

program proc;
var i , n , sum: integer;
sr : real;
procedure work (r:integer; var s:integer; var s1:real);
var mas : array [1..15] of integer ;
j : integer;
begin
s:=0;
for j:=1 to r do
begin
read (mas[j]); s:=s+mas [j];
end;
s1:=s/r;
end;

Слайд 10

{ главная программа}

begin
for i:=1 to 3 do
begin
write ('Vvedite

{ главная программа} begin for i:=1 to 3 do begin write ('Vvedite
razmer ',i, ' masiva: ');
readln(n);
work (n, sum, sr); {вызов процедуры work}
writeln ('Summa elementov = ',sum);
writeln ('Srednearifmeticheskoe = ',sr:4:1);
end;
end.

Слайд 11

Функции в Паскале

Набор встроенных функций в языке Паскаль достаточно широк (ABS, SQR,

Функции в Паскале Набор встроенных функций в языке Паскаль достаточно широк (ABS,
TRUNC и т.д.). Если в программу включается новая, нестандартная функция, то ее необходимо описать в тексте программы, после чего можно обращаться к ней из программы. Обращение к функции осуществляется в правой части оператора присваивания, с указанием имени функции и фактических параметров. Функция может иметь собственные локальные константы, типы, переменные, процедуры и функции. Описание функций в Паскале аналогично описанию процедур.

Слайд 12

Отличительные особенности функций:

- результат выполнения - одно значение, которое присваивается имени функции

Отличительные особенности функций: - результат выполнения - одно значение, которое присваивается имени
и передается в основную программу;
- имя функции может входить в выражение как операнд.

Слайд 13

Функции

Подпрограмма — часть программы, оформленная в виде отдельной синтаксической конструкции и снабжённая

Функции Подпрограмма — часть программы, оформленная в виде отдельной синтаксической конструкции и
именем (самостоятельный программный блок), для решения отдельных задач.

Описание процедуры:
procedure<имя> (<список формальных параметров>)
{раздел выполнения локальных имён}
Begin
{раздел выполнения операторов}
End;

Описание функции:
function<имя> (<список формальных параметров>): тип;
{раздел описания локальных имён}
Begin
{раздел выполняемых операторов}
<Имя функции>:=<значение>; {обязательный параметр}
End;

Вызов процедуры:
<имя >(<список фактических переменных>);

Вызов функции:
< оператор>:= <имя функции>
(<список фактических переменных>);

1. В правой части оператора присваивания.
2. В выражении, стоящем в условии оператора разветвления.
3. В процедуре вывода, как результат работы функции.

Описание подпрограмм

Процедуры