17recursion

75 %
25 %
Information about 17recursion
Education

Published on March 9, 2014

Author: fyjordan9

Source: slideshare.net

Basic Scientific Programming Recursion

Recursion   All of the examples considered thus far involved a main program referencing a subprogram or one subprogram referencing another. A subprogram may also reference itself, this is called Recursion.

Ex: n!   n! = 1 * 2* 3* … * n 0! = 1 1! = 1 2! = 1 * 2 = 2 3! = 2! * 3 = 2*3 = 6 4! = 3! * 4 = 6*4 = 24 It is clear that once one factorial has been calculated, it can be used to calculate the next one. n! = n * (n-1)!

 A function is defined recursively if the definition consists of two parts:   A base case: in which the value of the function is specified for one or more values of the argument(s) 0! = 1 A recursive step: in which the function’s value for a current value of argument is defined in terms of a previously defined function value. n>0 n! = n* (n-1)!

4!  4! = 4 * 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1* 0! 0! =1

4!  4!=4*3!=4*6=24 3!= 3*2!=3*2=6 2!=2*1!=2*1=2 1!=1*0!=1 * 1 = 1 0! =1

Notes   Subprograms may be declared to be recursive by attaching the word RECURSIVE at the beginning of the subprogram heading. For a recursive function, a RESULT clause must be attached at the end of the function heading.

Notes   Return value will be assigned to the result variable instead of the function name. The type of the function is specified by declaring the type of the result variable.

 Recursive function factorial(n) result(fact) integer:: fact integer,intent(in)::n if(n==0) then fact = 1 else fact = factorial(n-1) * n end if End Function factorial

   Fact = 1 do I = 1,5 fact = fact * I end do Nonrecursive programs may execute more rapidly and utilize less memory than corresponding recursive programs. For some problems, recursion is the most natural and straightforward technique.

Ex:  Recursive function f(n) result(f_value) integer:: f_value integer,intent(in) :: N if(n==0) then f_value = 0 else f_value = n+ f(n-1) end if end function f !Find f(5), f(0)

Ex:  recursive function f(num1,num2) result(f_val) integer:: f_value integer,intent(in):: num1,num2 if (num1>num2) then f_val = 0 Else if(num2==num1+1) then f_val = 1 Else f_val = f(num1+1,num2-1) + 2 End if end function f !! F(2,2), F(1,5), F(8,3)

xn  Recursive function f(x,n) result(x2n) integer:: x2n integer,intent(in):: x,n if(n==0) x2n = 1 else x2n = f(x,n-1) * x end if end function f

Add a comment

Related presentations

Related pages

Chapter 17. Recursion - Programming via Java: Recursion

Chapter 17. Recursion. We saw how to create methods in Chapter 12. Inside their bodies, we can include invocations of other methods. It may not have ...
Read more

Programming via Java: Recursion examples - Toves

17. Recursion 18. Recursion examples 19. Arrays 20 ... 22. File I/O 23. Beyond the sandbox 24. Swing basics 25. More with Swing. Chapter 18. Recursion ...
Read more

17-Recursion - CS106X Handout 17 Autumn 2011 January 19 th ...

View Notes - 17-Recursion from CS 106X at Stanford. CS106X Handout 17 Autumn 2011 January 19 th , 2011 Recursion Today we'll start working with one of
Read more

Recursion - Penn State Lehigh Valley Home Page

RECURSION Please note that the material on this website is not intended to be exhaustive. This is intended as a summary and supplementary material to the ...
Read more

17. Recursion — How to Think Like a Computer Scientist ...

17. Recursion¶ Recursion means “defining something in terms of itself” usually at some smaller scale, perhaps multiple times, to achieve your objective.
Read more

17.Recursion - Example Problem 2 - YouTube

Problems on Back Substitution. ... This feature is not available right now. Please try again later.
Read more

Chapter 17 Recursion - University of Massachusetts Amherst

Chapter 17 Recursion 17-2 Copyright © The McGraw-HillCompanies, Inc. Permission required for reproduction or display.! n i 1 Mathematical Definition:
Read more

17 Recursion - Bryn Mawr College

3/30/16 1 Review& • Recursion*(recursive*func.on)* – afunc.on*thatcalls*itself* – base*case* – reduc.on*of*the*work*to*asmaller*instance*
Read more

Dars 17: Recursion - YouTube

Hada dars 17 men silisila dial drourouss bach te3allem el programmation b Java. Dourours kamlin hnaya: https://sites.google.com/site/dourous
Read more