Anasayfa / Yazılım / C# / Random Sınıfı – Döngüler ve Diziler

Random Sınıfı – Döngüler ve Diziler

Random sınıfının kullanımı ile alakalı bir örnek daha yapalım. Bu örneğimizde kullanıcıdan bir sayı istenecek ve bu sayı rasgele olarak 1 ile 100 arasındaki 10 tane değer ile çarpılıp bir listbox’a yazdırılacak. Seçilen rastgele 10 değer birbirinden farklı olmak zorunda..

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

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

        //Çarpma işlemi için bir metot tanımladım.
        void Carp()
        {
            //Tam sayı girilmesi için try catch bloğu kullanıyorum. Ben burada kullandım isterseniz metotta kullanmayabilirsiniz..
            try
            {
                //Kullanıcıdan sayı alıyorum.
                int GirilenSayi = Convert.ToInt32(txtSayi.Text);
                //Elimde 10 tana rastgele sayı oluştuğu için 10 defa bu sayıları girilen sayı ile çarpıyorum ve ilgili listboxa sonucu yazıyorum.
                for (int i = 0; i < 10; i++)
                {
                    lbCarpmaSonucu.Items.Add((Convert.ToInt32(lbRastgeleSayilar.Items[i]) * GirilenSayi));
                }
            }

            //Kullanıcı string bir ifade ya da bir tam sayı girmediğince catch bloğu çalışacak.
            catch (Exception)
            {
                MessageBox.Show("Lütfen bir tam sayı giriniz");
            }
        }
        //Sayı dizimi oluşturuyorum.
        int[] SayiDizisi = new int[10];
        private void btnCarp_Click(object sender, EventArgs e)
        {
           //Butona her basışımda listboxlarımı temizliyorum.
                lbRastgeleSayilar.Items.Clear();
                lbCarpmaSonucu.Items.Clear();
             //Random sınıfımı tanımladım.   
                Random rnd = new Random();
            //10 tana rasgele sayı üreteceğim için döngü tanımladım.
                for (int i = 0; i < 10; i++)
                {
                    //rastgele sayı üretiyorum 1 ile 100 arasında..
                    int uretilenSayi = rnd.Next(1, 100);
                    //Üretilen sayı dizim içinde varmı yok mu buna bakıyorum. Eğer varsa döngü tekrarlasın diye sayacımı azaltıyorum.
                    if (SayiDizisi.Contains(uretilenSayi))
                    {
                        i--;
                    }
                        //Eğer yoksa bu sayıyı dizime ve listboxa ekliyorum.

                    else
                    {
                        SayiDizisi[i] = uretilenSayi;
                        lbRastgeleSayilar.Items.Add(uretilenSayi);                        
                    }
                }

            //metodumu çalıştırıyorum.
                Carp();               
           
        }
    }
}

İndirmek için aşağıdaki linki kullanabilirsiniz..

{filelink=33}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir