Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.

Презентация:



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

Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Подпрограммы -это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
Подпрограммы в Паскале.
Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
Функции и процедуры Инструмент структурирования программ Два типа подпрограмм Описание Локальные и глобальные переменные Параметры: формальные и фактические.
Рекурсия Презентация разработана учителем информатики лицея 124 г.Барнаула Воловиковой Л.Л.
Программирование «сверху вниз» Процедуры и функции пользователя в Pascal.
Подпрограммы - процедуры. Очень часто в процессе выполнения программы требуется многократное выполнение какой-либо ее части. Лучше всего повторяющуюся.
© М.Е.Макарова
Подпрограммы 1.Принцип модульности 2.Область действия переменных 3.Параметры подпрограмм 4.Модули.
Подпрограммы: процедуры и функции Информатика. 1. Подпрограммы При решении различных задач часто возникает необходимость проводить вычисления по одним.
Подпрограммы Лекция 7. Ломаско Павел Сергеевич16 декабря 2013 г.
Шутилина Л.А. Процедуры в Turbo Pascal ( часть 1: процедуры с параметрами)
Программирование на языке Паскаль Тема 13. Процедуры Тема 14. Функции.
ОДНОМЕРНЫЕ МАССИВЫ. В математике, экономике, информатике часто используются упорядоченные наборы данных, например, последовательности чисел, таблицы,
Рекурсия Начальные сведения о рекурсии. Определение рекурсии Рекурсия (от латинского recursio - возвращение) - это такой способ организации вычислительного.
Транксрипт:

Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16

Содержание Процедуры Функции Механизм передачи параметров в функции и процедуры Глобальные и локальные переменные Формальные и фактические параметры Рекурсия

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

Формальные и фактические параметры В описании подпрограмм параметры обозначены только именами, поэтому их называют формальными. До вызова подпрограммы они не имеют значений. Они лишь резервируют место для фактических параметров, фиксируя их число и тип данных. Типы фактических параметров: Параметры-значения показывают, какое значение надо присвоить определенному параметру подпрограммы. После завершения подпрограммы они принимают прежние значения, даже если были изменены в подпрограмме. Параметры-переменные в подпрограмме становятся на место формальных, могут в ходе исполнения подпрограммы изменить свое значение и сохраняют изменения при выходе из подпрограммы (перед параметрами-переменными стоит ключевое слово Var).

Процедуры Решение задач

Описание процедуры Program Pr1; Const … Type … Var … Procedure ( ); Описательная часть Begin Тело процедуры End; Begin … ( ); … end. При вызове процедуры формальные параметры заменяются фактическими.

Процедура вычисления суммы двух чисел program pr1; Uses crt; Var a,b,s:real; procedure summa(x,y:real;var z:real); begin z:=x+y; end; begin clrscr; writeln('введите a,b'); readln(a,b); summa(a,b,s); writeln(' сумма чисел ',a:3:1,' и ',b:3:1,' = ',s:3:1); readln; end. x,y,z – формальные параметры, локальные переменные a,b,s – глобальные переменные a,b,s – фактические параметры хyz abs Параметры- значения Параметр- переменная

Программа перестановки значений переменных a,b,c в порядке возрастания(a

Программа перестановки значений переменных a,b,c в порядке возрастания(a

Для нахождения факториала какой тип переменных целесообразно использовать? Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program pr2; Uses crt; Var m,n,x,y,z:integer; a:real; procedure fact(d:integer;var q:integer); var i:integer; begin q:=1; for i:=1 to d do q:=q*i; end; begin clrscr; writeln('введите значения n, m '); readln(n,m); fact(n,x); fact(m,y); fact(m+n,z); a:=(3*x+2*y)/z; writeln('значение выражения при m= ',m:4,' и n= ',n:4,'равно',a:8:3); readln; end. N!=1·2·3·…· N

Ввод вывод элементов одномерного массива Функция Random(X) формирует случайное число от 0 до Х целого или вещественного типа (перед обращением к функции ее необходимо инициализировать, использовав процедуру Randomize). Если параметр Х не задан, результат будет типа Real в пределах от 0.0 до 1.0. Для получения массива целых случайных чисел из диапазона [A,B] random(B-A+1)+A Задание: Оформить ввод элементов одномерного массива с помощью генератора случайных чисел (диапазон значений от -10 до 20) и вывод элементов как процедуры. Для А=-10 В=20 random(20-(-10)+1)+(-10)

Ввод и вывод элементов одномерного массива

Функции Решение задач

Описание функции Функции предназначены для того, чтобы вычислять только одно значение, 1. поэтому ее первое отличие состоит в том, что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет результатом). 2. Второе отличие заключается в заголовке функции. Он состоит из слова FUNCTION, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции. 3. В теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой – ее значение. Function ( ): Описательная часть Begin Тело функции := ; End;

Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program fn2; Uses crt; Var m,n:integer; a:real; function fact(d:integer) :longint; var i:integer; q:longint; begin q:=1; for i:=1 to d do q:=q*i; fact:=q; end; begin clrscr; writeln('введите значения n, m '); readln(n,m); a:=(3*fact(n)+2*fact(m))/fact(m+n);; writeln('значение выражения при m= ',m:4,' и n= ',n:4,'равно',a:8:3); readln; end.

Составить программу, которая будет находить а b, то есть b-ю степень числа А, где А и В – это целые числа и В>0, вводимые с клавиатуры. Составьте программу, заменив функцию процедурой program pr2; Uses crt; Var a,b:integer; c:longint; Function stepen(x,y:integer):longint; var i:integer; s:longint; begin s:=1; for i:=1 to y do s:=s*x; Stepen:=s; end; begin clrscr; writeln('введите значения a, b'); readln(a,b); C:=stepen(a,b); writeln('s=',s); readln; end.

Механизм передачи параметров в функции и процедуры Разбор заданий

Механизм передачи параметров в функции и процедуры Что будет напечатано процедурой, а что программой? Глобальные переменные Локальные переменные ab 33-3 Адрес с a b c 48 Адрес с 1.A:=b+3 2.B:=3*a 3.C:=a+b Состоя ние С Ответ

Механизм передачи параметров в функции и процедуры Что будет напечатано функцией, а что программой? Глобальные переменные Локальные переменные cb 00 Адрес a cb d a:=2 2.B:=b+1 3.D:=3 Состоя ние a d 0 0 f:=d Ответ f 3 c:=b-a

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

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

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

Рекурсия Примеры задач

Понятие рекурсии Подпрограммы в Turbo Pascal могут обращаться к самим себе. Такое обращение называется рекурсией. Объект, который частично определяется через самого себя, называется рекурсивным. Рекурсивные определения как мощный аналитический аппарат используются во многих областях науки, особенно в математике. Для того, чтобы не было бесконечного обращения подпрограммы к самой себе, требуется наличие некоторого условия (условного оператора) в тексте программы, по достижении которого дальнейшее обращение не происходит. Таким образом, рекурсивное программирование может включаться только в одну из ветвей условного оператора, присутствующего в подпрограмме. Подпрограмма ( ): Описательная часть Begin … if then > else ; … End; if then else >;

Вычисление факториала натурального числа program fn2; Uses crt; Var n:integer; a:longint;; function factorial(n:integer) :longint; begin if n=1 then factorial:=1 else factorial:=n*factorial(n-1); end; begin clrscr; writeln('введите значение n:'); readln(n); a:=factorial(n); writeln('значение факториала,n,!=,a:8); readln; end.