Рекурсия Презентация разработана учителем информатики лицея 124 г.Барнаула Воловиковой Л.Л.

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



Advertisements
Похожие презентации
Рекурсия Начальные сведения о рекурсии. Определение рекурсии Рекурсия (от латинского recursio - возвращение) - это такой способ организации вычислительного.
Advertisements

Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.
РЕКУРСИЯ РЕКУРРЕНТНЫЕ СООТНОШЕНИЯ У попа была собака - он ее любил. Она съела кусок мяса - он ее убил. Вырыл ямку - закопал, Взял дощечку – написал: У.
Подпрограммы -это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих.
Рекурсивное программирование Рекурсия – это метод, сводящий общую задачу к некоторым задачам более узкого, простого типа Рекурсивный алгоритм – это алгоритм,
«Облака – это не сферы, горы – не конусы, линии берега – это не окружности, и кора не является гладкой, и молния не распространяется по прямой. Природа.
Рекурсивные алгоритмы Домашнее задание. ДЕМО 2015 Подготовиться к самостоятельной работе (6.1, 6.2, 8, 11)
1 Рекурсивное программирование Рекурсия – это метод, сводящий общую задачу к некоторым задачам более узкого, простого типа Рекурсивный алгоритм – это алгоритм,
Перестановки и факториалы Фамилии авторов Яковлева О.Е Егорова Е.Н
Какой алгоритм называется разветвляющимся? Алгоритм, при выполнении которого необходимо выполнить какое-либо условие называется разветвляющимся.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Задача. Даны действительные числа A, B, C, D. Найти max(a,b,c), max(a,b,d), max(b,c,d). Написать программу решения задачи PROGRAM ex1; PROCEDURЕ Max (x,
Программирование «сверху вниз» Процедуры и функции пользователя в Pascal.
Условный оператор Ширяева Ольга Мухадинновна, учитель информатики 1 категории, МОУ СОШ 2, г. Нягань, ХМАО-Югра.
Функции и процедуры Инструмент структурирования программ Два типа подпрограмм Описание Локальные и глобальные переменные Параметры: формальные и фактические.
Pascal: Условный оператор. Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие.
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
Ветвление Полное ветвление Если УСЛОВИЕ то КОМАНДА 1 иначе КОМАНДА 2; IF УСЛОВИЕ THEN КОМАНДА 1 ELSE КОМAНДА 2;
Основы языка Pascal Тема. Оператор ветвления. Алгоритм Алгоритм – это четко определенный план действий для исполнителя.
Транксрипт:

Рекурсия Презентация разработана учителем информатики лицея 124 г.Барнаула Воловиковой Л.Л.

Рекурсией называется обращение процедуры или функции к самой себе. Пример: Procedure S(x:integer); Begin … S(a); End; Пример: Procedure S(x:integer); Begin … S(a); End; При работе с рекурсивной процедурой или функцией нужно предусматривать выход из нее при выполнении некоторого условия. If x

Прямой ход рекурсии Procedure S(x:integer); Begin If x=0 then Exit; Writeln(x); S(x-1); End; Procedure S(x:integer); Begin If x=0 then Exit; Writeln(x); S(x-1); End; S(3) If 3=0 Then Exit; WRITELN(3); S(2) If 3=0 Then Exit; WRITELN(3); S(2) If 2=0 Then Exit; WRITELN(2); S(1) If 2=0 Then Exit; WRITELN(2); S(1) If 1=0 Then Exit; WRITELN(1); S(0) If 1=0 Then Exit; WRITELN(1); S(0) If 0=0 Then Exit;

Обратный ход рекурсии Procedure S(x:integer); Begin If x=0 then Exit; S(x-1); Writeln(x); End; Procedure S(x:integer); Begin If x=0 then Exit; S(x-1); Writeln(x); End; S(3) If 3=0 Then Exit; S(2) WRITELN(3); If 3=0 Then Exit; S(2) WRITELN(3); If 2=0 Then Exit; S(1) WRITELN(2); If 2=0 Then Exit; S(1) WRITELN(2); If 1=0 Then Exit; S(0) WRITELN(1); If 1=0 Then Exit; S(0) WRITELN(1); If 0=0 Then Exit;

Задача Написать рекурсивную функцию для вычисления n степени целого числа a Рекурсивное определение степени: a n =1, при n=0 a n =a·a n-1, при n>0 a n =1, при n=0 a n =a·a n-1, при n>0

Program recursia1; Var n:integer; a,s:longint; Function stepen(n:integer; a:longint):longint; Begin if n=0 then stepen:=1 else stepen:=a*stepen(n-1,a); End; Begin Writeln(Задайте число); Readln(a); Writeln(Задайте степень); Readln(n); S:=stepen(n,a); Writeln(Степень равна,s); Readln; End.