ݺߣ

ݺߣShare a Scribd company logo
Лабораторная работа №6.  Рекурсия
Задание на лабораторную работу Написать программы, реализующие рекурсивный и итерационный методы решения задач. Сравнить время выполнения программ. Вывести на экран результат вычислений, время выполнения программы и глубину рекурсии или количество итераций. Программа реализуется на языках C или Pascal в соответствии с указанием преподавателя. Помните, что в языке Pascal подпрограммы бывают двух видов – функции и процедуры.
Язык программирования  C Рекурсивная функция  – это функция, в определении которой есть обращение к себе самой. Пример .  Допустим,  нужно вычислить  n !  ( факториал числа  n ).  Значение  n !  можно представить как  произведение  n   на факториал  ( n -1)  : n ! =  n *( n -1)! ( n -1)! = ( n -1)*( n -2)! …
Пример /*  Рекурсивная функция вычисления  n !  */ float   fact   ( int n ) {  if  ( n <0)  {  puts  (“Недопустимый аргумент функции  fact ”); exit  (1); /* завершение выполнения программы */ } if  ( n ==1 ||  n ==0)  return  1; return   n * fact ( n -1); }
Пример вызова этой функции: int  k; scanf (“%d”, &k); printf (“%d! = %.0f”, k, fact(k));
Выполнение функции при  k =4.

More Related Content

лабораторная работа №6

  • 2. Задание на лабораторную работу Написать программы, реализующие рекурсивный и итерационный методы решения задач. Сравнить время выполнения программ. Вывести на экран результат вычислений, время выполнения программы и глубину рекурсии или количество итераций. Программа реализуется на языках C или Pascal в соответствии с указанием преподавателя. Помните, что в языке Pascal подпрограммы бывают двух видов – функции и процедуры.
  • 3. Язык программирования C Рекурсивная функция – это функция, в определении которой есть обращение к себе самой. Пример . Допустим, нужно вычислить n ! ( факториал числа n ). Значение n ! можно представить как произведение n на факториал ( n -1) : n ! = n *( n -1)! ( n -1)! = ( n -1)*( n -2)! …
  • 4. Пример /* Рекурсивная функция вычисления n ! */ float fact ( int n ) { if ( n <0) { puts (“Недопустимый аргумент функции fact ”); exit (1); /* завершение выполнения программы */ } if ( n ==1 || n ==0) return 1; return n * fact ( n -1); }
  • 5. Пример вызова этой функции: int k; scanf (“%d”, &k); printf (“%d! = %.0f”, k, fact(k));