Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Подпрограммы в языке Pascal

Содержание

При создании сложной программы возникает необходимость декомпозиции (разделении) ее на подзадачи. Pascal имеет различные средства для деления программы на части: на верхнем уровне (больших задач) – это модули; на нижнем уровне (элементарных подзадач) – это процедуры
ПодпрограммыВ языке Pascal При создании сложной программы возникает необходимость декомпозиции (разделении) ее на подзадачи. 		Pascal Все процедуры и функции языка Pascal делятся на две группы:встроенные (стандартные) - Подпрограмма-процедура – независимая именованная часть программы, которую можно вызвать по имени для Вызов подпрограммГоловная				   Delete													Insert Подпрограмма-функция предназначена для вычисления какой-либо скалярной (простой) величины. 		Имя функции может входить 1    Procedure Имя (Список формальных параметров); {Заголовок процедуры}2 Описание подпрограммы-функции					 {Заголовок функции}1  Function Имя (Список формальных параметров) : гдеProcedure , Function – служебные слова;Имя – имя пользовательской процедуры/функции;Список формальных параметров Тип результата функции– любой простой (вещественный, целочисленный, логический, символьный) , строка символов Результатом вычисления процедуры могут быть несколько величин, в том числе и структурированных Область видимости переменныхОбласть действия переменной определяется местом ее объявления. Если переменная используется Локальные данные во внешнем окружении не действуют. Выделение памяти под локальные данные Program primer;Var a,b,c: real; Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические – Классификация способов передачи параметров (формальных)по механизму передачи: передача по значению – value;передача 2.  по взаимодействию вызываемой и  вызывающей подпрограмм:только как входной параметр- Возможные способы передачи формальных параметровValue – in     (параметры-значения)Value Параметры-значенияПеред параметрами-значениями (value-in) в списке формальных параметров дополнительных служебных слов не ставится.В Параметры-значения							    передается копия значения 			    фактического Параметры-константыПеред параметрами-константами (adr-in) в списке формальных параметров ставится служебное слово ConstНапример:			Type mas=array[1..100] Параметры-константыПо имеющемуся адресу разрешено только считывать значение фактического параметра, а изменять запрещено. Параметры-переменныеПеред параметрами-переменными (adr-inout) в списке формальных параметров ставится служебное слово Var.Например:Type ff=file Параметры-переменные В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия Параметры-переменныеФактическиепараметрыФормальныепараметрыПередается копия адреса фактического параметраПо имеющемуся адресу разрешено считывать значение фактического параметра Процедура Exit( ) – используется для досрочного выхода из подпрограммыНапример:Описать функцию, определяющую Задача:Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для натуральных чисел n и m. 		Х!=1*2*. . .*Х Алгоритм				   Алгоритм подпрограммы-процедуры Program z1;Var n,m:integer;  C,P,Fn,Fm: real;{процедура нахождения факториала числа х}Procedure fact(x:integer; var С использованием подпрограммы-функции Factor    Алгоритм					АлгоритмПодпрограммы-функции			    головной программы
Слайды презентации

Слайд 2
При создании сложной программы возникает необходимость декомпозиции (разделении)

При создании сложной программы возникает необходимость декомпозиции (разделении) ее на подзадачи.

ее на подзадачи.
Pascal имеет различные средства для деления

программы на части:
на верхнем уровне (больших задач) – это модули;
на нижнем уровне (элементарных подзадач) – это процедуры и функции.


Слайд 3
Все процедуры и функции языка Pascal делятся на

Все процедуры и функции языка Pascal делятся на две группы:встроенные (стандартные)

две группы:
встроенные (стандартные) - хранятся в стандартных библиотечных модулях

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


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

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

вызвать по имени для выполнения определенных действий.
Процедура не

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

Например: Readln(x), Delete(St, 5, 2)


Слайд 5 Вызов подпрограмм
Головная Delete






Insert

Вызов подпрограммГоловная				  Delete													Insert

Слайд 6
Подпрограмма-функция предназначена для вычисления какой-либо скалярной (простой) величины.

Подпрограмма-функция предназначена для вычисления какой-либо скалярной (простой) величины. 		Имя функции может


Имя функции может входить в выражение как операнд. В

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

Например: Ord(‘F’), Sqrt(a+b)


Слайд 7 1 Procedure Имя (Список формальных

1  Procedure Имя (Список формальных параметров); {Заголовок процедуры}2

параметров); {Заголовок процедуры}
2 Label

Const {раздел описаний локальных (внутренних) данных}
Typе
Var
Procedure
Function

3 Begin {операторы процедуры}
. . .
End;




Описание подпрограммы-процедуры




Слайд 8 Описание подпрограммы-функции
{Заголовок функции}
1 Function Имя (Список

Описание подпрограммы-функции					 {Заголовок функции}1 Function Имя (Список формальных параметров) :

формальных параметров) : тип результата;


2 Label
Const {раздел описаний локальных
Type ( внутренних) данных}
Var
Procedure
Function

3 Begin {операторы функции}

Имя:= выражение;
End;




Слайд 9 где
Procedure , Function – служебные слова;
Имя – имя

гдеProcedure , Function – служебные слова;Имя – имя пользовательской процедуры/функции;Список формальных

пользовательской процедуры/функции;
Список формальных параметров – состоит из имен параметров

с указанием типов параметров, которые перечисляются через «;». Если несколько параметров имеют один тип, то их можно сгруппировать, разделив имена запятой. Если в качестве параметра используется структурированный тип данных (массив, множество, запись или файл), то он должен быть описан в разделе описаний типов Type головной программы. Список формальных параметров может отсутствовать.
Например: type ff=array[1..5,1..10] of real;
Procedure Max( s:ff; k,n:integer);


Слайд 10
Тип результата функции– любой простой (вещественный, целочисленный, логический,

Тип результата функции– любой простой (вещественный, целочисленный, логический, символьный) , строка

символьный) , строка символов или ранее определенный пользовательский.
Тип

результата не может быть : массивом, множеством, записью или файлом.

Например: Function Factorial (x:byte) :real;
Function Perevod ( x: longint) : string;

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

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

том числе и структурированных типов (массив, множество, запись, файл

или строка).
Результат присваивается параметрам-переменным. Перед такими параметрами в списке формальных параметров ставится служебное слово Var, действие которого распространяется до ближайшей точки с запятой.

Например:
Procedure Kol ( st:string; var k1,k2:integer; var L:Boolean);
 
Выходные параметры



Слайд 12 Область видимости переменных
Область действия переменной определяется местом ее

Область видимости переменныхОбласть действия переменной определяется местом ее объявления. Если переменная

объявления.
Если переменная используется только в рамках одной процедуры/функции,

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

Слайд 13

Локальные данные во внешнем окружении не действуют.
Выделение

Локальные данные во внешнем окружении не действуют. Выделение памяти под локальные

памяти под локальные данные происходит автоматически в начале выполнения

подпрограммы, а освобождение – после выполнения последнего оператора подпрограммы.
Если имена глобальных и локальных идентификаторов совпадают, то действует только внутренний локальный идентификатор.


Слайд 14
Program primer;
Var a,b,c: real;

Program primer;Var a,b,c: real;      {глобальные}Procedure A1

{глобальные}
Procedure A1 ();
Var

a1, b1, c1 : real;
Procedure A2 ();
var a2, b2, c2 : real; {локальные}
begin {операторы п /п А2}
a, b, c, a1,b1, c1, a2,b2, c2
end;
Begin {операторы п/п А1}
a, b, c, a1,b1, c1
End;
Begin {операторы основной программы}
a, b, c
End.






Слайд 15
Различают формальные параметры – параметры, определенные в заголовке

Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические

подпрограммы, и фактические – выражения, задающие конкретные значения при

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



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

передача

Классификация способов передачи параметров (формальных)по механизму передачи: передача по значению –

по значению – value;
передача по адресу (ссылке) – adr.


Слайд 17
2. по взаимодействию вызываемой и вызывающей

2. по взаимодействию вызываемой и вызывающей подпрограмм:только как входной параметр- in

подпрограмм:
только как входной параметр- in (input);
только как выходной параметр

– out (output);
как входной и как выходной параметр – in/out (input|output).


Слайд 18 Возможные способы передачи формальных параметров
Value – in

Возможные способы передачи формальных параметровValue – in   (параметры-значения)Value -

(параметры-значения)
Value - out
Value – in/out
Adr –

in (параметры-константы)
Adr – out
Adr – in/out (параметры-переменные)


Слайд 19 Параметры-значения
Перед параметрами-значениями (value-in) в списке формальных параметров дополнительных

Параметры-значенияПеред параметрами-значениями (value-in) в списке формальных параметров дополнительных служебных слов не

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

файловый тип
Например:

Function S ( a,b,c:real):real;

нет служебных слов

Слайд 20 Параметры-значения





передается копия значения

Параметры-значения							  передается копия значения 			  фактического параметраВ ячейки памяти

фактического параметра

В ячейки памяти формального параметра,

выделенные при вызове подпрограммы, передается копия значения фактического параметра и обратно не возвращается.


Слайд 21 Параметры-константы
Перед параметрами-константами (adr-in) в списке формальных параметров ставится

Параметры-константыПеред параметрами-константами (adr-in) в списке формальных параметров ставится служебное слово ConstНапример:			Type

служебное слово Const
Например:
Type mas=array[1..100] of real;
Procedure Pl(Const a:mas;

n:integer);

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


Слайд 22 Параметры-константы
По имеющемуся адресу разрешено только считывать значение фактического

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

параметра, а изменять запрещено.


Слайд 23 Параметры-переменные
Перед параметрами-переменными (adr-inout) в списке формальных параметров ставится

Параметры-переменныеПеред параметрами-переменными (adr-inout) в списке формальных параметров ставится служебное слово Var.Например:Type

служебное слово Var.

Например:
Type ff=file of real;
massiv= array[1..20,1..30]

of char;
. . .
Procedure poisk ( Const a:massiv; n,k:integer; Var x:ff );
параметры- параметры- параметры-
константы значения переменные




Слайд 24 Параметры-переменные
В ячейки памяти формального параметра, выделенные при

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

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

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


Слайд 25 Параметры-переменные


Фактические
параметры
Формальные
параметры
Передается копия адреса фактического параметра
По имеющемуся адресу разрешено

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

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

возврат результата

Слайд 26 Процедура Exit( ) – используется для досрочного выхода

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

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

mas=array[1..100] of real;
Function minus ( Const b:mas; n:integer) : real;
Var i:integer; {описание локальных данных}
Begin
minus:=0; {функции присваивается значение}
For i:=1 to n do
If b[i]<0 then begin
minus:=b[i]; {функции присваивается значение}
Exit {досрочное завершение функции}
end;
end;


Слайд 27
Задача:
Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для

Задача:Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для натуральных чисел n и m. 		Х!=1*2*. . .*Х

натуральных чисел n и m.
Х!=1*2*. . .*Х


Слайд 28 Алгоритм

Алгоритм				  Алгоритм подпрограммы-процедуры	    головной программыС использованием подпрограммы-процедуры Fact

Алгоритм
подпрограммы-процедуры

головной программы

С использованием подпрограммы-процедуры Fact


Слайд 29
Program z1;
Var n,m:integer;
C,P,Fn,Fm: real;
{процедура нахождения факториала

Program z1;Var n,m:integer; C,P,Fn,Fm: real;{процедура нахождения факториала числа х}Procedure fact(x:integer; var

числа х}
Procedure fact(x:integer; var p:real);
Var i:integer; {локальные данные}
Begin

P:=1;
For i:=1 to x do
P:=P*i {p-результат выполнения процедуры}
End;
 
{операторы головной программы}
Begin
Writeln(‘введите n, m’);
Readln(n,m);
Fact(n,Fn); {Fn -факториал числа n}
Fact(m,Fm); {Fm- факториал числа m}
Fact(n-m,P); { p- факториал числа n-m}
C:=Fn/(Fm*P);
Writeln(‘биноминальный коэффициент =’, C:8:1)
End.


  • Имя файла: podprogrammy-v-yazyke-pascal.pptx
  • Количество просмотров: 121
  • Количество скачиваний: 0