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

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


Вашему вниманию предлагается презентация на тему «Подпрограммы в языке Pascal», с которой можно предварительно ознакомиться, просмотреть текст и слайды к ней, а так же, в случае, если она вам подходит - скачать файл для редактирования или печати.

Презентация содержит 30 слайдов и доступна для скачивания в формате ppt. Размер скачиваемого файла: 94.29 KB

Просмотреть и скачать

Pic.1
Подпрограммы В языке Pascal
Подпрограммы В языке Pascal
Pic.2
При создании сложной программы возникает необходимость декомпозиции (разделении) ее на подзадачи. Pa
При создании сложной программы возникает необходимость декомпозиции (разделении) ее на подзадачи. Pascal имеет различные средства для деления программы на части: на верхнем уровне (больших задач) – это модули; на нижнем уровне (элементарных подзадач) – это процедуры и функции.
Pic.3
Все процедуры и функции языка Pascal делятся на две группы: встроенные (стандартные) - хранятся в ст
Все процедуры и функции языка Pascal делятся на две группы: встроенные (стандартные) - хранятся в стандартных библиотечных модулях ; пользовательские - описываются в разделе описаний головной программы.
Pic.4
Подпрограмма-процедура – независимая именованная часть программы, которую можно вызвать по имени для
Подпрограмма-процедура – независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Процедура не может выступать как операнд (данное) в выражении. Упоминание имени процедуры в тексте головной программы приводит к активизации процедуры и называется ее вызовом. Например: Readln(x), Delete(St, 5, 2)
Pic.5
Вызов подпрограмм Головная Delete Insert
Вызов подпрограмм Головная Delete Insert
Pic.6
Подпрограмма-функция предназначена для вычисления какой-либо скалярной (простой) величины. Имя функц
Подпрограмма-функция предназначена для вычисления какой-либо скалярной (простой) величины. Имя функции может входить в выражение как операнд. В теле функции имени функции хотя бы раз должно быть присвоено значение, того же типа, что и результат функции. Например: Ord(‘F’), Sqrt(a+b)
Pic.7
Описание подпрограммы-процедуры 1 Procedure Имя (Список формальных параметров); {Заголовок процедуры
Описание подпрограммы-процедуры 1 Procedure Имя (Список формальных параметров); {Заголовок процедуры} 2 Label Const {раздел описаний локальных (внутренних) данных} Typе Var Procedure Function 3 Begin {операторы процедуры} . . . End;
Pic.8
Описание подпрограммы-функции {Заголовок функции} 1 Function Имя (Список формальных параметров) : ти
Описание подпрограммы-функции {Заголовок функции} 1 Function Имя (Список формальных параметров) : тип результата; 2 Label Const {раздел описаний локальных Type ( внутренних) данных} Var Procedure Function 3 Begin {операторы функции} … Имя:= выражение; End;
Pic.9
где Procedure , Function – служебные слова; Имя – имя пользовательской процедуры/функции; Список фор
где Procedure , Function – служебные слова; Имя – имя пользовательской процедуры/функции; Список формальных параметров – состоит из имен параметров с указанием типов параметров, которые перечисляются через «;». Если несколько параметров имеют один тип, то их можно сгруппировать, разделив имена запятой. Если в качестве параметра используется структурированный тип данных (массив, множество, запись или файл), то он должен быть описан в разделе описаний типов Type головной программы. Список формальных параметров может отсутствовать. Например: type ff=array[1. . 5,1. . 10] of real; Procedure Max( s:ff; k,n:integer);
Pic.10
Тип результата функции– любой простой (вещественный, целочисленный, логический, символьный) , строка
Тип результата функции– любой простой (вещественный, целочисленный, логический, символьный) , строка символов или ранее определенный пользовательский. Тип результата не может быть : массивом, множеством, записью или файлом. Например: Function Factorial (x:byte) :real; Function Perevod ( x: longint) : string;
Pic.11
Результатом вычисления процедуры могут быть несколько величин, в том числе и структурированных типов
Результатом вычисления процедуры могут быть несколько величин, в том числе и структурированных типов (массив, множество, запись, файл или строка). Результат присваивается параметрам-переменным. Перед такими параметрами в списке формальных параметров ставится служебное слово Var, действие которого распространяется до ближайшей точки с запятой. Например: Procedure Kol ( st:string; var k1,k2:integer; var L:Boolean); Выходные параметры
Pic.12
Область видимости переменных Область действия переменной определяется местом ее объявления. Если пер
Область видимости переменных Область действия переменной определяется местом ее объявления. Если переменная используется только в рамках одной процедуры/функции, то она называется локальной. Если действие распространяется на несколько вложенных процедур/функций, то такая переменная называется глобальной.
Pic.13
Локальные данные во внешнем окружении не действуют. Выделение памяти под локальные данные происходит
Локальные данные во внешнем окружении не действуют. Выделение памяти под локальные данные происходит автоматически в начале выполнения подпрограммы, а освобождение – после выполнения последнего оператора подпрограммы. Если имена глобальных и локальных идентификаторов совпадают, то действует только внутренний локальный идентификатор.
Pic.14
Program primer; Var a,b,c: real; {глобальные} Procedure A1 (); Var a1, b1, c1 : real; Procedure A2 (
Program primer; Var a,b,c: real; {глобальные} 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.
Pic.15
Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические – в
Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические – выражения, задающие конкретные значения при обращении к подпрограмме. В момент замены формальных параметров фактическими должны выполняться следующие условия: количество формальных и фактических параметров должно быть одинаковым; должен совпадать порядок следования параметров; должны совпадать их типы.
Pic.16
Классификация способов передачи параметров (формальных) по механизму передачи: передача по значению
Классификация способов передачи параметров (формальных) по механизму передачи: передача по значению – value; передача по адресу (ссылке) – adr.
Pic.17
2. по взаимодействию вызываемой и вызывающей подпрограмм: только как входной параметр- in (input); т
2. по взаимодействию вызываемой и вызывающей подпрограмм: только как входной параметр- in (input); только как выходной параметр – out (output); как входной и как выходной параметр – in/out (input|output).
Pic.18
Возможные способы передачи формальных параметров Value – in (параметры-значения) Value - out Value –
Возможные способы передачи формальных параметров Value – in (параметры-значения) Value - out Value – in/out Adr – in (параметры-константы) Adr – out Adr – in/out (параметры-переменные)
Pic.19
Параметры-значения Перед параметрами-значениями (value-in) в списке формальных параметров дополнител
Параметры-значения Перед параметрами-значениями (value-in) в списке формальных параметров дополнительных служебных слов не ставится. В качестве фактических параметров нельзя использовать файловый тип Например: Function S ( a,b,c:real):real; нет служебных слов
Pic.20
Параметры-значения передается копия значения фактического параметра В ячейки памяти формального пара
Параметры-значения передается копия значения фактического параметра В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия значения фактического параметра и обратно не возвращается.
Pic.21
Параметры-константы Перед параметрами-константами (adr-in) в списке формальных параметров ставится с
Параметры-константы Перед параметрами-константами (adr-in) в списке формальных параметров ставится служебное слово Const Например: Type mas=array[1. . 100] of real; Procedure Pl(Const a:mas; n:integer); В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия адреса фактического параметра. В качестве фактических параметров нельзя использовать файловый тип данных.
Pic.22
Параметры-константы
Параметры-константы
Pic.23
Параметры-переменные Перед параметрами-переменными (adr-inout) в списке формальных параметров ставит
Параметры-переменные Перед параметрами-переменными (adr-inout) в списке формальных параметров ставится служебное слово 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 ); параметры- параметры- параметры- константы значения переменные
Pic.24
Параметры-переменные В ячейки памяти формального параметра, выделенные при вызове подпрограммы, пере
Параметры-переменные В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия адреса фактического параметра По имеющемуся адресу разрешено считывать значение фактического параметра и изменять его. Изменение значений в ячейках памяти фактических параметров происходит во время выполнения операторов подпрограммы. В качестве фактических параметров можно использовать любой тип данных.
Pic.25
Параметры-переменные
Параметры-переменные
Pic.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;
Pic.27
Задача: Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для натурал
Задача: Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для натуральных чисел n и m. Х!=1*2*. . . *Х
Pic.28
Алгоритм Алгоритм подпрограммы-процедуры головной программы
Алгоритм Алгоритм подпрограммы-процедуры головной программы
Pic.29
Program z1; Var n,m:integer; C,P,Fn,Fm: real; {процедура нахождения факториала числа х} Procedure fa
Program z1; Var n,m:integer; C,P,Fn,Fm: real; {процедура нахождения факториала числа х} 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.
Pic.30
С использованием подпрограммы-функции Factor Алгоритм Алгоритм Подпрограммы-функции головной програм
С использованием подпрограммы-функции Factor Алгоритм Алгоритм Подпрограммы-функции головной программы


Скачать презентацию

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