Şimdi Ara

Sayısal Loto Programı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
10
Cevap
0
Favori
1.134
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<time.h>
    int main()
    {
    int a,b=1,sayi;
    srand(time(NULL));
    printf("***sayisal loto***\n\n");
    while(b<=6){
    printf("%d.kolon\t",b);
    for(a=1;a<=6;a++){
    sayi=rand()%50;
    printf("\t%d ",sayi);}
    b++;
    printf("\t\n");}
    getch();
    }



    Arkadaşlar kendimce sayısal loto programı yazmaya çalşıyorum. Rastgele sayılar üretebildim ama bu sayıları kendi guruplarında küçükten büyüğe sıralayamadım yardımcı olabilir misiniz?



  • Ustelik sayi kontrolu de yapmiyorsun. Yani sayisal loto sonucun 7-7-7-7-7-7 gelebilir. Bu yuzden dizi (array) mantigina bakman lazim. Sayilari diziye atman ve siralama islemlerini ve varolup olmama kontrollerini bu dizi icerisinde yapiyor olman lazim.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • ufak bir detay

    sayi=rand()%50 dersen 0-50 arası bir sayı cıkarır.

    sayi=rand()%49+1 şeklinde yaparsan eğer 1-49 arası bir sayı belirler.

    Çıkan sayıları diziye ataman gerekli ve bu dizi içerisinde aynı sayıdan çıktı mı diye kontrol etmen gerekli.Eğer aynı sayıdan çıktıysa sayı tekrardan belirlenmelidir.

    kod olarak vermicem nickinde mühendis yazıyor biraz uğraşırsan çok zor değil.
  • sayıları diziye at ve kontrol et aynı sayı var mı diye.
    sonra sort algoritmalarına bir bak,bubble sort kolaydır. Bir araştır. 3 satır kodu var zaten.
  • quote:

    Orijinalden alıntı: Kaygerya

    Ustelik sayi kontrolu de yapmiyorsun. Yani sayisal loto sonucun 7-7-7-7-7-7 gelebilir. Bu yuzden dizi (array) mantigina bakman lazim. Sayilari diziye atman ve siralama islemlerini ve varolup olmama kontrollerini bu dizi icerisinde yapiyor olman lazim.

    Ben bu işlemi c# da yapmak istiyorum. Ancak bende her sayı için farklı butonlar bulunmakta. Yani 1. buton 1.labela rastgele sayı atayacak. 2. buton 2.labela ... Sizce bunu nasıl yapabilirim ? Dizi işlemiyle gerçekleştiremedim.
  • quote:

    Orijinalden alıntı: Portman

    quote:

    Orijinalden alıntı: Kaygerya

    Ustelik sayi kontrolu de yapmiyorsun. Yani sayisal loto sonucun 7-7-7-7-7-7 gelebilir. Bu yuzden dizi (array) mantigina bakman lazim. Sayilari diziye atman ve siralama islemlerini ve varolup olmama kontrollerini bu dizi icerisinde yapiyor olman lazim.

    Ben bu işlemi c# da yapmak istiyorum. Ancak bende her sayı için farklı butonlar bulunmakta. Yani 1. buton 1.labela rastgele sayı atayacak. 2. buton 2.labela ... Sizce bunu nasıl yapabilirim ? Dizi işlemiyle gerçekleştiremedim.

    Dizi ile yapamadiysan tek yol buttona basinca random sayi uretip bu sayi diger labellerde mevcut mu diye kontrol ettirip random sayi labellerdekine esit olmayana kadar random sayi uretip esit olmayinca da labele yazmak sureti ile cozulebilir

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • quote:

    Orijinalden alıntı: Kaygerya


    quote:

    Orijinalden alıntı: Portman

    quote:

    Orijinalden alıntı: Kaygerya

    Ustelik sayi kontrolu de yapmiyorsun. Yani sayisal loto sonucun 7-7-7-7-7-7 gelebilir. Bu yuzden dizi (array) mantigina bakman lazim. Sayilari diziye atman ve siralama islemlerini ve varolup olmama kontrollerini bu dizi icerisinde yapiyor olman lazim.

    Ben bu işlemi c# da yapmak istiyorum. Ancak bende her sayı için farklı butonlar bulunmakta. Yani 1. buton 1.labela rastgele sayı atayacak. 2. buton 2.labela ... Sizce bunu nasıl yapabilirim ? Dizi işlemiyle gerçekleştiremedim.

    Dizi ile yapamadiysan tek yol buttona basinca random sayi uretip bu sayi diger labellerde mevcut mu diye kontrol ettirip random sayi labellerdekine esit olmayana kadar random sayi uretip esit olmayinca da labele yazmak sureti ile cozulebilir

    Anladim bu yöntemle yapabilirim. Ancak benim dizi yöntemini seçmenin nedeni eğer ki elimde 6 buton değil 50 buton olsaydi ve ayni işlemi gerçekleştirilmesi istenseydi 50 labeli kontrol etmek amele usulü olacaktı. Bu yüzden diziye kullanmak istedim. Eğer bu işlem diziyle mümkünse nazil yapabilirim? Acaba bir metotta diziye farklı sayilar atayip buton click olayinda metotu cagirma işlemi gibi birşey mi yapmam gerek.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • int değer tutan 6 elemanlı bir dizi yapacaksın. default değerleri 0 olacak.
    1 tane de button olacak.

    buttona bastıgında,
    bir random sayı üreteceksin, ve bu sayı da dizide var mı diye for dongusu ile dönüp bakacaksın.
    dizide yoksa ekleyeceksin, var ise yeniden bir sayı üreteceksin.
  • Arkadaşlar bu derste basit bir sayısal loto çekiliş programı yapımını göstereceğiz.

    Forma eklemeniz gereken araçlar

    6 Tane TextBox - Yan Yana dizilecek
    7 tane Label Ekleyin - Her birini texbox'ların altına ve 7. Label'ı en alta ekleyin

     Sayısal Loto Programı


    kodlar:

    Public Class Form1 
    '6 adet sayının tutulacağı 6 değişken tanımladık.
    Dim a As Integer
    Dim b As Integer
    Dim c As Integer
    Dim d As Integer
    Dim x As Integer
    Dim f As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click



    Randomize()
    a = Rnd() * 49


    back1:
    Randomize()
    b = Rnd() * 49

    If b = a Or b = 0 Then
    GoTo back1
    End If

    'ÜÇÜNCÜ SAYIMIZI ÇEKİYORUZ. ÖNCEKİ SAYILARA VE 0'A EÞİT OLMASI DURUMUNDA YENİDEN ÇEKİLİÃŞ YAPILACAK.
    back2:
    Randomize()
    c = Rnd() * 49

    If c = a Or c = b Or c = 0 Then
    GoTo back2
    End If

    'DİĞER SAYILARIMIZI ÇEKMEYE DEVAM EDELİM.
    back3: Randomize()
    d = Rnd() * 49

    If d = a Or d = b Or d = c Or d = 0 Then
    GoTo back3
    End If


    back4:
    Randomize()
    x = Rnd() * 49

    If x = a Or x = b Or x = c Or x = d Or x = 0 Then
    GoTo back4
    End If


    back5:
    Randomize()
    f = Rnd() * 49

    If f = a Or f = b Or f = c Or f = d Or f = x Or f = 0 Then
    GoTo back5
    End If
    End Sub




    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


    Dim tutan As Integer
    tutan = 0

    'GİRİLEN SAYILARIN ALTINDAKİ LABEL'LARDA ÇEKİLİŞTE ÇIKACAK SAYILAR BELİRLENECEK.
    Label1.Text = a
    Label2.Text = b
    Label3.Text = c
    Label4.Text = d
    Label5.Text = x
    Label6.Text = f



    If TextBox1.Text = a Or TextBox2.Text = a Or TextBox3.Text = a Or TextBox4.Text = a Or TextBox5.Text = a Or TextBox6.Text = a Then
    tutan = tutan + 1
    End If
    If TextBox1.Text = b Or TextBox2.Text = b Or TextBox3.Text = b Or TextBox4.Text = b Or TextBox5.Text = b Or TextBox6.Text = b Then
    tutan = tutan + 1
    End If
    If TextBox1.Text = c Or TextBox2.Text = c Or TextBox3.Text = c Or TextBox4.Text = c Or TextBox5.Text = c Or TextBox6.Text = c Then
    tutan = tutan + 1
    End If
    If TextBox1.Text = d Or TextBox2.Text = d Or TextBox3.Text = d Or TextBox4.Text = d Or TextBox5.Text = d Or TextBox6.Text = d Then
    tutan = tutan + 1
    End If
    If TextBox1.Text = x Or TextBox2.Text = x Or TextBox3.Text = x Or TextBox4.Text = x Or TextBox5.Text = x Or TextBox6.Text = x Then
    tutan = tutan + 1
    End If
    If TextBox1.Text = f Or TextBox2.Text = f Or TextBox3.Text = f Or TextBox4.Text = f Or TextBox5.Text = f Or TextBox6.Text = f Then
    tutan = tutan + 1
    End If

    Label7.Text = tutan & " adet sayi tutturdunuz"

    End Sub
    End Class




    Kaynak >>




  • Forumda daha önce yazmış olduğum kod parçası....


     

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    #include<algorithm>
    #include<iomanip>

    using namespace std;

    int main()
    {
    srand((unsigned)time(NULL));
    const int BOYUT=48;
    int rastgeleSayi;
    int dizi [BOYUT]={0};


    for(int i=1;i<=BOYUT;i++)
    {

    while(true)
    {
    rastgeleSayi=rand()%48;

    if(dizi[rastgeleSayi]==0)
    {
    dizi[rastgeleSayi]=i;
    break;

    }

    }

    }

    sort(dizi,dizi+6);
    system("Color 1A");

    cout<<"********** Bu hafta'nin sansli numaralari **********"<<endl;

    for(int i=0;i<6;i++)
    {

    cout<<setw(7)<<dizi[i]<<" ";
    }

    cout<<endl;
    cin.get();
    return 0;
    }






    < Bu mesaj bu kişi tarafından değiştirildi fenasi44 -- 2 Nisan 2014; 0:42:47 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.