Разделы презентаций


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

Содержание

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

Слайды и текст этой презентации

Слайд 1Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

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

представляющая собой некоторое собрание операторов, структурированных аналогично основной программе.

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

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

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

Слайд 31. Понятие подпрограммы
Процедуры и функции
Так выглядит структура всей программы

в Pascal:

Program ; { Заголовок программы } Uses

имя 2, … >; { Раздел описания модулей } Label <метка 1, метка 2,…>; { Раздел описания меток } Const <имя 1, имя 2,…>; { Раздел описания констант } Type { Раздел описания типов } <имя типа 1> = <определение типа 1>; <имя типа 2> = <определение типа 2>; … Var <имя 1, имя 2,…>: <тип>; { Раздел описания переменных } Procedure; {Раздел описания процедур} Function; {Раздел описания функций} Begin { Тело программы } <операторы> End.
1. Понятие подпрограммы Процедуры и функцииТак выглядит структура всей программы в Pascal:Program ; { Заголовок программы }

Слайд 4Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность.
Рекурсия
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность.РекурсияПример

Слайд 5 2. Стандартные функции и процедуры
Процедуры и функции
Стандартные функции

и процедуры PASCAL:
процедуры управления программой;
функции преобразования;
арифметические функции;
порядковые процедуры

и функции;
строковые процедуры и функции;
процедуры и функции динамического распределения памяти;
прочие процедуры и функции.
2. Стандартные функции и процедуры Процедуры и функцииСтандартные функции и процедуры PASCAL:процедуры управления программой; функции преобразования;арифметические

Слайд 62. Стандартные функции и процедуры
Процедуры и функции
Процедуры управления программой:

Procedure Break;
Процедура осуществляет

досрочный выход из циклов For, While или Repeat.
Процедура должна находиться внутри этих циклов,

иначе транслятор сообщит об ошибке.

 Procedure Continue;
Процедура досрочно начинает следующую итерацию циклов For, While или Repeat.
Процедура должна находиться внутри этих циклов, иначе транслятор сообщит об ошибке.

 Procedure Exit;
Осуществляет немедленный выход из текущей подпрограммы. Если текущей подпрограммой является главная программа, она завершает работу.

 Procedure Halt[(Exitcode: Integer)];
Процедура выполняет аварийное завершение программы. Чтобы нормально завершить.


2. Стандартные функции и процедурыПроцедуры и функцииПроцедуры управления программой:Procedure Break;Процедура осуществляет досрочный выход из циклов For, While или Repeat.Процедура должна находиться

Слайд 72. Стандартные функции и процедуры
2. Стандартные функции и процедуры
Функции

преобразования :

function Chr(a: byte): char;
Преобразует

код в символ в кодировке Windows

function Ord(a: char): byte;         Преобразует символ в код в кодировке Windows

function Ord(a: integer): integer;         Возвращает порядковый номер значения a

function Trunc(x: real): integer;         Возвращает целую часть числа x

function Round(x: real): integer;         Возвращает x, округленное до ближайшего целого

2. Стандартные функции и процедуры 2. Стандартные функции и процедурыФункции преобразования :function Chr(a: byte): char;

Слайд 8Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 93. Пользовательские функции и процедуры
Процедуры и функции
Процедурой называется особым

образом оформленный фрагмент программы, имеющий собственное имя. Упоминание этого имени

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

Слайд 103. Пользовательские функции и процедуры
Процедуры и функции
Функция отличается от

процедуры тем, что результат её работы возвращается в виде значения

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

Заголовок процедуры имеет вид:
PROCEDURE <имя> [(<сп. ф. п.>)];
заголовок функции:
FUNCTION <имя> [(<сп. ф. п.>)]: <тип>;
Здесь <имя> – имя подпрограммы;
<сп. ф. п.> – список формальных параметров;
<тип> – тип возвращаемого функцией результата..

procedure SB (a: real; b: integer; c: char);
function F (a: real; b: real): real;
function F (a, b: real): real;

3. Пользовательские функции и процедуры Процедуры и функцииФункция отличается от процедуры тем, что результат её работы возвращается

Слайд 113. Пользовательские функции и процедуры
Процедуры и функции
При описании подпрограммы

указывается её заголовок и тело. Тело подпрограммы, подобно программе, состоит

из раздела описаний и раздела исполняемых операторов. В разделе описаний подпрограммы могут встретиться описания подпрограмм низшего уровня, т.е. вложенных подпрограмм.
3. Пользовательские функции и процедуры Процедуры и функцииПри описании подпрограммы указывается её заголовок и тело. Тело подпрограммы,

Слайд 123. Пользовательские функции и процедуры
Процедуры и функции
Пример. Разработать функцию

возведение числа в степень.

var
x,y: real;
 function power( a, b:

real): real;
begin
if a>0 then power := exp(b*ln(a))
else power := 0;
end; {function power}
 
begin
repeat
readln(x,y);
writeln( power(x,y) );
until false;
end.
3. Пользовательские функции и процедуры Процедуры и функцииПример. Разработать функцию возведение числа в степень. var x,y: real; function

Слайд 133. Пользовательские функции и процедуры
Процедуры и функции
Пример. Разработать процедуру,

которая выводит на экран прямоугольник из заданных символов определенного размера.



procedure box (s: char; w,h: integer);
var i,j:integer;
begin
for i := 1 to h do begin
for j := 1 to w do
write (s);
writeln
end;
writeln
end;
begin
box ('+', 8, 2);
box ('r', 3, 3);
box ('|', 5, 3);
box ('$', 4, 1);
end.
3. Пользовательские функции и процедуры Процедуры и функцииПример. Разработать процедуру, которая выводит на экран прямоугольник из заданных

Слайд 14Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 154. Область видимости
Процедуры и функции
Подпрограмме доступны только те объекты

верхнего уровня, которые описаны до описания данной подпрограммы. Эти объекты

называются глобальными по отношению к подпрограмме.

Имена, локализованные в подпрограмме, могут совпадать с ранее объявленными глобальными именами. В этом случае считается, что локальное имя «закрывает» глобальное и делает его недоступным. Одноименные глобальные и локальные переменные – это разные переменные

4. Область видимости Процедуры и функцииПодпрограмме доступны только те объекты верхнего уровня, которые описаны до описания данной

Слайд 164. Область видимости
Процедуры и функции
var k: integer;
procedure a;
var

x, z: real;
begin
{ через

x, z обозначены две величины –
локальные переменные для a;
k – глобальная переменная для a }
end;
procedure b;
var x, y: integer;
begin
{ через x, y обозначены две другие величины –
локальные переменные для b;
k – глобальная переменная для b }
end;
begin
{ k – единственная переменная, которую
можно использовать в основной ветке программы }
…………………………………
end.
4. Область видимостиПроцедуры и функцииvar k: integer;procedure a;  var x, z: real;  begin

Слайд 174. Область видимости
Процедуры и функции
var
i: integer;

a: real;

function p(d: real):real;
var i: integer;

begin
i := 3;
p := i + 10 * d;
end;

begin
a := 2.0;
i := 15;
p(a);
writeln(' i = ', i, ' a = ', a);

readln
end.

Две совершенно разные переменные:
первая i – глобальная для всей программы,
вторая i – локальная для функции p

Результат:
i = 15 a = 2

4. Область видимости Процедуры и функцииvar  i: integer;  a: real; function p(d: real):real;  var

Слайд 18Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 195. Параметр-значение, параметр-переменная
Процедуры и функции
Любой из формальных параметров подпрограммы

может быть либо параметром-значением, либо параметром-переменной. В предыдущем примере параметры

a и b определены как параметры-значения. Чтобы определить параметры как параметры-переменные, перед ними необходимо поставить зарезервированное слово var, например

function power( var a: real, b: real): real;

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

power(x, 3*sin(x)); или power(x, 3.17);

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

Слайд 205. Параметр-значение, параметр-переменная
Процедуры и функции
var
a, b: integer;
 
procedure inc2(

var c: integer; b: integer );
begin
c

:= c + c; b := b+b;
writeln(‘удвоенные :’, c:5, b:5);
end;
 
begin
a := 5; b := 7;
writeln(‘исходные :’, a:5, b:5);
inc2(a,b);
writeln(‘результат : ’, a:5, b:5);
end.

Результат выполнения программы:
исходные : 5 7
удвоенные : 10 14
результат : 10 7

5. Параметр-значение, параметр-переменная Процедуры и функцииvar a, b: integer; procedure inc2( var c: integer; b: integer ); begin

Слайд 21Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 22 6. Реентерабельность
Процедуры и функции
Реентерабельная, или повторно входимая функция -

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

без риска потери данных.

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

Функция fn не является реентерабельной:
var
temp : integer;
function fn (x,y : integer):integer;
begin
temp := x;
x := y;
y := temp;
fn := x + y;
end;

6. РеентерабельностьПроцедуры и функцииРеентерабельная, или повторно входимая функция - это функция, которая может быть использована более

Слайд 23Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 247. Рекурсия
Процедуры и функции
Реку́рсия — в определении, описании, изображении

какого-либо объекта или процесса внутри самого этого объекта или процесса,

то есть ситуация, когда объект является частью самого себя
7. Рекурсия Процедуры и функцииРеку́рсия — в определении, описании, изображении какого-либо объекта или процесса внутри самого этого

Слайд 257. Рекурсия
Процедуры и функции
Рекурсия – это такой способ организации

вычислительного процесса, при котором подпрограмма в ходе выполнения составляющих её

операторов обращается сама к себе

Пример. Рекурсия. Вычисление факториала
var n: integer;
 function fact(n: integer): integer;
begin
if n=0 then fact := 1
else fact := n * fact(n-1);
end;
 begin
readln(n);
writeln(‘n!=’, fact(n));
end.

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

Слайд 26 7. Рекурсия
Процедуры и функции
const Eps = 0.01; //точность

вычисления корня
 var a,b: real; // границы отрезка
 function y(x: real):real; // задание

функции, корни которой отделяются
begin
y := x + 5;
end;

Пример: Реализовать метод половинного деления на основе рекурсии

7. Рекурсия Процедуры и функцииconst Eps = 0.01; 		//точность вычисления корня var a,b: real;		// границы отрезка function y(x:

Слайд 27 7. Рекурсия
Процедуры и функции
//продолжение
function FindRoot(a,b: real): real;
var
m:

real;
Result: real;
begin
m := (a+b) / 2;
if abs(m-a)>Eps then

if y(a)*y(m)>0 then Result:= FindRoot(m,b)
else Result:= FindRoot(a,m)
else Result := m;
FindRoot := Result;
end; {function FindRoot}
 
begin
writeln('Введите левую и правую границы области поиска, a и b');
readln(a,b);
if y(a)*y(b)>0 then writeln('Нет корней или более одного корня')
else writeln(Корень уравнения: ', FindRoot(a,b));
end.
7. Рекурсия Процедуры и функции//продолжениеfunction FindRoot(a,b: real): real;var m: real; Result: real;beginm := (a+b) / 2;if

Слайд 28 7. Рекурсия
Процедуры и функции
Рекурсия – красивая реализация, но

лучшей ей не пользоваться

7. Рекурсия Процедуры и функцииРекурсия – красивая реализация, но лучшей ей не пользоваться

Слайд 29Процедуры и функции
Понятие подпрограммы;
Стандартные функции и процедуры;
Пользовательские функции и процедуры;
Область

видимости;
Параметр-значение, параметр-переменная;
Реентерабельность;
Рекурсия.
Пример

Процедуры и функцииПонятие подпрограммы;Стандартные функции и процедуры;Пользовательские функции и процедуры;Область видимости; Параметр-значение, параметр-переменная;Реентерабельность;Рекурсия.Пример

Слайд 308. Пример
Процедуры и функции
Разработать продпрогрммы
- вставка элемента

в динамический массив
- удаление элемента из массива
- вывода

на экран элементов массива.

Порядок:
Вывод на экран содержимого массива
Чтение действия: вставка элемента, удаление элемента или выход
Если не выход, то выполнение действия и возврат к п 1.

8. Пример Процедуры и функцииРазработать продпрогрммы - вставка элемента в динамический массив - удаление элемента из массива

Слайд 318. Пример
Процедуры и функции

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

Слайд 328. Пример
Процедуры и функции
Добавьте проверку на адекватность операция вставки

и удаления

8. Пример Процедуры и функцииДобавьте проверку на адекватность операция вставки и удаления

Слайд 338. Пример
Процедуры и функции
var
stop : boolean;
ch, val, pos :

integer;
m : array of integer;
//-------------------------------------------------------
procedure print (m : array of

integer);
var i,N : integer;
begin
N := Length(m);
if N=0 then writeln('Массив пуст') else
for i := 0 to N-1 do write('m[',i,']=',m[i],';');
writeln;
writeln;
writeln;
end; //print
8. Пример Процедуры и функцииvarstop : boolean;ch, val, pos : integer;m : array of integer;//-------------------------------------------------------procedure print (m

Слайд 348. Пример
Процедуры и функции
procedure delete (var m : array

of integer; pos : integer);
var i, N : integer;
begin

N := length(m);
for i := pos to N-2 do m[i] := m[i+1];
SetLength(m,N-1);
end; //delete
//-------------------------------------------------------
procedure insert (var m : array of integer; pos, val : integer);
var i, N : integer;
begin
N := length(m);
SetLength(m,N+1);
N := N + 1;
for i := N-1 downto pos+1 do m[i] := m[i-1];
m[pos] := val;
end; //insert
//-------------------------------------------------------
8. Пример Процедуры и функцииprocedure delete (var m : array of integer; pos : integer);var i, N

Слайд 358. Пример
Процедуры и функции
begin
repeat
print(m);
writeln('Выберите действие(1 - вставка,

2 - удаление, 3 - выход)');
read(ch);
case ch of

1: begin
writeln('Введите номер элемента для вставки и значение');
readln(pos,val);
insert(m,pos,val);
end;
2: begin
writeln('Введите номер элемента для удаления');
readln(pos);
delete(m,pos);
end;
3: stop := true;
end;
until stop;
end.
8. Пример Процедуры и функцииbeginrepeat print(m); writeln('Выберите действие(1 - вставка, 2 - удаление, 3 - выход)'); read(ch);

Слайд 368. Пример
Процедуры и функции
Всегда программа будет работать верно?
Массив пуст
Выберите

действие(1 - вставка, 2 - удаление, 3 - выход)
1
Введите номер

элемента для вставки и значение
0 1
m[0]=1;
Выберите действие(1 - вставка, 2 - удаление, 3 - выход)
1
Введите номер элемента для вставки и значение
0 2
m[0]=2;m[1]=1;
Выберите действие(1 - вставка, 2 - удаление, 3 - выход)
1
Введите номер элемента для вставки и значение
0 3
m[0]=3;m[1]=2;m[2]=1;
Выберите действие(1 - вставка, 2 - удаление, 3 - выход)
1
Введите номер элемента для вставки и значение
1 4
m[0]=3;m[1]=4;m[2]=2;m[3]=1;
Выберите действие(1 - вставка, 2 - удаление, 3 - выход)
8. Пример Процедуры и функцииВсегда программа будет работать верно?Массив пустВыберите действие(1 - вставка, 2 - удаление, 3

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика