Şimdi Ara

C# for Döngüsü

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
2
Favori
368
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam. Aşağıdaki C# fom application u nasıl yapabilirim.En fazla 3 for döngüsü kullanarak yapılması gerekiyor. Yardımcı olanlara olmayan çalışanlara şimdiden teşekkürler. Saatlerdir uğraşıyorum. Yeni başladığım için birtürlü beceremedim.(Console.Write kullanarak yapılmayacak. Teşekkürler)

     C# for Döngüsü



  • http://www.bilisimogretmeni.com/visual-studio-c/c-console-dongu-ornek-ve-uygulamalari.html BURADA N = 7 OLAN ÖRNEKTEKİNE BENZİYOR BENDE ACEMİYİM AMA BİRAZ DAHA UĞRAŞIRSAN BURADAKİ GİBİ YAPABİLİRSİN
    http://www.gorselprogramlama.com/yildiz-ile-dik-ucgen-olusturma-c-console/ BURADAKİNEDE BİR BAK İSTERSEN :)

    ______________________________________________________________________________________________________________________

    BEN ÇOK ACEMİ SAYILIRIM BİLGİN OLSUN :D



    < Bu mesaj bu kişi tarafından değiştirildi deniz caliskan -- 1 Mart 2017; 22:51:48 >




  • a'lar bir döngü, c'ler 2 döngü
  • sunlara bi bak
  • funky-nd kullanıcısına yanıt
    Hocam kodlar konusunda yardımcı olabilir misin acaba? Bir türlü beceremedim.
  • Console.Write() kullanılmayacak ne demek anlamadım, illa WriteLine() mı kullanmamız gerekiyor.
    Eğer o da yasaksa mürekkeple mi yazdıracağız

     
    public static void Main (string[] args) {

    int toplam_satir = 5;
    int toplam_sutun = 2 * toplam_satir;

    for (int satir = 1; satir <= toplam_satir; satir++) {

    for (int sutun = 1; sutun <= toplam_sutun; sutun++) {

    if ((sutun == satir) || (toplam_sutun - satir + 1 == sutun)) {
    Console.Write("a");
    }

    else if ((sutun <= satir -1) || (sutun > (toplam_sutun-satir))) {
    Console.Write("c");
    }

    else {
    Console.Write(" ");
    }

    }
    Console.Write("\n");
    }
    }

    Bunlar Write() kullanılmış kodlar, toplam_satir kısmını kullanıcıdan da alabilirsiniz ben değer verdim.
    İlla WriteLine() kullanın Write() olmaz diyecek bir hocanız varsa bunlar da WriteLine() kodları.
     
    public static void Main (string[] args) {

    String cikti = "";
    int toplam_satir = 5;
    int toplam_sutun = 2 * toplam_satir;

    for (int satir = 1; satir <= toplam_satir; satir++) {

    for (int sutun = 1; sutun <= toplam_sutun; sutun++) {

    if ((sutun == satir) || (toplam_sutun - satir + 1 == sutun)) {
    cikti += "a";
    }

    else if ((sutun <= satir -1) || (sutun > (toplam_sutun-satir))) {
    cikti += "c";
    }

    else {
    cikti += " ";
    }

    }
    Console.WriteLine(cikti);
    cikti = "";
    }
    }


    Kodlardan daha önemlisi mantık, öncelikle bu tür problemlere nasıl yaklaşmanız gerektiğinden bahsedeyim.
    Çıktı 2 boyutlu bir matris şeklinde, 2 boyutta sonuç aldığınız problemlerde en fazla 2 for kurulması gerekir.
    if-else kısımlarındaki kuralları bulmakta zorlanıyorsanız çıktıyı kareli bir kağıda yazın, elinizde iki for var biri satırlarda dolaşıyor diğeri sütunlarda, bütün değişkenleri (a'lar, c'ler ve boşluklar değişken burada) satır ve sütun türünden bulmaya çalışın.

    En iyi algoritma bu olmayabilir ama bu problem zaten n^2'den düşük karmaşıklıkla çözülemez.




  • Gerçekten çok ama çok teşekkür ederim. Mantığını biraz biraz çözdüm. Eminim birkaç örnek ve biraz daha zaman harcarsam çözebilirim. Elinize sağlık. İnanılmaz işime yaradı.

    Edit: Console.Write kullanılmayacak derken alttaki şekilde yazılmasından bahsetmiştim. Sanırım biraz eksik yazmışım.

    ( alt tireleri boşluk olarak varsayın lütfen)

    Console.WriteLine(“a________a”);
    Console.WriteLine(“ca______ac”);
    Console.WriteLine(“cca____acc”);
    Console.WriteLine(“ccca__accc”);
    Console.WriteLine(“ccccaacccc”);



    < Bu mesaj bu kişi tarafından değiştirildi 34redfs4 -- 2 Mart 2017; 20:10:43 >
  • Anladım çıktıyı doğrudan vermek yasak anlamında demişsiniz. Kolay gelsin.
  • 34redfs4 3 kullanıcısına yanıt
    Tek for döngüsü ilede yapılabilir şöyle ama Hocanızın sizden istediği 2 boyutlu arrayler(multidimension) ile @assembly_bilmeyenassembler arkadaşın yaptığı gibi
    int sıra_sayi = 5;
    int sütun_sayı = 10;
    if (sütun_sayı / 2 == sıra_sayi)
    {
    for (int i = 0; i <= 5; i++)
    {
    //Burda aradaki boşluk için ne kadar alan lazım onu buluyoruz i nin 2 ile çarpılmasının sebebi sağ tarafta birde c lerin eklenenmesi.
    int gecici_sag_a = sütun_sayı - (2 * i);
    Console.Write(new String('c', i) + "a" + new String(' ', gecici_sag_a) + "a" + (new String('c', i)) + "
    ");
    }
    }
    else Console.Write("Sütun sayısı sıra sayısının tam yarısı olmalıdır");



    < Bu mesaj bu kişi tarafından değiştirildi WHITE_Wolf -- 6 Mart 2017; 17:44:41 >
  • @WHITE_Wolf
    Aynen sizin yaptığınız gibi satır içindeki döngüyü oluşturma işini String() kurucusunun kendisine de bırakabiliriz. Sizin kod daha temiz.
    Okul hazır fonksiyonları kullanmayı unutturdu bize
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.