Şimdi Ara

c++ Fonksiyon

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
5
Cevap
0
Favori
227
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar bilişim sistemleri mühendisliği 2.sınıf öğrencisiyim. Bugün lab dersinde hoca bir ödev verdi çıktısını yazacakmışız. Şöyle bir kod parçası var;

    void right(int i, int p, int n, int k)//3.Tur 4,8,1,2 / 4.Tur 12,8,2,2 

    {

    cout << i << endl;//2.ÇIKTI=4 3.ÇIKTI=12 4.ÇIKTI=6 5.ÇIKTI=10 6.ÇIKTI=14 

    if (n == k) return;//n ve k eşit ise down fonksiyonunda geldiği yere right() komutuna döner. 

    else right(i + p, p, n + 1, k);

    }

    void down(int i, int p, int n, int k)//1.Tur=8,16,1,1 / 2.Tur=4,8,1,2

    {

    if (n == k) cout << i << endl;//n ve k eşit iken Ekranda i çıktısı gözükür.Eşit değilken aşağıdaki komutu uygulayıp right fonksiyonuna gider. 1.ÇIKTI=8

    else right(i, p, 1, k);


    if (i == 1) return;//i 1'e eşit olana kadar aşağıdan gider.

    else down(i / 2, p / 2, 1, k * 2);

    }


    void main()

    {

    down(8, 16, 1, 1);

    }


    right fonksiyonunda if(n==k) koşulunu sağladıktan sonra return ederken i,p den düşük oluncaya kadar i'den p'çıkıyor. Bunun nedeninin bilmiyorum. Yardımcı olabilecek var mı?








  • recursion kullanıyorsun ama ne yaptıgı biraz muallak neyi yapmayı planlıyorsun

    void recursion fonksiyonlar kullanarak bişiler yazdırmak istiyorsunuz gibi gözüküyor

  • bunu lab dersinde hoca ödev olarak verdi. f11 ile adımları tek tek izlerken en üstteki right fonksiyonundan return ederken i p'den aldığı değeri , p'den düşük olana kadar çıkarıyor. Bunun nedenini çözemedim.

  • funkydevil77 F kullanıcısına yanıt
    Ödevin ekran görüntüsünü gönderirsen daha net yorumlayabiliriz.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.