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}