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


Pascal

Содержание

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

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

Слайд 1Подпрограммы
Pascal

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

Слайд 2Подпрограммы
Подпрограмма – это одно из базовых средств описания действий, которое

позволяет реализовывать вспомогательные алгоритмы.
Выделяют два вида подпрограмм:
процедуры
функции
В файле программы (или

модуля) может быть только один основной блок, а в разделе описания могут определятся дополнительные блоки (подпрограммы).

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

Слайд 3Назначение подпрограмм
Основа для реализации структурного подхода
Средство для уменьшения сложности структуры

программы
Средство для экономии памяти:
рациональная запись кода и его использование при

вызовах подпрограмм (подпрограмма существует в единичных экземплярах, а вызываться может многократно);
выделение памяти под хранение значений объектов данных, описанных в подпрограмме (как только подпрограмма начинает работу – память выделяется, как заканчивает - освобождается)
Назначение подпрограммОснова для реализации структурного подходаСредство для уменьшения сложности структуры программыСредство для экономии памяти:рациональная запись кода и

Слайд 4Область действия (видимости)
Блок в общем случае обеспечивает выполнение двух основных

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

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

Область действия (видимости)Блок в общем случае обеспечивает выполнение двух основных функции:резервирование области памяти для создания в ней

Слайд 5Область действия (видимости)
Областью действия описания любого программного объекта (переменной, типа,

константы и т.д.) является тот блок, в котором расположено это

описание.
Если данный блок вложен в другой (подпрограмма), то присутствующие в нем описания являются локальными. Они действуют только в пределах внутреннего блока.
Описания сделанные во внешнем блоке видны в любом внутреннем блоке и их область видимости глобальна (по отношению к внутреннему блоку).
Область действия (видимости)Областью действия описания любого программного объекта (переменной, типа, константы и т.д.) является тот блок, в

Слайд 6PROGRAM Prog;
Var V1: integer;
Procedure A;
Var V2: integer;


Begin … end;
Procedure B;
Var V3: integer;

Procedure B1;
Var V4: integer;
Begin … end;
Begin … end;
Var V5: integer;
BEGIN … END.

PROGRAM Prog;
Var V1: integer;












Var V5: integer;

Procedure A;
Var V2: integer;

Procedure B;
Var V3: integer;





Procedure B1;
Var V4: integer;

PROGRAM Prog;Var V1: integer;Procedure A;   Var V2: integer; Begin … end; Procedure B;  Var

Слайд 7Время жизни объектов данных
При передачи управления в данный блок создаются

все описанные в нем объекты данных, а затем выполняются последовательность

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

Слайд 8Функции
Функции представляют собой группу операторов, в результате выполнения которых вычисляется

одно значение, присваиваемое имени функции.
Описание функции включает в себя следующие

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

Слайд 9Формат описания функции:
Function F (q1:T1; q2:T2;…) : T;

типов, констант, описания вложенных процедур и функций>;
Begin
;
F:=;
End;
F-

имя функции;
qi- имена формальных параметров;
Ti- типы параметров;
Т – тип, возвращаемого функцией значения
Формат описания функции:Function F (q1:T1; q2:T2;…) : T;	;Begin;F:=;End;F- имя функции;  qi- имена формальных параметров;Ti- типы параметров;Т

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

вычислений.
В дальнейшем они заменяются конкретным значением (аргументом) от которого

мы хотим вычислить функцию.
Например, в математике: f(x):=3x-5
x - формальный параметр
Величину, для которой необходимо вычислить значение функции будем называть фактическим параметром.
F(5) a=7; F(a)
5 и a – фактические аргументы.
ФункцииПараметры, фигурирующие в описании подпрограммы называются формальными. Они задают форму вычислений. В дальнейшем они заменяются конкретным значением

Слайд 11Функции
Список параметров и локальных описаний не обязательны. Если список параметров

отсутствует, то скобки после имени функции не ставятся.
Возвращаемое значение в

теле функции может присваиваться или имени функции или специальной предопределенной системной переменной Result, которую не нужно описывать, но которой можно пользоваться в теле функции.
ФункцииСписок параметров и локальных описаний не обязательны. Если список параметров отсутствует, то скобки после имени функции не

Слайд 12Функции
Использование переменной Result имеет одно принципиальное отличие от имени функции.

Имя функции – это не переменная. Оно может фигурировать только

в левой части оператора присваивания, и не может входить ни в какие выражения. А Result – это переменная.
ФункцииИспользование переменной Result имеет одно принципиальное отличие от имени функции. Имя функции – это не переменная. Оно

Слайд 13Вызов функции
Обращение к функции обычно осуществляется в правой части оператора

присваивания, указывая имя функции и фактические параметры в виде
A:=f(b1,b2,…);
где bi

– фактические параметры.
При этом, возвращаемое функцией значение, замещает в операторе имя вызванной функции.
Вызов функцииОбращение к функции обычно осуществляется в правой части оператора присваивания, указывая имя функции и фактические параметры

Слайд 14Function Max (x, y: real): Real;
Begin
If x>y Then

max: =x

Else
max:=y;
End;
или
Function Max (x, y: real): Real;
Begin
If x>y Then Result: =x
Else
Result: =y;
End;
Function Max (x, y: real): Real;Begin  If x>y Then max: =x

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

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

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

Слайд 16Формат описания процедуры:
Procedure H (q1:t1; var q2:t2;…);

констант, описания вложенных процедур и функций>;
Begin
;
End;
H – имя

процедуры;
qi- имена формальных параметров;
Ti- типы параметров;

Формат описания процедуры:Procedure H (q1:t1; var q2:t2;…);;Begin;End;H – имя процедуры;qi- имена формальных параметров;Ti- типы параметров;

Слайд 17Вызов процедуры
Вызов процедуры осуществляется с помощью указания имени процедуры

и списка фактических параметров.
H(b1,b2,…);
Если процедура и основная программа связаны с

помощью глобальных переменных, то процедура может быть организована и без параметров.
Вызов процедуры 	Вызов процедуры осуществляется с помощью указания имени процедуры и списка фактических параметров.	H(b1,b2,…);	Если процедура и основная

Слайд 18Примеры
Program my1;
Var p1,p2,p5: real; p3:char; p4:integer;

Procedure SP(a: Real; b: Integer;

с: Char);
Begin if c=‘/’ then writeln(a/b)
else writeln(a-b)
End;

Function

F(a: Real; b: Real): Real;
Begin
if a>b then f:=a else f:=b
End;

BEGIN
readln(p1,p2,p3,p4);
SP(p1,p4,p3);
p5:=f (p1,p2)
SP(p5,p4,p3);
END.
ПримерыProgram my1;Var p1,p2,p5: real; p3:char; p4:integer;Procedure SP(a: Real; b: Integer; с: Char);	Begin if c=‘/’ then writeln(a/b)

Слайд 19Перекрытие идентификаторов
Имена локальных переменных могут перекрывать область видимости одноименных глобальных

переменных.
При этом все операции с объектом данных под данным

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

Слайд 20Пример перекрытия
Program my2;
const a:byte=1; //глобальная константа
Procedure AA;
const a:integer=2;//локальная переменная
Begin
write(a);
End;
Begin
AA
end.


Пример перекрытияProgram my2;const a:byte=1; //глобальная константаProcedure AA;const a:integer=2;//локальная переменнаяBegin	write(a);End;Begin	AAend.

Слайд 21Опережающее описание подпрограмм
Разделы описаний в блоке могут произвольно располагаться много

раз открываться. Но при этом в вышележащих описаниях нельзя использовать

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

Слайд 22Пример опережающего описания
Procedure B: forward;
Procedure A;
Begin
B
End;
Procedure B;
Begin
A
End;

Пример опережающего описанияProcedure B: forward; Procedure A;Begin	BEnd;Procedure B;Begin	AEnd;

Слайд 23Пример опережающего
var i:integer;
Procedure B;forward;
Procedure A;
Begin
B;
i:=i+1;
End;
Procedure B;
Begin
i:=i+2;
End;

Procedure C;
Begin

A;
B;
i:=i+3;
End;
Begin
i:=1;
C;
write(i);
readln;
end.

Пример опережающего var i:integer;Procedure B;forward;Procedure A;Begin	B; i:=i+1;End;Procedure B;Begin i:=i+2;End;Procedure C;Begin A; B; i:=i+3;End;Begin i:=1; C; write(i); readln;end.

Слайд 24Виды параметров
При вызове подпрограммы ей можно передавать и из нее

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

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

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

Слайд 25При подстановки фактических параметров на место формальных должны соблюдаться следующие

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

соответствию.


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

Слайд 26Классификация параметров
По механизму передачи:
передача по значению (value);
передача по адресу (addr).
По

функциональному предназначению
только как входной параметр (in);
только как выходной параметр (out);
и

как входной и как выходной параметр (inout).

Классификация параметровПо механизму передачи:передача по значению (value);передача по адресу (addr).По функциональному предназначениютолько как входной параметр (in);только как

Слайд 27Способы передачи параметров
Теоретически возможны 6 способов передачи параметров:
value in
value out
value

inout
addr in
addr out
addr inout

Способы передачи параметровТеоретически возможны 6 способов передачи параметров:value invalue outvalue inoutaddr inaddr outaddr inout

Слайд 28Способы передачи параметров
В Object Pascal поддерживаются четыре способа передачи параметров:
value

in (передача по значению)
addr out (передача параметров как выходных параметров)
addr

inout (передача параметров как переменных)
addr in (передача параметров как констант)
Способы передачи параметровВ Object Pascal поддерживаются четыре способа передачи параметров:value in (передача по значению)addr out (передача параметров

Слайд 291. Передача по значению.
Параметры значения определяют исходные данные для работы

процедур и функций. В списке формальных параметров они описываются в

следующем виде:
procedure my1(q1:T1; q2:T2) или
procedure my2(q1,q2:T)
При вызове подпрограммы фактический параметр, может быть любым выражением, результат вычисления которого принадлежит тому же типу, что и формальный параметр.
1. Передача по значению.Параметры значения определяют исходные данные для работы процедур и функций. В списке формальных параметров

Слайд 30Передача по значению
При обращении к подпрограмме выражение вычисляется. В памяти

создаются временные переменные с именами q1 и q2, и в

них копируется результат вычислений.
Изменение значений переменных q1 и q2 в теле подпрограммы никак не влияет на значения переменных из основной программы.
При выходе из подпрограммы формальные переменные q1 и q2 уничтожаются.
Передача по значениюПри обращении к подпрограмме выражение вычисляется. В памяти создаются временные переменные с именами q1 и

Слайд 312. Передача параметров как переменных
Параметры переменные позволяют передавать в основную

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

помощью указания перед ними ключевого слова var. Например:
procedure my3 (var q1, q2:t1; var q3:t2) ;
2. Передача параметров как переменныхПараметры переменные позволяют передавать в основную программу измененные значения.Параметры переменные в списке формальных

Слайд 32Передача параметров как переменных
При обращении к подпрограмме фактические параметры должны

быть обязательно переменными, того же типа, что и формальные параметры.
В

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

Слайд 333. Передача параметров как констант
Передача параметра как константы осуществляется заданием

перед его описанием ключевого слова const.
procedure my4 (const q1:t1);
Параметры константы

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

3. Передача параметров как константПередача параметра как константы осуществляется заданием перед его описанием ключевого слова const.procedure my4

Слайд 344. Передача параметров как выходных параметров
Выходные параметры описываются с помощью

зарезервированного слова out.
procedure my5(out q1:t1);
Выходные параметры по механизму передачи похожи

на параметры переменные, но при этом в подпрограмму не передается начальное значение этого параметра, т.е. память, занимаемая соответствующей переменной, указанной при вызове подпрограмме на месте q1, будет очищена при вызове подпрограммы.
4. Передача параметров как выходных параметровВыходные параметры описываются с помощью зарезервированного слова out.procedure my5(out q1:t1);Выходные параметры по

Слайд 35Перегрузка подпрограмм
Можно определить в одной и той же области видимости

несколько подпрограмм с одинаковыми именами, но различными по числу и

типу параметрами.
Для этого в описании заголовка каждой из этих подпрограмм необходимо указать директиву (ключевое слово) OVERLOAD.
При вызове компилятор проанализирует передаваемые параметры, их число и тип и вызовет ту из них, которая подойдет по данным параметрам.
Перегрузка подпрограммМожно определить в одной и той же области видимости несколько подпрограмм с одинаковыми именами, но различными

Слайд 36procedure my_1 (i:integer); overload;
begin
writeln(‘integer - ’,i);
end;
procedure my_2 (var c:char); overload;
begin
write(‘vvedite:’);
readln(c);
writeln(‘char

- ’,c);
end;
var ch:char;
begin
my_1(7);
my_2(ch);
end.

procedure my_1 (i:integer); overload;begin	writeln(‘integer - ’,i);end;procedure my_2 (var c:char); overload;begin	write(‘vvedite:’);	readln(c);	writeln(‘char - ’,c);end;var ch:char;begin	my_1(7);	my_2(ch);end.

Слайд 37Пример использования функции
program Podpr1;

uses
SysUtils;
var x,y,z, max3: integer;

Function Max2(a,b:integer):integer;
begin

if a>b then

max2:=a
else max2:=b;
end;

Пример использования функцииprogram Podpr1;uses SysUtils;var x,y,z, max3: integer;Function Max2(a,b:integer):integer; begin    if a>b then

Слайд 38begin
writeln ('POISK max in 3 numbers');
writeln ('Your 3

numbers, please:');
readln (x,y,z);
max3:=max2(max2(x,y),z);
writeln ('the max is ',

max3);
readln;
end.
begin writeln ('POISK max in 3 numbers'); writeln ('Your 3 numbers, please:'); readln (x,y,z); max3:=max2(max2(x,y),z); writeln ('the

Слайд 39Пример использования процедуры
program Podpr2;
uses SysUtils;
var x,y,z: integer;
procedure Sort2(var a,b:integer);
var

c:integer;
begin
if a>b then

begin
c:=a;
a:=b;
b:=c
end;
end;


begin
writeln ('Sortirovka 3 numbers');
writeln ('Your 3 numbers, please:');
readln (x,y,z);
sort2 (x,y);
sort2 (y,z);
sort2 (x,y);
writeln ('Result of sort is ', x:10, y:10,z:10);
readln;
end.

Пример использования процедурыprogram Podpr2;uses SysUtils;var x,y,z: integer;procedure Sort2(var a,b:integer); var c:integer; begin    if a>b

Слайд 40begin
writeln ('Sortirovka 3 numbers');
writeln ('Your 3 numbers, please:');

readln (x,y,z);
sort2 (x,y);
sort2 (y,z);
sort2 (x,y);
writeln ('Result

of sort is ', x:10, y:10,z:10);
readln;
end.
begin writeln ('Sortirovka 3 numbers'); writeln ('Your 3 numbers, please:'); readln (x,y,z); sort2 (x,y); sort2 (y,z); sort2

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

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

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

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

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


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

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