c# while döngüsü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
c# while döngüsü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Mart 2013 Salı

55 - While Döngüsü... EBOB Bulma...


EBOB u bulmaya çalışıyoruz... EBOB'u bulurken kullandığımız mantık ise şöyle; 

Öncelikle girilecek olan sayıların sıfırdan büyük girilmesi gerekiyor... Bunu While döngüsünün şartında kontrol ettiriyoruz... 2. aşama da ise en küçük olan sayıyı buluyoruz ve bu sayıdan itibaren 1 e kadar, iki sayımıza da MOD aldırıyoruz... 

İf şartı ile birlikte MOD alma işlemini yaptırmış oluyoruz... Eğer her iki sayımızı da ortak bölen bir sayı varsa onu EBOB ilan ediyoruz ve döngüyü bitirip sonucu gösteriyoruz... 

Programımızın bir hatası var... O da eğer 1 e kadar bölen bir ortak sayı bulamazsak o zaman hata verdirmemiz veya bir mesaj vermemiz gerekiyor... O kısmı da size bırakıyorum... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int sayi_1 = Convert.ToInt32(Console.ReadLine());
            int sayi_2 = Convert.ToInt32(Console.ReadLine());
     
            int bolen = sayi_2;  // sayi 2 küçükse en büyük bölen olarak sayi2 alınacak...
            if(sayi_2>sayi_1)    // ama sayi 2 büyükse bu durumda en büyük bölen için sayi 1 kullanılacaktır... 
                 bolen = sayi_1; // eğer her ikisi eşit ise zaten sayi2 olmasında mahsur yoktur... 

            bool bitir = true; // Ebob bulunduğu anda döngüyü bitirmek için kullanıyoruz... 

            // Amaç bu döngüye her koşulda girmek... Onun için girilen sayıların 1 den büyük olması yeterli...
            while ((sayi_1 > 1 || sayi_2 > 1) && bitir==true)  
            {
                if (sayi_1 % bolen == 0 && sayi_2 % bolen == 0) // Sayılarımızın ortak bölenlerini bulmaya çalışıyoruz... 
                {
                    bitir = false; // Ortak bölen bulunduysa döngüyü bitirmek için kullanıyoruz... 
                    Console.WriteLine("obeb = " + bolen); // Sonucu gösteriyoruz... 
                }
                else
                    bolen--; // Sayılarımız büyükten küçüğe doğru kontrol ediliyor... 
            }
            
            Console.ReadKey();
        }
    }
}

54 - While Döngüsü... Girilen Bütün Sayıları, Sıfır Girilinceye Kadar Toplayan Program


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            //Sıfır girilmediği sürece girilen bütün  sayıları toplayan program? 

            Console.Write("1. Sayıyı Giriniz...:");  //Sayı girişi işlemlerini yaptırıyoruz... 
            int sayi = int.Parse(Console.ReadLine());
            int i = 1; int toplam = 0; 
            while (sayi != 0) // Amacımız sıfır girilmediği sürece sayı girişine devam ettirmek... 
            {
                i++; // Adeti bulmak için kullanacağız... Sayaç İçin değil... 
                // Çünkü sonsuz döngü kurduk... Sadece sıfır girilirse döngüden çıkıyor... 
                Console.Write(i + ". Sayıyı Giriniz...:");
                sayi = int.Parse(Console.ReadLine());
                toplam += sayi; // Sayıları topluyor... 
            }

            Console.WriteLine(); 
            Console.WriteLine("Girilen sayıların adedi = " + i); // Adeti gösteriyoruz... 
            Console.Write("Girilen sayıların toplamı = " + toplam); // Toplamı gösteriyoruz... 
            Console.ReadKey();
        }
    }
}

53 - While Döngüsü... Girilen Sayı Negatif, Pozitif, Sıfır


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            /* Girilecek olan 10 tane sayıdan
          * a) Negatif olanların ortalamasını
          * b) Pozitif olanların toplamı
          * c) Sıfır olanların sayısını bulacak olan program?
          */
            int neg_ort = 0, neg_adet = 0, poz_toplam = 0, sifir_adet = 0;
            int i = 1;
            while (i <= 10)
            {
                Console.WriteLine(i + ".Sayıyı Gir...");      // 1.sayıyı gir, 2. sayıyı gir şeklinde mesaj verdiriyoruz... 
                int sayi = int.Parse(Console.ReadLine());
                if (sayi < 0)       // Sayı sıfırdan küçükse negatif sayı demektir... Adetini bulduruyoruz...
                {
                    neg_ort += sayi;
                    neg_adet++;
                }
                if (sayi > 0)  // Sayı sıfırdan büyükse pozitif sayı demektir... Ortalamasını bulduruyoruz...
                    poz_toplam = poz_toplam + sayi;

                if (sayi == 0)
                    sifir_adet++; // Sıfır olanların sayısını buluyoruz... 
                i++; // While döngüsünün sayacını bir artırıyoruz... 
            }

            Console.WriteLine("Negatif Olanların Ortalaması =" + (neg_ort/neg_adet).ToString());
            Console.WriteLine("Pozitif Olanların Toplamı = " + (poz_toplam).ToString());
            Console.WriteLine("Sıfır olanların adedi = " + sifir_adet);

            Console.ReadKey();
        }
    }
}

52 - While Döngüsü... Asal Sayı Örneği...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            // Girilecek sayının asal olup olmadığını bulacak olan program?

            Console.Write("Sayıyı giriniz:");
            int sayi = int.Parse(Console.ReadLine());
            bool asaldegil = false;  // Bool türünde değişkenler sadece true veya false değeri... 

            if (sayi <= 0) // sıfır veya sıfırdan küçük sayılar asal değildir... Sayının asal olması için pozitif olması gerekir... 
                Console.WriteLine("Asal sayılar sıfırdan küçük olmaz...");
            else
            {
                // Döngümüzü 2 den başlatıp girilen sayıya kadar götürüyoruz... 
                int i = 2;
                while(i < sayi)
                {
                    // Girilen sayıyı kendisine kadar olan bütün sayılara bölüyoruz... 
                    // Bir yerde sıfırı bulduğumuz anda sayının asal olmadığı anlaşılıyor... 
                    if (sayi % i == 0)
                    {
                        asaldegil = true; // sayı asal değilse bu değişkenimizi true yapıyoruz...
                        break; // Döngüde devam eden sayılara bakmamıza gerek yok, çünkü buraya girdiyse asal sayı değildir..
                        // break komutu yazıldığı for döngüsünü sonlandırmak için kullanılır... 
                    }
                    i++;
                }

                if (asaldegil) // İşte burada true false durumu işimize yaramış oluyor... 
                    Console.WriteLine(sayi + " Asal Sayı Değildir..."); // True ise asal sayı değildir... 
                else
                    Console.WriteLine("Asal Sayıdır..."); // false ise asal sayıdır... 

                // Bu arada if(asaldegil) diye yazabiliyoruz... Çünkü bool türündeki değişkenler sadece iki değer alabilir...
                // True veya false... Bu sebeple if şartında asaldegil==true yazmamıza gerek yoktur... 
            }

            Console.ReadLine();
        }
    }
}

51 - While Döngüsü... Girilen Sayı Negatif, Pozitif


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            // Sıfır girilenene kadar girilen bütün sayıların negatif ve pozitif olarak gösteren program?

            int neg = 0, poz = 0;
            int sayi = 1;  // Sıfır girmediğimiz sürece devam ettireceğimiz için ilk sayı olarak 1 giriyoruz...

            int i = 1; // Girilen sayı adetini gösteriyor...
            while (sayi != 0)  // Sayı sıfır değilse devam ediyor...
            {
                Console.Write(i + ".Sayıyı Gir...");  
                sayi = int.Parse(Console.ReadLine());

                if (sayi < 0)       // Sayı sıfırdan küçükse negatif sayı demektir... 
                    neg++;

                if (sayi > 0)  // Sayı sıfırdan büyükse pozitif sayı demektir... 
                    poz++;

                i++; 
            }

            Console.WriteLine();
            Console.WriteLine("Negatif Olanların Sayısı =" + (neg).ToString());
            Console.WriteLine("Pozitif Olanların Sayısı = " + (poz).ToString());

            Console.ReadKey();
        }
    }
}

23 Mart 2013 Cumartesi

50 - While Döngüsü... Girilecek İki Sayı Arasında Girilecek Olan Sayıya Tam Bölünenler...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication16
{
    class Program
    {
        static void Main(string[] args)
        { // Girilecek İki Sayı Arasında Girilecek Olan Sayıya Tam Bölünenler... 

            // 1. sayıyı ikinci sayıdan küçük girmeyi unutmayın... Onun kontrolünü yapmadık çünkü... 
            Console.Write("İlk Sayımızı Giriniz...:"); int s1 = int.Parse(Console.ReadLine());
            Console.Write("İkinci Sayımızı Giriniz..:"); int s2 = int.Parse(Console.ReadLine());
            Console.Write("Tam bölme yapacağımız sayımızı giriniz:"); int tam = int.Parse(Console.ReadLine());

            int i = s1; // 1. sayıdan döngüyü başlatıyoruz...
            while (i<=s2) // 2. sayıya kadar döngü gidiyor...
            {
                if (i%tam == 0) // Tam bölünüyorsa aşağıda sayıyı gösteriyor...  
                {
                    // Tam bölünüyorsa aşağıdaki satır ile ekranda yazdırıyor...
                    Console.WriteLine(i + " sayısı "+tam+" sayısına tam bölünebilmektedir...");
                }
                i++; // Döngü sırası ile artırılıyor... 
            }        
            
            Console.ReadKey();
        }
    }
}

49 - While Döngüsü.. .Tek Sayıların Toplamı...


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ciftsayilar
{
    class Program
    {
        static void Main(string[] args)
        {
            int goster = 0;   // goster değişkeni tek sayıların toplamını tutacağımız değişken olacaktır...

            int i = 1; // Tek sayılar olduğu için döngüyü 1 den başlatıyoruz...
            while (i <= 100)
            {
                goster = goster + i; // Döngü her çalıştığında sayaç olan i değeri ile bir önceki sonuç toplanıp goster değişkenine atanmaktadır...
                i = i + 2; // Artış ikişer... 
            }

            Console.WriteLine("1 den 100 e tek sayıların toplamı = " + goster.ToString()); // Sonucu burada gösteriyoruz... 
            Console.ReadKey();
        }
    }
}

48 - While Döngüsü... Girilen mesajı ekranda 5 defa yazdırmak...



For döngüsünün dışında ikinci kullanılan döngü while döngüsüdür... While döngüsünün bir çok yapısı vardır... Biz sadece bir yapısını göstereceğiz... Çünkü while döngüsü ile for döngüsü birbirine çok benzemektedir ve aynı işlevlere sahiptirler... İhtiyaca göre ikisinden birisi seçim olarak yapılabilir... Ama sadece bir kaç kullanımda buna ihtiyaç duyulur... Çoğu yerde aynı işlevi görürler...

While döngüsünün kullanımı şu şekildedir...

Hatırlayacağınız gibi For döngüsünde 3 basamak vardı... for döngüsünde ki basamakların kullanımı şu şekildeydi;

for (    1.Basamak   ;    2.Basamak      ;    3.Basamak   )
{
         Çalışması istenen kodlar...
}

1. Basamak: Başlangıç sayımızı belirtmek için kullanırız... Sayacımız nereden başlayacak... Bu durumda sayıyı  artırarak da devam edebiliriz, azaltarak da devam edebiliriz...

2. Basamak: if kısmında olduğu gibi şart ifadesidir... Döngünün nereye kadar gideceğini belirler...

3. Basamak: Döngünün artış hızını belirler... Ayağımız gaz pedalında... Kaçıncı vites ile gideceğiz.. .Buradan belirleriz...


While döngüsünde de yine 3 basamak vardır...

1. Basamak
While (2. Basamak)
{

         Çalışaması istenen kodlar...

3. Basamak
}

Yukarıda For döngüsü için kullandığımız açıklamalar bire bir While döngüsü içinde geçerlidir... Sadece yukarıda gösterildiği yerlerde yazmanız gereklidir...

Örnek: 1 den 10 kadar giden While Döngüsü...

int i= 1; // 1. Basamak
While(i<=10) //2. Basamak...
{
Console.WriteLine("Sayılarımız:" + i);
i++; // 3. Basamak
}

Biz For döngüsü ile yaptığımız örneklerden seçmeceler yaparak while döngüsünü göstereceğiz... Yani aynı örnekler için geçerli olacak... 8 örnek yaparak bu konuyu da tamamlayacağız... Belki bir kaç farklı örnek yaparız... :)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            string mesaj = Console.ReadLine(); // mesajı girdiriyoruz...

            int a = 1;
            while (a<=5) // döngüyü 5 e kadar çalıştıracağız...
            {
                Console.WriteLine(mesaj); // mesajı 5 defa ekranda göstermiş oluyoruz... 
                a++; // Döngümüzün artışını yapıyoruz... 
            }
            Console.ReadKey();
        }
    }
}