Подпрограммы.Функции и процедуры.

Содержание

Слайд 2

Очень часто процесс решения какой – либо задачи может быть мысленно представлен

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

Создание пользовательских подпрограмм

ЕСЛИ В ПРОГРАММЕ ЧТО-ТО ПОВТОРЯЕТСЯ – ОНА НАПИСАНА НЕПРАВИЛЬНО!

Слайд 3

Процедуры

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

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

Слайд 4

Процедуры

Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий.
Применение:
выполнение одинаковых

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

Слайд 5

Процедура состоит из заголовка и тела. По структуре ее можно рассматривать как

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

Процедуры

Слайд 6

procedure <имя процедуры> ( <список формальных параметров> ) ;
const ...;
type ...;
var ...;
begin

procedure ( ) ; const ...; type ...; var ...; begin end; Процедура=маленькая программа
<операторы>
end;

Процедура=маленькая программа

Слайд 7

Процедуры

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

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

procedure Tr( x, y, r, g, b: integer);

Tr (200, 100, 0, 255, 0);

x

y

r

g

b

Слайд 8

Процедуры

Особенности:
для каждого формального параметра после двоеточия указывают его тип
если однотипные параметры стоят

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

procedure A (x: real; y: integer; z: real);

procedure A (x, z: real; y, k, l: integer);

Слайд 9

Процедуры

Особенности:
в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к

Процедуры Особенности: в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не
ним доступа

program qq;
procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;
begin
...
end.

procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;

локальные переменные

var a, b: real;

Слайд 10

Параметры-переменные

Задача: составить процедуру, которая меняет местами значения двух переменных.
Особенности:
надо, чтобы изменения, сделанные

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

program qq;
var x, y: integer;
begin
x := 1; y := 2;
Exchange ( x, y );
writeln ( ’x = ’, x, ’ y = ’, y );
end.

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;

эта процедура работает с копиями параметров

x = 1 y = 2

Слайд 11

Вызов процедуры для выполнения осуществляется по ее имени, за которым в круглых

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

Вызов процедуры

Power(a,b); Main;

Слайд 12

Параметры-переменные

Применение: таким образом процедура (и функция) может возвращать несколько значений,
Запрещенные варианты вызова
Exchange

Параметры-переменные Применение: таким образом процедура (и функция) может возвращать несколько значений, Запрещенные
( 2, 3 ); { числа }
Exchange ( x+z, y+2 ); { выражения }

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;

var

параметры могут изменяться

Имя файла: Подпрограммы.Функции-и-процедуры..pptx
Количество просмотров: 182
Количество скачиваний: 2