SlideShare a Scribd company logo
1 of 18
Итерация и Рекурсия
Итерация
- это организация обработки данных, при
которой действия повторяются многократно,
не приводя при этом к вызовам самих себя.
Для реализации итерации используются циклы
Типы циклических
структур
Цикл со счетчиком
Цикл с
постусловием
Цикл с
предусловием
Итерационные
циклы
Цикл с предусловием
Используется, когда заранее неизвестно,
какое количество раз должно повториться
тело цикла.
VB
Do while условие
Тело цикла
Loop
Цикл с постусловием
Условие выхода из цикла стоит в конце, после
тела цикла.
VB
Do
Тело цикла
Loop while Условие
Определите вид цикла
Пример итерации
Определите вид алгоритма и значение
переменной S после выполнения фрагмента
программы.
Применение итерации
Составить блок-схему алгоритма
вычисления суммы чисел от 1 до 5.
Разработать приложение в системе
программирования Visual Studio 2010.
S предыдущая
S начальная = 0
S = 0 + 1
S = 0 + 1 + 2
S предыдущая
S = S + 1
S предыдущая
S предыдущая
S = S + 2
S = 0 + 1 + 2 + 3
S = 0 + 1 + 2 + 3 + 4
S предыдущая
S = 0 + 1 + 2 + 3 + 4 + 5
S = S + 3
S = S + 4
S = S + 5
Разбор задачи
Решение задачи
Dim S, i As Integer
Private Sub Button1_Click
S = 0
i = 1
Do While i <= 5
S = S + i
i = i + 1
Loop
TextBox1.Text = S
End Sub
Рекурсия
(лат. recurrere - возвращение назад)
процесс повторения чего-либо самоподобным
способом.
Примеры.
«Смысл жизни — в достижении её цели, цель
жизни — в наполнении её смыслом»
“Чтобы понять рекурсию, нужно
сначала понять рекурсию”.
Примеры рекурсии
1. «Если у Вас украли кредитную карту позвоните
по телефону, указанному на оборотной стороне
кредитной карты».
2. Бюрократия разрастается чтобы удовлетворить
нужды разрастающейся бюрократии.
3. 1. Начальник всегда прав. 2. Если начальник не
прав смотреть п. 1.
Примеры рекурсии
Описание рекурсии
1. Общее правило, по которому решение
задачи в сложном случае сводится к решению
такой же задачи, но в более простом случае;
2. условие, при котором дальнейшее
упрощение нужно прекратить (терминальное
условие).
Применение рекурсии
Составить блок-схему алгоритма
вычисления суммы чисел от 1 до 5.
Разработать приложение в системе
программирования Visual Studio 2010.
Для решения задачи использовать рекурсию.
Решение задачи
Воспользуемся методом «обратного хода».
S(5)=5+4+3+2+1=5+S(4)
S(4)=4+3+2+1=4+S(3)
S(3)=3+2+1=3+S(2)
S(2)=2+1=2+S(1)
S(1)=1
S(X)=X+S(X-1)
Общее правило
Терминальное условие
Решение задачи
Составим условие:
Если X=1 тогда S=1 иначе S=X+S(X-1)
Запишем условие на языке блок-схем
Решение задачи
Для решения задачи опишем
пользовательскую функцию S
Public Class Form1
Dim X As Integer
Function S(ByVal X) As Integer
If X = 1 Then
S = 1
Else
S = X + S(X - 1)
End If
End Function
Private Sub Button1_Click…
TextBox1.Text = S(5)
End Sub
End Class

More Related Content

Similar to итерация и рекурсия

Программирование циклов
Программирование цикловПрограммирование циклов
Программирование цикловRainbox
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Alexander Borzunov
 
Борзунов Александр, Cpmoptimize
Борзунов Александр, CpmoptimizeБорзунов Александр, Cpmoptimize
Борзунов Александр, CpmoptimizeDarya Zubova
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеAndrey Dolinin
 
Путеводитель SQLite для разработчика
Путеводитель SQLite для разработчикаПутеводитель SQLite для разработчика
Путеводитель SQLite для разработчикаiThink
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!PyNSK
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияEvgeny Smirnov
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
цикл в блог
цикл в блогцикл в блог
цикл в блогisva69
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013AliyaAringazinova
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.Igor Shkulipa
 
10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениямиleskonog_elena
 

Similar to итерация и рекурсия (20)

Программирование циклов
Программирование цикловПрограммирование циклов
Программирование циклов
 
Step 2
Step 2Step 2
Step 2
 
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
Автоматическая оптимизация алгоритмов с помощью быстрого возведения матриц в ...
 
Борзунов Александр, Cpmoptimize
Борзунов Александр, CpmoptimizeБорзунов Александр, Cpmoptimize
Борзунов Александр, Cpmoptimize
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 
My pascal
My pascalMy pascal
My pascal
 
Алгоритмическая конструкция Повторение
Алгоритмическая конструкция ПовторениеАлгоритмическая конструкция Повторение
Алгоритмическая конструкция Повторение
 
Путеводитель SQLite для разработчика
Путеводитель SQLite для разработчикаПутеводитель SQLite для разработчика
Путеводитель SQLite для разработчика
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!
 
8 2-4-3
8 2-4-38 2-4-3
8 2-4-3
 
Алгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсияАлгоритмы на ruby: перебор и рекурсия
Алгоритмы на ruby: перебор и рекурсия
 
Java threads - part 3
Java threads - part 3Java threads - part 3
Java threads - part 3
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Java
 
цикл в блог
цикл в блогцикл в блог
цикл в блог
 
02 if for
02 if for02 if for
02 if for
 
4 algoritm
4 algoritm4 algoritm
4 algoritm
 
Алгоритм
АлгоритмАлгоритм
Алгоритм
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 
C# Desktop. Занятие 16.
C# Desktop. Занятие 16.C# Desktop. Занятие 16.
C# Desktop. Занятие 16.
 
10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями
 

More from Nick535

Структура операционных систем
Структура операционных системСтруктура операционных систем
Структура операционных системNick535
 
Cистемное программное обеспечение
Cистемное программное обеспечениеCистемное программное обеспечение
Cистемное программное обеспечениеNick535
 
Оптические диски
Оптические дискиОптические диски
Оптические дискиNick535
 
Внутренняя память компьютера
Внутренняя память компьютераВнутренняя память компьютера
Внутренняя память компьютераNick535
 
Устройства вывода
Устройства выводаУстройства вывода
Устройства выводаNick535
 
Устройства ввода
Устройства вводаУстройства ввода
Устройства вводаNick535
 
Основные устройства персонального компьютера
Основные устройства персонального компьютераОсновные устройства персонального компьютера
Основные устройства персонального компьютераNick535
 
Битва за Берлин
Битва за БерлинБитва за Берлин
Битва за БерлинNick535
 
Битва под Москвой.
Битва под Москвой.Битва под Москвой.
Битва под Москвой.Nick535
 
Курская битва
Курская битваКурская битва
Курская битваNick535
 
Блокада Ленинграда
Блокада ЛенинградаБлокада Ленинграда
Блокада ЛенинградаNick535
 
Вторая мировая война
Вторая мировая войнаВторая мировая война
Вторая мировая войнаNick535
 
советско финская война
советско финская войнасоветско финская война
советско финская войнаNick535
 
Pervaya mirovaya voyna
Pervaya mirovaya voynaPervaya mirovaya voyna
Pervaya mirovaya voynaNick535
 
Личная гигиена
Личная гигиена Личная гигиена
Личная гигиена Nick535
 
Эволюция экономической жизни
Эволюция экономической жизниЭволюция экономической жизни
Эволюция экономической жизниNick535
 
Методы построения и анализа алгоритмов
Методы построения и анализа алгоритмовМетоды построения и анализа алгоритмов
Методы построения и анализа алгоритмовNick535
 
Язык Html
Язык HtmlЯзык Html
Язык HtmlNick535
 
Статистика
СтатистикаСтатистика
СтатистикаNick535
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времениNick535
 

More from Nick535 (20)

Структура операционных систем
Структура операционных системСтруктура операционных систем
Структура операционных систем
 
Cистемное программное обеспечение
Cистемное программное обеспечениеCистемное программное обеспечение
Cистемное программное обеспечение
 
Оптические диски
Оптические дискиОптические диски
Оптические диски
 
Внутренняя память компьютера
Внутренняя память компьютераВнутренняя память компьютера
Внутренняя память компьютера
 
Устройства вывода
Устройства выводаУстройства вывода
Устройства вывода
 
Устройства ввода
Устройства вводаУстройства ввода
Устройства ввода
 
Основные устройства персонального компьютера
Основные устройства персонального компьютераОсновные устройства персонального компьютера
Основные устройства персонального компьютера
 
Битва за Берлин
Битва за БерлинБитва за Берлин
Битва за Берлин
 
Битва под Москвой.
Битва под Москвой.Битва под Москвой.
Битва под Москвой.
 
Курская битва
Курская битваКурская битва
Курская битва
 
Блокада Ленинграда
Блокада ЛенинградаБлокада Ленинграда
Блокада Ленинграда
 
Вторая мировая война
Вторая мировая войнаВторая мировая война
Вторая мировая война
 
советско финская война
советско финская войнасоветско финская война
советско финская война
 
Pervaya mirovaya voyna
Pervaya mirovaya voynaPervaya mirovaya voyna
Pervaya mirovaya voyna
 
Личная гигиена
Личная гигиена Личная гигиена
Личная гигиена
 
Эволюция экономической жизни
Эволюция экономической жизниЭволюция экономической жизни
Эволюция экономической жизни
 
Методы построения и анализа алгоритмов
Методы построения и анализа алгоритмовМетоды построения и анализа алгоритмов
Методы построения и анализа алгоритмов
 
Язык Html
Язык HtmlЯзык Html
Язык Html
 
Статистика
СтатистикаСтатистика
Статистика
 
ОС в реальном времени
ОС в реальном времениОС в реальном времени
ОС в реальном времени
 

итерация и рекурсия