69693

Рекурсія

Лекция

Информатика, кибернетика и программирование

Механізм рекурсії одночасно дуже корисний, але і дуже небезпечний. При створенні рекурсивних функцій потрібно бути особливо уважним, щоб уникнути зациклення. Наступна функція викличе зациклення...

Украинкский

2014-10-08

23 KB

0 чел.

Тема 21: Рекурсія

Рекурсією називається виклик функції самої себе. Такий виклик називається рекурсивним. Рекурсія буває пряма і непряма. Розглянемо приклад прямої рекурсії (див. лістинг 8.7).

Лістинг 8.7. Пряма рекурсія

<?

function   fact ($x)

{

if    ($x==0)    return   1;

else   return   $x*fact($x-l);

}

echo   fact (7);

?>

Як ви вже встигли здогадатися, функція fact () обчислює факторіал x!. Функція fact () у своєму тілі викликає саму себе — це і є пряма рекурсія. Непряма рекурсія виникає, коли перша функція викликає другу, а друга — першу.

Механізм рекурсії одночасно дуже корисний, але і дуже небезпечний. При створенні рекурсивних функцій потрібно бути особливо уважним, щоб уникнути зациклення. Наступна функція викличе зациклення (див. лістинг 8.8).

Листинг8.8. Некорректноєіспользованіє рекурсії

function   fact($x)

{

if    ($x==0)    return   1;

else   return   $x*fact($x);


 

А также другие работы, которые могут Вас заинтересовать

74912. Вирази з дужками. Порядок виконання дій у виразах, що містять дужки 119.5 KB
  Вчитель: Сьогодні я запрошую вас у подорож щоб знайти скарби. Вчитель: А що треба щоб знайти скарби Учні: Карта. Б Каліграфічна хвилинка Вчитель: А що нам треба щоб пройти по морю і знайти скарби Учні: Для того щоб подолати перешкоди на морі нам треба корабель.
74913. Нумерація чисел від 21 до 100. Урок – змагання з математики в 2 класі. На математичному стадіоні 73.5 KB
  Дядіченко вчитель початкових класів спеціаліст вищої категорії учитель – методист Новогродівська загальноосвітня школа I III ступенів № 7 Донецької області Урок – змагання з математики в 2 класі На математичному стадіоні Тема: Повторення вивченого за темою Нумерація чисел від 21 до 100 Мета: Закріпити і вдосконалити знання учнів за темою; розвивати обчислювальні навички уміння розв’язувати прості та складені задачі різних типів; розвивати пам’ять увагу і логічне мислення учнів; вміння застосовувати різні види контролю....
74914. Вправи та задачі на засвоєння таблиці множення та ділення; повторення залежності між компонентами і результатом дій першої сходинки 69.5 KB
  закріпити табличне мнодення та ділення на 2 і 3; формувати вміння і навички розвязування задач; розвивати логічне мислення, математичну мову, увагу, вміння працювати самостійно; виховувати почуття доброти у взаємовідношеннях один з одним, почуття товариства.
74915. Застосування різних прийомів обчислення. Складання й розв’язування задач за схематичними записами їхніх умов 46 KB
  Мета. Формувати обчислювальні навики додавання і віднімання числа 7, застосовуючи різні прийоми обчислення. Вчити складати й розв’язувати задачі за схематичними записами їхніх умов. Розвивати мислення, мовлення учнів. Вчити аналізувати, узагальнювати, порівнювати.
74916. Урок по математике «Морское путешествие» 38.5 KB
  Дельфин на песке написал примеры но набежавшая волна смыла их. Составить и записать примеры таблицы умножения числа 3. Проверить составленные примеры и составить по два примера на деление. Остановка Коралловые рифы примеров а Решите примеры...
74917. Письменная нумерация чисел первой сотни. Чтение чисел, записанных в нумерационных таблицах. Сравнение выражений 1.48 MB
  ЦЕЛЬ: учить записывать двузначные числа, читать их по нумерационной таблице; формировать умения решать задачи путем углубленного изучения условия задачи, сравнивать числовые выражения; развивать умения решать практические задания ;продолжить формировать коммуникативную компетенцию...
74918. Табличне множення і ділення. Вправи і задачі на засвоєння табличного множення та ділення 89.5 KB
  Мета: повторити матеріал, вивчений по темі «Табличне множення і ділення»; вчити розв’язувати задачі, які включають знаходження невідомого компонента; розвивати увагу і логічне мислення учнів; вдосконалювати обчислювальні навички і вміння розв’язувати задачі та приклади...
74919. Ділення на одноцифрове число, коли в кінці виходить 0 46.5 KB
  Мета: Сформувати вміння ділити багатоцифрове число на одноцифрове коли в кінці виходить 0; сформувати вміння перевіряти ділення множенням; тренувати вміння додавати та віднімати багатоцифрові числа; множити багатоцифрове число на одноцифрове.
74920. Переставна властивість множення. Розв’язування складених задач 131.5 KB
  Переставна властивість множення. Ознайомити учнів із переставною властивістю множення. Формувати вміння розв’язувати приклади на множення застосовуючи переставну властивість множення.