20 Nisan 2013 Cumartesi

ÖZYİNELİ FONKSİYONLAR(RECURSIVE FUNCTION)

Yazdığımız programlarda aynı işlemi yapmak için döngüler kullanırız.Bazen programda döngüler kullanmak yerine özyineli(recursive) fonksiyonları kullanmak işimizi kolaylaştırır.Bu fonksiyonlar kendi içinde tekrar kendisini döndüren fonksiyonlardır.Yani bir döngü gibi çalışırlar.bu fonksiyonlar programa sadelik katar ,karmaşıklığı önler.Ancak bellekte daha fazla yer kaplarlar ve diğer şekilde yazdığınız programa göre daha yavaştır.Recursive fonksiyonlar sürekli kendilerini çağırdıkları için dikkat edilmesi gereken durum en son aşama için koşul koyulmasıdır.
Recurive fonksiyonlara bakınırken sürekli  karşımıza çıkan  ve mantığı en basit haliyle ortaya koyan örnek faktöriyel hesabı...



package Recursif_Algorithms;

import java.util.Scanner;

public class Test_Factorial {
 /**
  * @author Aylin COŞKUN
  */
 public static void main(String[] args) {
  int num;
  Scanner num_object=new Scanner(System.in);
  System.out.println("Enter a number to calculate the factorial");
  num=num_object.nextInt();
  System.out.println(factorial(num));
  
  }
 public static int factorial(int number)
 {
  if(number==0 ) 
   return 1;
  else 
   return factorial(number-1)*number;
  }
 }






Bu fonksiyonların mantığı nedir peki?İlk önce şekilde görüldüğü gibi factoriyel(5) için  factoriyel(4)*5 ,factoriyel(4) için factoriyel(3)*4  ve diğerleri içinde yandaki şekildeki gibi bu işlemler tekrar edilir.Ta ki fonksiyon factoriyel(1) i görene kadar.Çünkü biz fonksiyonu yazarken koşul koymuştuk ve bu durum da koşulu sağlamaktadır.Böylece artık factoriyel(2) ,factoriyel(3) ,factoriyel(4) ve son olarakta factoriyel(5) değeri bulunmuş olur.

1 yorum:

  1. Fonksiyonlar – Konu Anlatımı ve Soru Çözümü
    Lise hayatınızdan itibaren matematik dersini zorlaştıran, özellikle çok fazla çalışmayan öğrenciler için bela olan ve neredeyse her türlü alanda karşımıza çıkan fonksiyonlar konusunu işleyeceğiz. TYT Matematik fonksiyonlar konu anlatımı içeriğine baktığımızda ayt kısmına nazaran daha az, daha basit ve daha anlaşılabilir içerikler ile karşılaşacağız. Fakat ilkokulda öğrendiğiniz sayısal konularından sonra böyle bir olgu sizi biraz...
    https://yksdestek.com/fonksiyonlar-tyt-matematik/

    YanıtlaSil