folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder İç İçe For Döngüsü Mantığı



İç İçe For Döngüsü Mantığı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mylitta
    Mylitta's avatar
    Kayıt Tarihi: 13/Nisan/2008
    Erkek
    using System;
    
    class fordongusu
    {
        public static void Main()   
        {
            int i, j, k;
    
            for (i = 1; i < 20; i++)
            {
                for (j = i; j < 20; j++)
                {
                    Console.Write("A");
                }
                for (k = 1; k <= i; k++)
                {
                    Console.Write("*");
                    Console.Write(" ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }

    Selam dostlar,  hobi olarak C# öğrenmeye çalışıyorum. Belki sonra unity falan bakıcam ama daha çooooook başındayım, karın yağmurun

    soğuğun :)) iç içe for öğrenmek için üçgen yapmayı denedim. ben beceremedim, bu kod parçası alıntı. bana mantığını anlatabilecek olan

    var mı? Benim kafam karıştı. hangi forun neyi arttırdığını anlayamadım. 20-19-18 diye azalan ve boşlukları veren foru hangisi kontrol

    ediyor. Beni bu konuda, uzunların bilal gibi düşünüp mantığını anlatabilecek dostlarım varsa çok sevinirim. Saygı ve sevgiler.

    Mylitta tarafından 19/Nis/20 18:13 tarihinde düzenlenmiştir

    Ayılıp bayılıp ayılıyoruz, bütün sokakları ayıkıyoruz
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    Önce en içteki çalışır. O bittiğinde bir üstteki. Öle silsileyle gider. 

     


    arbeit macht frei
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Https
    Https's avatar
    Kayıt Tarihi: 05/Ağustos/2017
    Erkek

    Hocam ilgili satırlara ( Burda ekrana  değerleri bastığın satırlar ) breakpoint koyduktan sonra,  ilgili değişkenlere "add watch" ekledikten sonra debug modda çalıştır. aşağıda "watch 1" yazan yere tıkladıktan sonra adım adım "countinue"  butonu ile ilerlet. Adım adım hangi işlemleri yaptığını, nereye uğrayıp nereye uğramadığını, hangi satırın çalıştığını, değişkenlerin o satıra kadarki değerlerini görüntüleyebilirsin hocam.

     

    Https tarafından 19/Nis/20 18:36 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GuArDiAn55
    GuArDiAn55's avatar
    Kayıt Tarihi: 26/Haziran/2015
    Erkek

    bende yeniyim c# ta. :d biraz basit mi kaçacak yazdıklarım bilemiyorum ama bişeyler yazayım.

    her adımda kodun ne yaptığını algılamaya çalışın. i=1 ilk for döngüsü başladı. ikinci for döngüsünde j=1 oldu. 20den küçük 1 değeri. ekrana A yazdı ve j değeri 1 arttı j=2 oldu.hala 20 den küçük ekrana böylece 19 defa A yazacak. writeline yerine write kullanıldığı için yeni satıra geçmiyor bunu biliyorsunuzdur zaten. j=20 olunca ikinci döngü bitecek 3. for döngüsü başlayacak ama bu 3. döngü iç içe değil ikinci bittikten sonra işe başlıyor. k=1 oldu. i değeri 1 idi. ekrana *  ve boşluk yazılacak aynı satıra tabi writeline değil line olduğundan. k bir arttırıldı k=2 oldu. (k=2)<=1 sağlanmadığından 3. döngü bitti. en sonda da Console.WriteLine(); ile yeni bir satıra geçilmiş oldu. şimdi ilk döngünün 1. işlemi tamamlanmış oldu.

    iç içe for döngülerine şöyle bi baktığınızda ne iş yaptığını algılamaya şu aşamada gerek var mı? beynimiz o kadar harika değil malesef çalıştırın kodu ne yaptığını öğrenin tamam. :D bu döngüleri algılayabilmek için algoritma yazımına hakim olmak gerekli. biraz matematik geçmişi de gerekli onun için. tabi burada sizin niye c# öğrendiğiniz sorusu da önemli. her şeyi öğrenip bilgisayar bilimleri experti olacaksanız matematik öğrenin matematiksel problemleri kod yazarak çözmeye çalışın vs. ama öylesine öğreniyorsanız fazla kafa yormayın derim. bir amaç koymak lazım misal unity ile 2d platform koşu oyunu yapacağım diyin o öncelikte ilerleyin yoksa ucu bucağı yok öğrenmenin.

     

    GuArDiAn55 tarafından 19/Nis/20 18:43 tarihinde düzenlenmiştir

    HACKEROKAN!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Başlangıçta kendinize şu soruyu sorun "Bu biraz karışık mı?". Evet, bu başlangıç için karışık. O nedenle basit for döngüsünü iyice öğren sonra üstüne bir şeyler katarak ilerlersin.

    Önce tepeleri aşın, dağları sonra aşarsınız. Yoksa sıkılıp bırakma ihtimaliniz fazlacadır.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    do_som
    do_som's avatar
    Banlanmış Üye
    Kayıt Tarihi: 08/Şubat/2016
    Erkek

    kanka sana bir tavsiye vericem.  hep ilgilen c# la. gözünde büyütme ben 5 yıl önce iyide öğrenirken bir kaç dangalak şevkimi kırmıştı bırakmıştım. devam etseydim baya öğrenirdim.

    sefer alganın kitabını al baya iyi kitap

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    İçteki döngü en hızlı çalışır..

    O kendi turunu tamamlayınca üst döngü  ikinci elemana geçer..

    Kilometre sayacı gibi..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    crafty
    crafty's avatar
    Kayıt Tarihi: 19/Eylül/2006
    Erkek
    Mylitta bunu yazdı
    using System;
    
    class fordongusu
    {
        public static void Main()   
        {
            int i, j, k;
    
            for (i = 1; i < 20; i++)
            {
                for (j = i; j < 20; j++)
                {
                    Console.Write("A");
                }
                for (k = 1; k <= i; k++)
                {
                    Console.Write("*");
                    Console.Write(" ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }

    Selam dostlar,  hobi olarak C# öğrenmeye çalışıyorum. Belki sonra unity falan bakıcam ama daha çooooook başındayım, karın yağmurun

    soğuğun :)) iç içe for öğrenmek için üçgen yapmayı denedim. ben beceremedim, bu kod parçası alıntı. bana mantığını anlatabilecek olan

    var mı? Benim kafam karıştı. hangi forun neyi arttırdığını anlayamadım. 20-19-18 diye azalan ve boşlukları veren foru hangisi kontrol

    ediyor. Beni bu konuda, uzunların bilal gibi düşünüp mantığını anlatabilecek dostlarım varsa çok sevinirim. Saygı ve sevgiler.

    dostum öncelikle Sefer Algan'ın C# kitabını kesinlikle tavsiye ederim. bilale anlatır gibi anlatır. seni orta düzeye hatta birçok programcıya göre ileri seviyeye kadar taşır.

    öncelik ile çalışma mantığını açıklayayım. öncelikle okunabilirlik açısından yazılı olan for döngüsünden ziyade

    for(int i = 1; i<20; i++) şeklinde yazmak daha mantıklıdır. bu for döngüsünde öncelikle döngüyü yapacak eleman tanımlanır ve ilk değer verilir. int i = 1; şeklinde

    sonrasında kontrol bölümüne gelir i<20; burada eğer kontrol true ise {} içerisindeki kodlar çalıştırılır. bu kodlardan sonra i++ ile i değişkeni bir arttırılır.

    ek bilgi olarak for döngüsünde int i tanımlaması senin yaptığın şekilde de tanımlanabiliyor ancak okunabilirlik açısından int i tanımlaması genelde for döngüsü parantezinde yapılması tercih ediliyor.

    ilk değer verme işlemine 1 yerine 0 ile vermeyi ve bu şekilde alışmanı tavsiye ediyorum. çünkü dizi gibi işlemlerde ilk eleman 1 ile değil 0 ile bulunuyor. alışkanlıkları sonradan bozmak daha da zor oluyor.

    for(int i =0; i<19;i++){} şeklinde kullanılabildiği gibi ilk tanımın dışarıda yapıldığı örneklerde var

    int i=0;

    for(;i<19;i++) gibi. istersen tüm örnekleri for parantezi haricinde de tutabilirsin.

    for(;;)

    {

        Console.WriteLine(i.ToString());

        if(i<19)

        {

              break;

        }

        i++

    }

    gibi. dikkat edilmesi gereken şey şu for döngü parantezinde mutlaka iki adet ";" olması zorunluluğu.

    şimdi soruna gelecek olursak. 19 satırlık bir döngü ile üçgen yazdırmakta

    ilk for döngüsü tamamen satırları oluşturmakta. başlangıça i=1 için çalıştırdığımızda hemen altındaki j tanımlı for döngüsü çalıştırılıyor ve burada j her adımda 1 arttırılarak toplamda 19 adet A harfi basılıyor.

    sonrasında k tanımlı for döngüsü çalışıyor ve i =1 olduğu için k tanımlı olan döngü sadece bir kez çalışarak "* "(yıldız ve bir boşluk) ekrana yazıp bir alt satıra geçiliyor.

    i değişkeninin değeri 1 arttırılıp 2 yapılıyor. sonrasında tekrar j döngüsüne geçiyor. j tanımlı döngünün başlangıç değeri i değişkenine bağlı olduğu için 2 den başlıyor ve 18 kere A harfi basıyor.

    sonrasında k tanımlı değişkene geliyor. burada döngünün doğruluk şartı i değişkeni ile şartlandırıldığı için 2 kez çalışıyor ve ekrana "* * " yazıp bir alt satıra geçiyor.

    i değişkeni 1 arttırılıp 3 oluyor ve j döngüsüne geçiyor. j döngüsü 3 den başladığı için bu sefer 17 kez A harfi basıyor

    k döngüsünün doğruluk şartı bu kez i =3 olduğu için 3 kez çalışıyor ve ekrana "* * * "yazıp bir alt satıra geçiyor.

    mantık bu şekilde ilerleyerek 19 kez döngü devam ediyor


    Kasnak yuvarlandı elek oldu, eski orospular melek oldu...
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    Bu kodu,

    https://paste.ofcode.org/34mycE4jUkacbcbZN5xnDd7

    Burada adım adım çalıştırıp görselleştir.

    http://www.pythontutor.com/visualize.html#mode=edit

     


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    toxic_17
    toxic_17's avatar
    Kayıt Tarihi: 10/Ağustos/2017
    Erkek

    Hocalar anlatmış. Ben de basite indigeyerek iç içe foru şöyle anlatayım hocam: saatteki akrep yelkovan matığını düşün. Yelkovan her tur attığında akrep 12 de 1 kadar hareket eder. Yelkovan içteki for, akrep dışındaki. İçteki for(yelkovan) bi turu tamamladığında, dıştaki for(akrep) bir artıyor.

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mylitta
    Mylitta's avatar
    Kayıt Tarihi: 13/Nisan/2008
    Erkek

    Yardımlarınızla başardım, akrep yelkovan örneği en çok yardımcı olan oldu. 

    Hepinize sonsuz teşekkürler!


    Ayılıp bayılıp ayılıyoruz, bütün sokakları ayıkıyoruz
Toplam Hit: 3847 Toplam Mesaj: 17
c# iç içe for