Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Итеративные и рекурсивные алгоритмы

Читайте также:
  1. CТРУКТУРЫ ДАННЫХ И АЛГОРИТМЫ
  2. Алгоритмы внутренней сортировки
  3. Алгоритмы замещения страниц
  4. Алгоритмы и их свойства. Представление алгоритмов
  5. Алгоритмы и их свойства. Представление алгоритмов
  6. Алгоритмы поиска и индексации
  7. Алгоритмы сортировки в Delphi
  8. Алгоритмы шифрования
  9. Введение в программирование на языке Pascal Работа с величинами. Ввод-вывод Выражения. Линейные алгоритмы

 

 

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

Под рекурсией понимают способ задания функции через саму себя, например способ задания факториала в виде:

 

n! = (n-1)! * n.

В программировании под рекурсивной процедурой (функцией) к самой себе.

Под итерацией понимают результат многократно повторяемой какой-либо операции, например представление факториала в виде:

 

n! = 1*2*3*……… * n.

 

Среди широкого класса задач удобно представлять с использованием рекурсивных процедур (функций) те задачи, которые сводятся на подзадачи того е типа, но меньшей размерности.

Общая методика анализа рекурсии содержит три этапа.

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

2. Поиск тривиального случая и его решение. Как правило, это ключевой этап в рекурсии, размерность задачи при этом часто равна 0 или 1.

3. Декомпозиция общего случая, имеющая целью привести задачу к одной или нескольким задачам того же типа, но меньшей размерности.

 

Рассмотрим понятие итеративного и рекурсивного алгоритмов на примере вычисления факториала.

Наиболее простой и естественной формой представления итеративного алгоритма при реализации на ПЭВМ является его описание с использованием цикла.

Итеративное вычисление алгоритма.

В соответствии с определением функции n! имеем:

 

1, если n=0;

n!=

1*2*3*………(n-1) * n, если n ≠ 0.

 

Вначале, в зависимости от текущего значения, происходит выбор способа вычисления n!.

 

Программа состоит из процедуры-функции FACTORIAL и основной программы. В основной программе происходит ввод значения N, вызов процедуры функции и печать результата.

 

Dim fac As Double

Dim a As Integer

‘ функция вычисления факториала

Private Function FACTORIAL(n As Integer) As Double

Dim i As Integer

Dim f As Double

If n = 0 Or n = 1 Then

FACTORIAL = 1

Else

f = 1

For i = 2 To n

f = f * i

Next i

End If

FACTORIAL = f

End Function

 

 

Private Sub Command1_Click()

‘ Основная программа

a = Val(InputBox("введите число"))

fac = FACTORIAL(a)

Print "a="; a

Print "факториал ="; fac

End Sub

 

Private Sub Command2_Click()

Form1.Cls

End Sub

 

Private Sub Command3_Click()

End

End Sub

 

Результат работы программы

 

 




Дата добавления: 2014-12-20; просмотров: 96 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав