C# break komutu kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# break komutu kullanımı etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

7 Nisan 2013 Pazar

14 - For Döngüsü... Asal Sayı Bulmak...


Form tasarımı aşağıdaki gibi olacaktır...


Program kodları ise aşağıdaki gibi olacaktır...

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _44_For_Asal_Sayı
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        { // Girilecek sayının asal olup olmadığını bulacak olan program?
            int sayi = int.Parse(textBox1.Text);
            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... 
                 MessageBox.Show("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... 
                for (int i = 2; i < sayi; i++)
                {
                    // 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... 
                    }
                }
                 if (asaldegil) // İşte burada true false durumu işimize yaramış oluyor... 
                     MessageBox.Show(sayi + " Asal Sayı Değildir..."); // True ise asal sayı değildir... 
                 else
                     MessageBox.Show("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... 
        }
    }
}


3 Nisan 2013 Çarşamba

65 - Random - Break... 5 Defada Sayı Tahmini...


Bu örnekte biraz daha farklı bir algoritma kullandık... Aşağı, yukarı diye yönlendirmeler yerine tahmin ipucular ile sayısal veriler verdik... Bunun için de girilen sayı ile aranan sayı arasındaki farkı bulup 2 ile 4 arası bir sayıya böldürdük... 2 ile 4 arasında hangi sayı olacağını ise bilgisayarın karar vermesini istedik... Yani bir tane daha rastgele sayı ürettik... 

En iyi anlama yolu elbetteki programın sağlamasını yapmaktır... Bir tane sayısal örnek ile anlatalım;

Örneğin bilgisayarın belirlediği sayı 60 olsun... Bizim de ilk olarak girdiğimiz sayı 80 olsun... Bu durumda girdiğimiz sayı, bilgisayarın belirlediği sayıdan büyük olduğu için 80-60 = 20 ile aradaki farkı bulacağız... Yani 20'yi... Bulduğumuz bu farkı da bilgisayarın atayacağı ikinci rastgele sayı ile 2-4 arası bir bölüm yapacağız... Bilgisayar rastgele olarak burada 2 atarsa 20/2 = 10 sayısını bulacağız...

Kullanıcıya, girmiş olduğun sayıya 10 veya daha üstünde aşağı git diye mesaj veriyoruz... Bu sayede 80 giren kullanıcı 70 veya 70 den daha küçük bir sayı olduğunu anlamış oluyor... 

Tabii bu rastgele oluşturulmuş olan bir algoritma... Daha farklı algoritmalarda elbette yapılabilir... O da size kalmış... 

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

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            // Sayı tahmin oyunlarından bir tanesi daha... Sadece ipucu algoritmamız biraz farklı...
            Random uret = new Random();
            int aranan = uret.Next(1, 100);// 1-100 arası rastgele sayı atandı...

            int i = 1; // Sayaç için kullanıyoruz... 
            while (i<=5)
            {
                Console.Write(i + ". Sayı Tahminini Yapınız:");
                int girilen = int.Parse(Console.ReadLine()); // Sayıyı girdiriyoruz... 

                if (girilen == aranan) 
                {
                    // Sayıyı bulursak kaçıncı defada bulduğumuzu yazdırıyoruz... 
                    Console.Write("Sayıyı " + i + ". seferde buldunuz...");
                    break; // Sayıyı bulduktan sonra döngüyü kırıyoruz ve çıkıyoruz... 
                }
                else if (girilen > aranan) // Girilen sayı büyükse aşağıdaki algoritma ile aşagı gitmesini söylüyoruz...
                    Console.WriteLine((girilen-aranan)/uret.Next(2,4) + " sayı veya daha fazla aşağı...");
                else if (girilen < aranan) // Girilen sayı küçükse tersini yapıyoruz... 
                    Console.WriteLine((aranan - girilen) / uret.Next(2, 4) + " sayı veya daha fazla yukarı...");
                i++;
            }

            if (i > 5) // Buraya girmesinin tek yolu yukarıdaki döngünün tamamlanmasıdır... Zaten bu durumda sayı bulunamamıştır... 
                Console.Write("Sayıyı bulamadınız... Sayı= " + aranan);
            Console.ReadKey();
        }
    }
}

2 Nisan 2013 Salı

64 - Random - Break... Rastgele Sayı Tahmini 3 Hak...



Break Komutu: Her hangi bir döngüyü kullanıldığı yerde yarıda kesen ve döngüden çıkan komuttur... Break komutu döngüde istediğimiz sonuca ulaştığımız anda kullanılan bir komuttur. İşlevsel olarak da döngüyü kırarak programı döngüden sonradan devam ettirmeyi sağlar... 

Aşağıdaki programımızda öncelikle bilgisayara rastgele bir sayı atatıyoruz... 3 defa çalışacak bir while döngüsü kuruyoruz... Amacımız kullanıcının 3 defada rastgele atanmış olan bu sayıyı bulması... Bunun için yardım da ediyoruz... Eğer kullanıcının girdiği sayı bulunması gerekenden küçükse YUKARI, tersi durumsa AŞAĞI diye mesaj verdirerek yönlendirme yapıyoruz... Tabii bir de 3 hakda bulunamazsa bir if ile bunun kontrolünü yapıyoruz... Eğer i=3 veya daha büyükse zaten bulunamadı demektir... 

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

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
           // 1-10 arası rastgele bir sayı ataması yapılsın... Atanan bu sayıyı bulmaya çalışalım... 

            // Rastgele sayı atadık...
            Random bul = new Random();
            int deger = bul.Next(1, 10);

            // Tahmin hakkı olarak 3 defa verdik... 
            int i = 1;
            while (i <= 3)
            {
                //Eleman sayı girdi... 
                Console.Write("Sayıyı gir..:");
                int sayi = int.Parse(Console.ReadLine());
                
                // Sayıyı bulmaya çalıştık...
                if (deger == sayi)
                {
                    Console.Write("doğru sayıyı buldunuz...");
                    break; // Döngüyü kıran komut...
                }
                else if (deger > sayi)
                    Console.WriteLine("Yanlış tahmin... YUKARI...");
                else if (deger <sayi)
                    Console.WriteLine("Yanlış tahmin... AŞAĞI...");
                i++;
            }

   // Sayı bulunamadığı takdirde ekranda gözükecek...
   if(i>3)
                    Console.WriteLine("Bulamadığınız Sayı: " + deger);
            Console.ReadKey();
        }
    }
}