ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ Подпрограмма

Скачать презентацию ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ  Подпрограмма Скачать презентацию ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ Подпрограмма

9_procedury_i_funkcii_.pptx

  • Размер: 83.5 Кб
  • Автор:
  • Количество слайдов: 13

Описание презентации ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ Подпрограмма по слайдам

ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ  Подпрограмма  – это часть программы,  оформленнаяПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ Подпрограмма – это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем.

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

procedure  Имя ( var параметр1: тип 1 ; var  параметр2: тип 2;procedure Имя ( var параметр1: тип 1 ; var параметр2: тип 2; . . . ; var параметр. K. : тип. К); (формальные параметры) var {здесь объявления внутренних переменных процедуры} begin {здесь инструкции процедуры} end; Указанные в объявлении процедуры параметры являются формальными параметрами. Слово var , стоящее перед именем параметра, не является обязательным. Однако если оно стоит, то это означает, что при вызове процедуры параметром должна быть переменная основной программы, при этом изменение параметра внутри процедуры приведет к изменению значения переменной основной программы, указанной в качестве фактического параметра при вызове процедуры. Использование параметров-переменных позволяет использовать процедуры для изменения значений переменных основной программы. Объявление процедуры программиста в общем виде :

Имя(Список. Параметров); где Имя —  имя вызываемой процедуры;  Список. Параметров — разделенныеИмя(Список. Параметров); где Имя — имя вызываемой процедуры; Список. Параметров — разделенные запятыми фактические параметры , в качестве которых, в зависимости от описания параметров в объявлении процедуры, могут быть использованы константа, переменная или выражение. Инструкция вызова процедуры в общем виде:

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

ПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ  Запишите Глобальные переменные – это переменные, объявленные вПРОЦЕДУРЫ И ФУНКЦИИ В ПАСКАЛЕ Запишите Глобальные переменные – это переменные, объявленные в описании основной части программы и действующие в любой ее части. Локальные переменные – те, которые объявлены в подпрограмме (процедуре или функции) и действующие лишь в ней. Фактические параметры – это переменные, которые передаются процедуре при обращении к ней. Формальные параметры – это переменные фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических параметров, над которыми производятся действия. Число и тип формальных и фактический параметров должны совпадать с точностью до их следования.

Пример.  Вычисление площади круга и длины окружности по значению радиуса.  Используется процедураПример. Вычисление площади круга и длины окружности по значению радиуса. Используется процедура программиста Okr. program prozedura 1; Var {переменные основной процедуры} r, l, s: real; { радиус, длина и площадь окружности } {Процедура программиста} procedure Okr(r: real; var s: real; var l: real ); {r – радиус (задаем, поэтому var не пишем), s – пл. круга, l — длина окр. Вычисляем, пишем var} begin s: =pi*r*r; l: =2*pi*r; end; { Основная программа } begin writeln(‘Вычисление длины окружности и площади круга: ‘); write(‘Задайте радиус и нажмите ‘); readln(r); l: =0; s: =0; Okr(r, s, l ); {Вызов процедуры, переменные программы – фактические параметры процедуры} writeln(‘Радиус окружности: ‘, r: 6: 3); writeln(‘Длина: ‘, l: 6: 3, ‘, площадь: ‘, s: 7: 3); end.

Пример.  Четырехугольник задан четырьмя своими сторонами a, b, c, d, и диагональю f.Пример. Четырехугольник задан четырьмя своими сторонами a, b, c, d, и диагональю f. С помощью процедуры вычисления площади треугольника по трем сторонам, вычислить площадь заданного четырехугольника. Площадь треугольника определим по формуле Герона: p — полупериметр, который вычисляется по формуле: x, y, z — стороны треугольника

Program pl; Var a, b, c, d, f, s 1, s 2, s: real;Program pl; Var a, b, c, d, f, s 1, s 2, s: real; (фактические параметры) Procedure treug(x, y, z: real; var s: real); ( формальные параметры ) Var p: real; Begin P : = (x + y + z)/2; S : = sqrt(p*(p — x)*(p — y)*(p — z)); End; Begin Writeln(‘Введите стороны четырехугольника и диагональ: ‘); Readln(a, b, c, d, f); ( фактические параметры ) Treug(a, b, f, s 1); {2 стороны треугольника a и b, диагональ f и площадь s} Treug(c, d, f, s 2); {2 стороны треугольника c и d, диагональ f и площадь s} s : = s 1 + s 2; Write(‘Площадь четырехугольника = ‘, s: 5: 2); End. Введите стороны 4 -x угольника и диагональ: 4 2. 5 6 3. 5 4. 5 Площадь 4 -xугольника = 12.

Функция – это подпрограмма, предназначенная для того, чтобы вычислять только одно значение.  ТакжеФункция – это подпрограмма, предназначенная для того, чтобы вычислять только одно значение. Также функции отличаются от процедур: • Заголовком; • В теле функции обязательно должен присутствовать оператор присваивания, где в левой части стоит имя функции, а в правой – ее значение. Иначе, значение не будет определено; • Обращением к функции не оператор, а выражение. Function (): ; begin : =; end; Пример. Четырехугольник задан четырьмя своими сторонами a, b, c, d, и диагональю f. С помощью функции вычисления площади треугольника по трем сторонам, вычислить площадь заданного четырехугольника.

Program pl 2; Var a, b, c, d, f, s: real;  Function PL_t(x,Program pl 2; Var a, b, c, d, f, s: real; Function PL_t(x, y, z : real): real; входные параметры Var p: real; Begin P : = (x + y + z)/2; Pl_t : = sqrt(p*(p — x)*(p — y)*(p — z)); End; Begin Writeln(‘Введите стороны четырехугольника и диагональ: ‘); Readln(a, b, c, d, f); S : = Pl_t(a, b, f)+Pl_t(c, d, f); Write(‘Площадь четырехугольника = ‘, s: 5: 2); End. Пример. Четырехугольник задан четырьмя своими сторонами a, b, c, d, и диагональю f. С помощью функции вычисления площади треугольника по трем сторонам, вычислить площадь заданного четырехугольника.

Пример:  Написать программу для нахождения значения функции y=sin x-1,  где х изменяетсяПример: Написать программу для нахождения значения функции y=sin x-1, где х изменяется от pi/2 до 2 pi с шагом pi/12. Вычисление у оформить в виде функции. program f_2; { Вычисление значений у} var x, y: real; function f(x: real): real; begin f: =sin(x)-1; end; begin writeln(‘ x y’); writeln(‘————‘); x : = pi/2; » repeat {повторять до тех пор, пока} y: =f(x); writeln(x: 6: 2, y: 15: 6); x : = x+pi/12; until x>2*pi; {не станет истинным условие} writeln(‘————‘); readln; end. x y ———— 1. 57 0. 000000 1. 83 -0. 034074 2. 09 -0. 133975 2. 36 -0. 292893 2. 62 -0. 500000 2. 88 -0. 741181 3. 14 -1. 000000 3. 40 -1. 258819 3. 67 -1. 500000 3. 93 -1.

Рекурсия в Паскале Алгоритм называется рекурсивным , если в качестве вспомогательного алгоритма (подпрограммы) онРекурсия в Паскале Алгоритм называется рекурсивным , если в качестве вспомогательного алгоритма (подпрограммы) он использует самого себя. n!=1*2*3*…*n 1, если n=1 n! n*(n-1)!, если n>1 Процедуры и функции, использующие вызовы самих себя, называют рекурсивными (прямая рекурсия). Пример. Рассмотрим пример рекурсивной функции вычисления x n , где n- натуральное число. 1, при n = 0 Воспользуемся известным фактом: x n = x n-1 * x , при n ≥ 1 function deg(x, n: integer): longint; begin if n = 0 then deg: =1 else deg: =deg(x, n-1)*x; end;