Yardım C# ile rastgele sayı seçen uygulama yapıyorum ama sorunum var?

Bu konuyu okuyanlar

Eratosthenes

Profesör
Katılım
15 Ocak 2021
Mesajlar
1,235
Çözümler
1
Reaksiyon puanı
853
Puanları
113
Girdiğim aralıkta rastgele bir sayı seçen uygulama yapacağım ama seçilen bir sayının bir daha çıkmaması gerekiyor bunu nasıl yapabilirim
@Eminkrkt
 
Son düzenleme:

MrtAltg

Dekan
Emektar
Katılım
22 Şubat 2007
Mesajlar
9,830
Reaksiyon puanı
12,066
Puanları
113
C# dan anlamam lakin şöyle bir şöy yapabilirsin örneğin sayı1 i rnd ile çektin sayı 2 yi rnd ile çektiğin zaman kontrol et sayı2= sayı 1 ise tekrar yaptır.
 

Emnn

Jet Sesi, Özgürlüğün Sesidir!
Emektar
Katılım
3 Mayıs 2021
Mesajlar
2,207
Çözümler
8
Reaksiyon puanı
1,848
Puanları
113
Şuan Linux'tayım deneme fırsatım olmadı ancak böyle bir şey olması lazım.

C#:
int min_sayi = Console.ReadLine("Minimum değeri giriniz : ");
int max_sayi = Console.ReadLine("Maksimum değeri giriniz : ");
Random rastgele = new Random();
int sayi = rastgele.Next(min_sayi,max_sayi);
int sayi_2 = rastgele.Next(min_sayi,max_sayi);
if(sayi_2 == sayi)
{
    int sayi_2 = rastgele.Next(min_sayi,max_sayi);
}
 

WindStone

ERROR 404
Katılım
11 Nisan 2020
Mesajlar
4,986
Çözümler
7
Reaksiyon puanı
2,596
Puanları
113
Yaş
20
Girdiğim aralıkta rastgele bir sayı seçen uygulama yapacağım ama seçilen bir sayının bir daha çıkmaması gerekiyor bunu nasıl yapabilirim
@Eminkrkt
uygulama birden fazla mı çalışacak ? Yani çıkan sayıyı kaydetmemiz mi gerekiyor ?
 

Eratosthenes

Profesör
Katılım
15 Ocak 2021
Mesajlar
1,235
Çözümler
1
Reaksiyon puanı
853
Puanları
113
uygulama birden fazla mı çalışacak ? Yani çıkan sayıyı kaydetmemiz mi gerekiyor ?
mantık şöyle

bir sayı seçilecek
bu sayı kaydedilecek
her seçimde çıkan sayı daha önce çıkmış mı diye sistem tarafından kontrol edilecek
sayı daha önce çıkmamış ise ekrana yazdırılacak ve sisteme kaydedilecek
daha önce çıkmış bir sayının tekrar çıkması durumunda sistem bunu algılayıp o sayıyı göstermeden başka sayı seçecek ve seçilen yeni sayıyı kaydedecek
Mesaj otomatik birleştirildi:

Şuan Linux'tayım deneme fırsatım olmadı ancak böyle bir şey olması lazım.

C#:
int min_sayi = Console.ReadLine("Minimum değeri giriniz : ");
int max_sayi = Console.ReadLine("Maksimum değeri giriniz : ");
Random rastgele = new Random();
int sayi = rastgele.Next(min_sayi,max_sayi);
int sayi_2 = rastgele.Next(min_sayi,max_sayi);
if(sayi_2 == sayi)
{
    int sayi_2 = rastgele.Next(min_sayi,max_sayi);
}
böyle yazınca program hata veriyor çalışmıyor
 

WindStone

ERROR 404
Katılım
11 Nisan 2020
Mesajlar
4,986
Çözümler
7
Reaksiyon puanı
2,596
Puanları
113
Yaş
20
mantık şöyle

bir sayı seçilecek
bu sayı kaydedilecek
her seçimde çıkan sayı daha önce çıkmış mı diye sistem tarafından kontrol edilecek
sayı daha önce çıkmamış ise ekrana yazdırılacak ve sisteme kaydedilecek
daha önce çıkmış bir sayının tekrar çıkması durumunda sistem bunu algılayıp o sayıyı göstermeden başka sayı seçecek ve seçilen yeni sayıyı kaydedecek
Mesaj otomatik birleştirildi:


böyle yazınca program hata veriyor çalışmıyor
array kullanmayı bilmeniz gerek sanırım. Array ile yapılabilir.
 

Eratosthenes

Profesör
Katılım
15 Ocak 2021
Mesajlar
1,235
Çözümler
1
Reaksiyon puanı
853
Puanları
113
C# dan anlamam lakin şöyle bir şöy yapabilirsin örneğin sayı1 i rnd ile çektin sayı 2 yi rnd ile çektiğin zaman kontrol et sayı2= sayı 1 ise tekrar yaptır.
hocam sizin dediğinizden şunu anladım
sayı aralığı kadar değişken oluşturmamız gerekiyor sonra çıkan yeni sayı bu değişkendeki sayılardan birine eşit mi diye kontrol etmemiz gerekiyor
böyle yazarsak doğru olur ama kısa aralıklar için uygun olur mesela 0 ile 100 arasında bir sayı çekeceğim bunun için 100 tane değişken oluşturmam gerekecek bu mantıksız olur
array kullanmayı bilmeniz gerek sanırım. Array ile yapılabilir.
Aslında çıkan her sayıyı diziye kaydetmeyi düşündüm ama çıkan yeni sayılar için kontrol işlemini nasıl yapacağımı bilemedim
 

WindStone

ERROR 404
Katılım
11 Nisan 2020
Mesajlar
4,986
Çözümler
7
Reaksiyon puanı
2,596
Puanları
113
Yaş
20
hocam sizin dediğinizden şunu anladım
sayı aralığı kadar değişken oluşturmamız gerekiyor sonra çıkan yeni sayı bu değişkendeki sayılardan birine eşit mi diye kontrol etmemiz gerekiyor
böyle yazarsak doğru olur ama kısa aralıklar için uygun olur mesela 0 ile 100 arasında bir sayı çekeceğim bunun için 100 tane değişken oluşturmam gerekecek bu mantıksız olur

Aslında çıkan her sayıyı diziye kaydetmeyi düşündüm ama çıkan yeni sayılar için kontrol işlemini nasıl yapacağımı bilemedim
onun için bir for döngüsü hazırlayıp döngü bittiğinde döngü elemanını sıfırılayabilirsin.
 

MrtAltg

Dekan
Emektar
Katılım
22 Şubat 2007
Mesajlar
9,830
Reaksiyon puanı
12,066
Puanları
113
hocam sizin dediğinizden şunu anladım
sayı aralığı kadar değişken oluşturmamız gerekiyor sonra çıkan yeni sayı bu değişkendeki sayılardan birine eşit mi diye kontrol etmemiz gerekiyor
böyle yazarsak doğru olur ama kısa aralıklar için uygun olur mesela 0 ile 100 arasında bir sayı çekeceğim bunun için 100 tane değişken oluşturmam gerekecek bu mantıksız olur

Aslında çıkan her sayıyı diziye kaydetmeyi düşündüm ama çıkan yeni sayılar için kontrol işlemini nasıl yapacağımı bilemedim
Hayır bu şekil değil
mantık şöyle

bir sayı seçilecek
bu sayı kaydedilecek
her seçimde çıkan sayı daha önce çıkmış mı diye sistem tarafından kontrol edilecek
sayı daha önce çıkmamış ise ekrana yazdırılacak ve sisteme kaydedilecek
daha önce çıkmış bir sayının tekrar çıkması durumunda sistem bunu algılayıp o sayıyı göstermeden başka sayı seçecek ve seçilen yeni sayıyı kaydedecek
Mesaj otomatik birleştirildi:


böyle yazınca program hata veriyor çalışmıyor
Aslında yaklaşmışsın burada sayıyı çektin onu bir değişkene ata varsayalım sayı1 daha sonra ikinci sayı için değişkeni ilk değişken +1 şeklinde yaparak çoğalt ve bu değişkeni diğer çıkan değişkenler ile kontrol et.
 

Castaft

Doçent
Katılım
9 Haziran 2020
Mesajlar
928
Reaksiyon puanı
900
Puanları
93
ArrayList sayilar = new ArrayList();
int sayac=0;
Random random = new random();
int sayi=random.Next(min,max);
sayilar.add(sayi);
foreach(Object obj in sayilar){

if (Convert.ToInt32(obj)==sayi)){
sayac++;
}
}
if(sayac>0){
sayac=0;
sayi=random.Next(Min,Max);
}
 

bybyetm

Öğrenci
Katılım
4 Mayıs 2022
Mesajlar
3
Reaksiyon puanı
3
Puanları
1
Yaş
34
C#:
int[] sayilar= new int[10];//burada int dizisi oluşturuyoruz.Dizinin eleman sayısı ise 10 (on).
Random r = new Random();// "r" adında bir Random değişkeni atıyoruz.
int i = 0;// "i" adında bir int değişkeni atıyoruz ve değişkenin değerini 0 (sıfır)yapıyoruz.
//while döngüsü oluşturuyoruz .Bu döngüde içinde yazmış olduğumuz
//koşul sağlandığı sürece sürekli kendini tekrar eder.
 while (i < 10)// "i" ,10 den küçük olduğu sürece döngüye devam eder.
 {
int sayi = r.Next(0, 50);// 0 ile 50 arasında rasgele bir sayı üretip onu "sayi" değişkenine atar.
if (sayilar.Contains(sayi))// "sayilar" dizisinin içinde "sayi" nın değeri olup olmadığını kontrol eder.
continue;// Eğer var ise döngünün içindeki başka hiçbir koda bakmadan devam eder.        
sayilar[i] = sayi;//Burada "sayi"değişkeninin değerini "sayilar"dizisinin "i" ninci elemanına atıyoruz.
// Yani "i" 5 ise "sayilar" dizisinin 5. elemanına(sayilar[5]) .
i++;// "i" değişkeninin değerini 1 arttırıyoruz.Açılımı şu şekildedir ( i= i + 1 ;)
}//Burada ise koşulu kontrol eder ve koşul sağlanıyor ise devam eder ,sağlanmıyor ise döngü biter.
Array.Sort(sayilar);//Burada diziyi küçükten büyüğe sıralar.
foreach (int sayi in sayilar)//Burada dizi içindeki sayıları sırasıyla "sayi"değişkenine atar.
Console.WriteLine(sayi);// "sayi" değişkenini yazdırır
Console.ReadKey();//Konsol uygulamasını sonlandırmak için sizden herhangi bir tuşa basmanızı bekler.
Mr.Cabbar
 
Üst