+ Cevap Yaz
Toplam 2 sayfadan 1. sayfa
1 2 En SonEn Son
14 sonuçtan 1 ile 10 arası gösteriliyor

Konu: Problem: Fonksiyon Sayacı

  1. #1
    Üye webmaster Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2006
    Mesaj
    105

    Problem: Fonksiyon Sayacı

    Bir adet fonksiyonum var ve zaman içinde yinelenen peryotlarla bu fonksiyon çalıştırılıyor. Benim fonksiyon her çalıştırıldığında o ana kadar toplam kaç defa çalıştırıldığını ekrana yazdırmam gerekiyor. Bu konuda fikri olan bana yardımcı olurlarsa sevinirim.

  2. #2
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,901

    static değişkenler yalnızca bir kere ilklenirler ve işleve her girildiğinde eski değerlerini korurlar:

    Kod:
    void foo()
    {
        // Yalnizca ilk girildiginde ilklenir
        static int sayac = 0;
    
        // eski degeri kullanilabilir
    }
    
    Ali

  3. #3
    Üye webmaster Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2006
    Mesaj
    105

    pardon tam olarak bu kodu uygulamaya sokamadım şimdi;


    static int sayac = 0;

    void fonksiyon()
    {
    sayac = (sayac +1);
    }

    şeklinde uyguladım ama hep sıfır döndürüyor malesef

  4. #4
    Üye a_kutluozen Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2009
    Mesaj
    36

    bende tam böyle yap dicektimkiii... aa sahi, neden hep sıfır döndürüyor???

  5. #5
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,901

    Yani benim yazdığım şekilde yazmadınız ve benim söylediğim gibi çalışmamasına şaşırdınız...

    Ali

  6. #6
    Ali Çehreli
    Üyelik Tarihi
    10/2002
    Mesaj
    2,901

    Alıntı webmaster, mesajından alıntı: Mesajı Gör
    pardon tam olarak bu kodu uygulamaya sokamadım şimdi;


    static int sayac = 0;

    void fonksiyon()
    {
    sayac = (sayac +1);
    }

    şeklinde uyguladım ama hep sıfır döndürüyor malesef
    Hep sıfır döndüren ne? Yukarıda döndürülen hiçbir değer olmadığı için anlayamıyorum.

    Ali

  7. #7
    İptal Durumu
    Üyelik Tarihi
    07/2009
    Mesaj
    168

    Static değişken kullanmaktan olabildigince kacınmaya ozen gostermeye calısın.



    Bunun yerine fonksyionunu rekursif yazmak daha mantıklı

    Ama kendi kendine cagırmayacak ise programın herhangi bir anında belli bir zamanda cagrıyorsada , bir integer degiskenin adresini parametre olarak gecirip bu alana fonksiyonun kacıncı kez calıstıgını kaydetmeyide deneyebilirsiniz.

  8. #8
    Ziraat Mühendisi _Onk@_ Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    09/2008
    Yer
    Ankara
    Mesaj
    711

    Recursive mekanizma sakıncalıdır, en azından benim için. Kendini çağıran bir işlev kullanacaksanız öncelikle en iyi yöntemin bu olduğundan emin olmalısınız.

  9. #9
    Üye webmaster Adlı Üyenin Profil Grafiği
    Üyelik Tarihi
    12/2006
    Mesaj
    105

    void fonksiyon()
    {
    static int sayac = 0;
    sayac++;
    printf("%f",sayac);
    }

    şeklinde de denedim her seferinde ekrana sıfır yazdırıyor malesef

  10. #10
    Üye
    Üyelik Tarihi
    01/2010
    Mesaj
    288

    static int sayac = 0;
    sayac++;
    printf("%f",sayac);

    bu satırlarda 0 dönmesi imkansız, olacak iş değil yani.

+ Cevap Yaz

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Mesaj Yazma Hakları

  • Yeni mesajgöndermezsiniz
  • Cevap yazamazsınız
  • Dosya ekleyemezsiniz
  • Mesajınızı düzenleyemezsiniz