pillinetwork hesabınızla giriş yapın.

C#'da array, random,swicth kullanımı ve şans oyunu olasılık hesaplama

\
Merhaba arkadaşlar array, random sınıflarını da tanıyacağımız bu makalenin ilginç bir hikayesi var gerçekten. Her programcı gibi bir nebze olsun içinizde bir program, bir proje yapıp köşeyi dönme isteği olduğunu düşünüyorum. işte yine böyle günlerden birinde kafama bir şey dank eder.Milli Piyangomuzun 10 numara oyunu için bir program yapsak(çıkma olasılığı nispeten daha yüksek bir oyun) şöyle üç beş bin tl'lik 10 numara oynasaydık bize çıkarmıydı diye aklımızdan geçti ve programı yazmaya karar verdim. neyse uzatmadan konuya geçelim.

oyundan kısaca bahsedecke olursak 80 sayodan 22 sayı çekiliyor 10 tanesini bilirseniz büyük ikramiye sizin çok sayı çekildiği için olasılık yüksek gibi. üstelik 9 bilene de fena vermiyor. 8,7,6 ve 0 biline de ikramiyeler var.

gerisini programın içinde anlatıyorum. açıklama satırlarını takip edebilirsiniz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
//labellerımızı boşaltalım
Label1.Text = <a href="http://www.kodaman.org/etiket/----------Label.Text-">;
Label2.Text = </a>;
Label4.Text = <a href="http://www.kodaman.org/etiket/----------Label.Text-">;
Label3.Text = </a>;
//random değişkenimizi tanımyoruz. ve random sınıfından oluşturuyoruz. daha sonra next komutu ile sayıları türeteceğiz.
Random random = new Random();
//0 bilen, 6 bilen,7,8,9,10 bilene verilen ikramiyeleri tanımlıyoruz ben bu hafta için tanımladım.
//burda array tanımlanın bir yolu da görünüyor.
//değişken türünden sonra [] işareti ile tek sıralı bir dize tanımlıyoruz. sayi[1],sayi[2] gibi
double [] ikramiyeler=
{ 1.45,
1.70,
9.90,
70.35,
1303.85,
200398.03
};
//burda da değişik bir tanımlama yöntemi değişkenleri oluşturuyoruz boyut belirliyoruz ama işlerini sonra dolduracağız.
//3 ayrı değişkten dizesi tanımladık sayılar 80 adet sayı için, cekilen 22 adet ve sizin tahmininiz 10 adeet
int[] sayilar = new int[100];
int[] cekilen = new int[30];
int[] oynanan = new int[15];
//80 sayıyı oluşturalım ve label 1'e yazalım.
int i = 0;
while (i < 80)
{
i++;
sayilar[i] =i;
Label1.Text += sayilar[i].ToString() + "- ";
}
//80 adet mi kayıt döndü kontrol
Response.Write("dönen kayıt:" + i.ToString());
//burada da çekilişimi yapıyoruz yani birbirinden farklı 22 adet sayıyı 80 sayı içiden seçeceğiz
//ras değişkeni sayının bulunup bulunmadığını kontrol edecek. tekrar önlemek için
//j 22 sayı çekmek ve kac da dönen kaydı kontrol için.
int ras = -1;
int j = 0;
int kac = 0;
while (j < 22)
{
//random sınıfımızdan türettiğimiz değişken ile 1-80 arası sayı türetme yapıyoruz.
ras = random.Next(1, 80);
//eğer türetilen sayı daha önce türetilmemişse işlemlere geçiyoruz.
//türetilmişse zaten while dönmeye devam edecek çünkü j artmayacak. başka sayı türetilecek.
//array.index of komutu array listemizde arama yapmak için. ras değişkenimizi cekilen dizesinde arıyor.
if (Array.IndexOf(cekilen, ras) == -1)
{
//sayı tekrarsızsa cekilenlere ekliyoruz. ve ji sonraki sayı için arttırdık.
j++;
cekilen[j] = ras;
//çekilen sayılarımzı label2'e attık.
Label2.Text += cekilen[j].ToString() + "- ";
//üstte bir de metin kutularına attım.çekiliş sonuçlarını
TextBox kutu = new TextBox();
kutu.ID = "TextBox" + j.ToString();
kutu.Width = 20;
kutu.Text = ras.ToString();
PlaceHolder1.Controls.Add(kutu);
}
}
//22 kayıt dönmesi gerek. kontrol kodumuz.
Response.Write("dönen kayıt:" + j.ToString());
//bildikleriniz
double toplam = 0;
int kolon = 0;
//evet çekiliş ve sayı oluşturma tamam peki ya oynayacağımız kolonlar
//işte şimdi istediğiniz kadar random kolon türetecek işlemlere geçiyoruz.
//500 kolon türettim ben demelerim için. yani 250 tl lik bir oyun.
for (int k = 1; k <= 500; k++)
{
//burda kolon ve bulunmayı sıfırlıyoruz (ras) benzersiz sayı testini burada da yapmamız gerekli.
kolon = k;
ras = -1;
j = 0;
kac = 0;
Label4.Text += "<br>" + k.ToString() + " : ";
//10 sayı oynama hakkımız var her kolon için.
while (j < 10)
{
//80 sayı içinden ragele 10 sayımız sırayla oluşuyor.
ras = random.Next(1, 80);
//ras değişikenimiz benzersizse işleme geçiyoruz.daha önce aynı sayı gelmemişse
if (Array.IndexOf(oynanan, ras) == -1)
{
j++;
//oynadığımız sayılar listesini oluşturoyoruz.
oynanan[j] = ras;
//ceikilen sayılarda arsgele sayımızı arıyoruz varsa bilme işini artırıyoruz.
if (Array.IndexOf(oynanan, ras) != -1 && Array.IndexOf(cekilen, ras) != -1)
{
kac++;
//bu label'da bilinen sayıları bold yapar gereksiz bi kod.
Label2.Text = Label2.Text.Replace(ras.ToString(), "<b>" + ras.ToString() + "</b>");
}
//oynanan kolonumuzu sıralı şekilde yazıyoruz. 10 sayı olacka döngü bitiminde
Label4.Text += oynanan[j].ToString() + "- ";
}
}
// Response.Write("dönen kayıt:" + j.ToString());
//6 veya 0 bildiysek ikramiye kazandık.
if (kac >= 6 || kac==0)
{
Label3.Text += kac.ToString() + " bildiniz (" + k.ToString() + ".satir)<br />";
//burda switch ve arrayların kullanımını görüyorsunuz.
//kac sayısının 0,6,7,8,9,10 için üstteki ikramiye değerlerini topluyor.
switch (kac)
{
case 0:
toplam += ikramiyeler[0];
break;
case 6:
toplam += ikramiyeler[1];
break;
case 7:
toplam += ikramiyeler[2];
break;
case 8:
toplam += ikramiyeler[3];
break;
case 9:
toplam += ikramiyeler[4];
break;
case 10:
toplam += ikramiyeler[5];
break;
}
}
}
//o kadar oynadık bakalım karda mıyız zararda mı diyenler buyursunlar
//kolonu 0.50 tlden bir hesap.
Label3.Text += "<br />kaybedilen:" + Convert.ToString(kolon * 0.50) + " TL kazanilan :" + toplam.ToString() + " TL";
//bildikleriniz sonu

sonucu merak edenler söyliyim. beklediğimiz olasılıktan çok daha düşük bir olasılık çıktı. 5000 kolon ile denediğimizde bile anca yüzde 20si kadar bir ikramiye kazanabiliyorsunuz. çok istisna bir durum olmazsa. tabi bilgisayarınız kasılıyor biraz hesaplamak için. üstelik defalarca tıklamanıza rağmen 10 bilmeyi geçtim 9 bile 1 kere denk geldi ancak. üstelik her tıkta 250 tl kaybettiğinizi unutmayın.

yine de şöyle düşünlere iyi bir cevap oldu. gerçekten olasılık değil şans oyunu olduğunu görmüş olduk.
- lan para olcak bascan 2-3 milyarlık oynıcan.
- adamlar zengin abi bi oynuyo 300 milyonluk

yok denemeyin. önce test edin kendiniz görün.şahsen değil çok paralık az oynası bile kalmıyor insanın şuanki sistem 500 kolon ile test ediyor. yani 250 liralık. deneyin görün. kazancınızı da görebiliyorsunuz. genelde full zarar oluyor ama. çok tıklamayın sunucumu fazla yormayın. :) beni de hostumdan etmeyin.

denemek isteyenler buradan.
programı indirmek isteyenler ise buradan buyursunlar.

Spacer
Spacer
/* vectro yazdı. 02 Nisan 2009 12:36. 38 yorum var */

Yorumlar

bu şekilde değil de, en çok çıkmış rakamları baz alan bir generator yazmak daha mantıklı değil mi? Birde böyle deneyin bakalım, %20 kaça çıkıyor?

merhaba bir de şu şekilde deneseniz durum nasıl olur?

oyun yapısı 80 rakamdan 22 adet seçiliyor. Bu 22 rakamdan içerisinde sizin yazdığınız 10 rakam gelirse büyük ödül kazanıyorsunuz. Şimdi biz bu on rakamı tutturmuş olalım. Bizim yazmadığımız ama çekilişte çıkan 12 adet rakam daha var. sistemin işleyişini 80-12=68 rakam üzerinden yapsak. sistem 80 rakamdan 22 adet kazanan numarayı belirlese, biz ise oynadığımız rakamları 68 ile sınırlı tutsak, çoklu oynama ile şansımızı arttıra biliriz diye düşünüyorum.

@osmansafak anlamadım, ya çıkarttığımız rakamlardan sayı çekilirse? ne olacak.

@lararonnie o kadarını bilemem ama olasılığı arttırır illa.onu da sen yap belki zngin oluruz. tabi bilgisayarın randomu topun düşme olasılığı ile aynı çalışmıyor.

@vectro olay bizim 22 rakamdan 10 tanesini bilmemiz deÄŸil mi? Yani biz 10 rakam bildiÄŸimizde 12 tane bilmemiÅŸ oluyoruz. 80 rakamdan 12 tanesi bizi ilgilendirmiyor.

Benim dediğim yöntemle 80 rakamdan 22 tane çekiliş sonucu çekiliyor. Biz ise 68 rakamdan 10 tane seçiyoruz.

güzel çalışma olmuş, eline sağlık

@osmansafak şimdi anladım dediğini ama bu o haftaki sonuca göre değişir. yani 68 ile 80 arası rakam çıkma ihtimali nedir? soru bunu açıklar. yani aslında mesela 3-4 bile çıktığını varsaysak 12 rakamdan kurtulmuş oluruz.22-4 diyelim 18. 68 sayıdan 18 çekiliyor. 10 tane bilinmesi yeterli olur dersek sanırım daha şanslı oluruz. bunun permutasyonla olasılığını hesaplayabilirseniz sanırım daha yüksek çıkacaktır. böyle mi demek istedin. ben baktım en fazla beş çıkmış bazı haftalar 60da kalmış işte böyle haftalarda dediğin mantıkla şans arttıralabilir.

İlginç bir çalışma olmuş. Belki de makineye oynatmak yerine kendimiz yazsak daha şanslı oluruz :)

Bir de sizin baz aldığınız başlangıç değer ile loto makinesinin baz aldığı değer aynı değilken sonuçlar farklı olabilir.

Siz başlangıç olarak saatin mili saniyesini falan mı alıyorsunuz? Yoksa kafanıza göre bir değer mi yazdınız?

Bir de şu var, bu hafta çekilen sayılar ve bizim sayılarımız farklı anlarda üretilmeli. Kod ikisini de aynı anda random üretiyorsa denk gelme şansı biraz daha uzak olabilir.

Sonuçta çekilişten önce kuponu oynuyoruz ;)

/* Blog| Twitter */

efendim bilgi açısından pek güzel pek hoş tabi ama olasılık denilen bilim dalı zaten bu sonucu daha rahat bir şekilde bize vercektir. neticede bizim teorik olan bir P olasılık değerine ulaşmamız lazım ki bu teorik p değerine ulaşabilmemiz için bu programı sonsuz defa çağırıp kazanılan/kaybedilen değerini kestirme yolunda bir adım atabilelim. tabi ardından yine de deney sonuçlarının bir kısmının normal dağılımda yer alamayacak dışsal(outlier) veri olduklarını görüp çeşitli sıkı(robust) kestirim yöntemlerinden de faydalanarak ancak bir sonuç elde edebiliriz. yani denilecek o ki olasılık söz konusu olduğu zaman "abi şöle yaparsak tutar" gibi söylemler bilimsellikten uzaktır.

nihilanth bence yaklaşık olasık hesabı doğrudur. ben inanıyorum çünkü mantık aynı. 3 aşağı beş yukarı makinaya da oynatsanız aynı sonuç çıkacaktır. yani yüksek yatırsanız da geri dönüşüm alacağız para yüzde 25 civarındadır ortalamadan bahsediyorum tabi.

"Bir de sizin baz aldığınız başlangıç değer ile loto makinesinin baz aldığı değer aynı değilken sonuçlar farklı olabilir."

demişsin ama buradaki osalığa göre oynamak istersen bir yazıcı ve loto kuponlarını al güzel bir rapor hazırla. kağıt boyutlarını uydur bas burdan git elden oyna. yani onu düşükdük aslında. mantıklı olasılıklar çıksaydı makinadan random değil. bilgisayar oynadığı rapordan kolon dolduracaktık.

Bu bloğun adı Kodaman olduğu için, ben biraz kodu incelemek istedim.

Evet, bir görevi gerçekleştirmenin programcılıkta onlarca yöntemi olabilir. Ve yaratıcılık tam da bu noktada işimize yarar; ya da programcılık bu özelliği ile yaratıcılığımızı geliştirir.

Yaratıcılığı ortaya çıkaran en önemli faktör, kısıtlamalardır. Bu gündelik hayat veya diğer işler için de böyledir. Programcılıkta da bu kısıtlar, insanlara farklı yöntemleri arama motivasyonunu vermiştir.

Çok uzattım, bu girişi yapma sebebim, rasgele sayı dizileri üretmek konusunda farklı bir yorumu ortaya koymaktı. (yorum bana ait değil, çok uçuk bir zeka ürünü de değil, ama yeri gelmişken değinmeye değer diye düşünüyorum.)

Rasgele sayı dizilerinden kastım aslında bu ve diğer bazı şans oyunlarındaki gibi, belli bir kümenin içinden, rasgele bir alt küme elde etmektir. Elimizde torbalar olsa bu iş çok kolaydır aslında, birinden alır birine atarız. Gel gelelim elimizdeki şey array yapıları olunca işler değişir. Bir array'den rasgele bir sayı seçebiliriz, fakat bu sayıyı bir sonraki adımda seçmeyeceğimizi garantilememiz gerekir. Bunu sağlamanın bir yolu da, arkadaşımızın örneğindeki gibi, tekrar tekrar kontrol etmektir. Aslına bakarsanız arkadaşımızın örneğini gerçek hayatta uygulamaya çalışsak şöyle birşey olurdu : "bir grup arkadaşa, rasgele sayılar söylemesini rica etmek, eğer herhangi biri daha önce söylenen bir sayı söylemişse, tekrar başka bir sayı rica etmek, ta ki benzersiz bir sayı söyleyene kadar."(cümle iğrenç oldu özür dilerim :) )

Bu yöntem işimizi görüyor.

Peki farklı neler yapabilirdik? Üst düzey diller kullanıyorsak, liste yapıları çok işimize yarayacaktır. Listeler tam da torbalar gibi çalışırlar. Herhangi bir elemanını çıkarabilir, sonrasında elinize tam da 1 eksik elemanlı yeni bir liste kalır. (bu iş için remove gibi fonksiyonları vardır bu yapıların, sıkça kullanırız aslında bunları değil mi? :) ) Böyle bir yapı ile torbadan sayı çekme şeklinde bir olayı örneklemiş oluruz. Pseudo kodu mesela :

InitializeList(80); // 80 e kadar tüm sayıları List yapımıza yerleştirdik.
for i=0 to 9 // diyelim ki 10 sayıya ihtiyacımız var. rnd = random.next(80-i) hedefListe.add(kaynakliste[rnd]) kaynakliste.remove(rnd)
next

Böyle bir algoritma bizi hızlandırır mı? ilk bakışta yanıt evet gibi geliyor. ama liste yapılarının kendi iç karmaşıklığını hesaba katarsak, belki yanılıyor da olabiliriz. deneyen olursa sonuçlarını da paylaşırsa çok güzel olur.

Ama benim en çok sevdiğim (sevmek? bir algoritmayı? uyusam mı artık biraz? :D) teknik, karıştırma dır. (shuffleing)

1 den seksene kadar olan bir diziyi karıştırmak için ne yaparsınız? (karıştırarak aslında elinizde random dizilmiş benzersiz sayılar oluşur. artık sonundan mı 10 çekersiniz, başından mı, ortasından mı siz karar verin)
Peki bir dizi nasıl karıştırılır? şöyle bir yapı düşünün. Elimizde iki bölmeli kutular var. 80 kutumuz olsun. bu seksen kutunun birinci bölmelerine 1 den 80 e kadar olan sayıları sırasıyla koyalım. ikinci bölmelerine ise, random jeneratörümüzden, sınır olmadan rasgele sayı üretmesini rica edelim. Elimizde şöyle bir iki boyutlu array oldu yani :

1. 1 435
2. 2 6545
3. 3 9782
..
..
80. 80 736

Şimdi bu diziyi, sağdaki sütuna göre sıralarsam ne olur? Bingo! soldaki sıralıyken sağdakini randomize ettiğime göre, sağdaki kolona göre sıralarsam aslında sol kolonu randomize etmiş olurum. O değerler benim kontrolümde ve sınırlarımda eklendiği için, listemi shuffle etmiş olurum. Dediğim gibi sonrasında ilk kaçını alırsanız alın.

merhaba arkadaslar aranızda yeniyim programı bilgisayara kurdum localhost ta calıstırdım sansını dene butonuna bastıgımda hicbirsey yapmıyor lutfen yardımcı olurmusunuz gerekirse team viewer uzaktan kontrol programı ıle uzaktan baglanıp bana yardımcı olabılecek arkadas var mı

merhaba .net framework 2.0 ile denemen gerekiyor. localhost yerine vs2008 2005 yada web express developer 2005, 2008 ile denersen sorun yaşamazsın. normalde localhostta da çalışması gerekiyor.

tesekkür ederim yardımınız icin

merhaba arkadaslar bir konuda bilgi almak istiyorum arkadasımızın sundugu bu program ile sayısal lotoda 13 milyon olasılık var bunu hesaplattırmaya calıstıgımda explorer hepsını acamıyor bunun ıcın bır cozum sunabılırmısınız programı ayarladım 10 bin tane olasılık felan hesaplattırıyorum sayısal lotoda ama daha fazla hesaplamaya kalkınca kitlenme yapıyo program ve explorer bilgisayarım güclü bir bilgisayar neden kitlendigini anlayamadım core 2 duo islemci 2.5 ghz 4 gb ddr2 ram ve 1 gb ati ekran kartı 320 gb harddisk var sanırım sorun bilgisayardan olamaz degil mi yardımcı olursanız sevinirim

merhaba lütfen yardım edin
2 sorum var
1. sayıları internet explorerda olusturuyoruz bu olusturdugumuz sayıları bir excel yada word yada ne bileyim txt dosyasına yazma sansımız var mı
varsa nasıl yapabilirim ?
2. olusturdugumuz sayılar bu sekılde cıkıyor ornegın 1 : 36- 9- 47- 4- 34- 15- bu sekilde degilde kücükten büyüge yada büyükten kücüge dogru düzenli bir sekilde yazdırma sansımız var mı
yani 1: 4-9-15-34-36-47 bu sekılde varsa lütfen yardım edin benim icin cok onemli amacım sayısal lotoyu felan bulmak degil sadece tezimi veremedim bu programdaki kodlar isime yaradı sayı olusturma programında ve benim en az sıralı sekılde kucukten büyüge dogru sıralayan 500 bin kolon olusturmam lazım ve her kolondada 4 rakam bulunması gerekıyor bunları yapıyorum ama sayıları duzenlı sekılde kucukten buyuge sıralattıramıyorum ve dosyaya yazamıyorum lutfen yardımmmmmmmmm

biraz googlelasan iyi olur hem array list şeklinde için olduğu için sort komutu da kullanabilirsin. şimdi tam nasıl yapılacağını bilmiyorumama arrayda sorta bak. bir de normal sayı

biraz araştıralım lütfen google'da ingilizce de aratabilirsin istediğin şey en temel programlama konuları. buyur burdan

sagolasın dostum tesekkur ederim

merhaba arkadaslar c# ta windows consol kullanarak bu programı olusturdum ama c# bilgim cok fazla olmadıgı icin sonucları bir txt dosyasına otomatik olarak yazdıramıyorum bu mümkün mü acaba bana yardım edermisiniz lütfen cok önemli benim icin

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

namespace ConsoleApplication5
{ class Program { static void Main(string[] args) { System.Random rastgele = new System.Random();

int[] sayi = new int[6]; //6 lık bir dizi oluşturulur. int cekilen = 0; //rastgele çekilen sayıyı temsil eder. int gec = 0; //sayıların küçükten büyüğe sıralanmasında kullanılır. int kolon = 1; //kolon sayısının tutulduğu değişken do { Console.Write("Oynamak istediğiniz kolon sayısını giriniz: "); kolon = Convert.ToInt32(Console.ReadLine()); if (kolon <= 0) //eğer 0 dan küçük yada eşit bir sayı girilirse. Console.WriteLine("\nLütfen düzgün bir sayı giriniz! \n"); //uyarı! else if (kolon > 10000) //eğer 8 den büyük bir sayı girilirse. Console.WriteLine("\nEn az 1 en fazla 8 kolon oynayabilirsiniz! \n"); //uyarı! } while (kolon <= 0 || kolon > 10000); //kolon seçme işlemi kural sağlanana kadar sürer. Console.WriteLine("\nSayıların sıralı durumu:\n"); //sayılar çekiliyor... for (int adet = 1; adet <= kolon; adet++) { Console.Write("{0}. kolon: ", adet); //hangi kolon için çekildiği }
}

for (int i = 0; i < 6; i++) { cekilen = rastgele.Next() % 49 + 1; //sayı çekildi. sayi[i] = cekilen; //diziye aktarıldı. }

for (int k = 0; k < i; k++) if (sayi[i] == sayi[k]) //eğer o sayı daha önce çekildiyse(aynı kolonda) yeni bir sayı çekilir. { do { cekilen = rastgele.Next() % 49 + 1; sayi[i] = cekilen; } while (sayi[i] == sayi[k]); } for (int s = 0; s < i; s++) //sayılar küçükten büyüğe sıralanır. { if (sayi[s] > sayi[i]) { gec = sayi[s]; sayi[s] = sayi[i]; sayi[i] = gec; } }

} for (int j = 0; j < 6; j++) Console.Write("{0} ", sayi[j]); Console.WriteLine(""); Console.WriteLine("_______________________________________");

} Console.WriteLine("cabir demirel ");

Console.ReadLine(); //exeli dosya çalıştırıldığında sonucu ekranda tutmak için...

merhaba arkadaslar c# ta windows consol kullanarak bu programı olusturdum ama c# bilgim cok fazla olmadıgı icin sonucları bir txt dosyasına otomatik olarak yazdıramıyorum bu mümkün mü acaba bana yardım edermisiniz lütfen ck önemli benim icin

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

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
System.Random rastgele = new System.Random();

int[] sayi = new int[6]; //6 lık bir dizi oluşturulur.
int cekilen = 0; //rastgele çekilen sayıyı temsil eder.
int gec = 0; //sayıların küçükten büyüğe sıralanmasında kullanılır.
int kolon = 1; //kolon sayısının tutulduğu değişken
do
{
Console.Write("Oynamak istediğiniz kolon sayısını giriniz: ");
kolon = Convert.ToInt32(Console.ReadLine());
if (kolon <= 0) //eğer 0 dan küçük yada eşit bir sayı girilirse.
Console.WriteLine("\nLütfen düzgün bir sayı giriniz! \n"); //uyarı!
else if (kolon > 10000) //eğer 8 den büyük bir sayı girilirse.
Console.WriteLine("\nEn az 1 en fazla 8 kolon oynayabilirsiniz! \n"); //uyarı!
}
while (kolon <= 0 || kolon > 10000); //kolon seçme işlemi kural sağlanana kadar sürer.
Console.WriteLine("\nSayıların sıralı durumu:\n");
//sayılar çekiliyor...
for (int adet = 1; adet <= kolon; adet++)
{
Console.Write("{0}. kolon: ", adet); //hangi kolon için çekildiği

for (int i = 0; i < 6; i++)
{
cekilen = rastgele.Next() % 49 + 1; //sayı çekildi.
sayi[i] = cekilen; //diziye aktarıldı.

for (int k = 0; k < i; k++)
if (sayi[i] == sayi[k]) //eğer o sayı daha önce çekildiyse(aynı kolonda) yeni bir sayı çekilir.
{
do
{
cekilen = rastgele.Next() % 49 + 1;
sayi[i] = cekilen;
}
while (sayi[i] == sayi[k]);
}
for (int s = 0; s < i; s++) //sayılar küçükten büyüğe sıralanır.
{
if (sayi[s] > sayi[i])
{
gec = sayi[s];
sayi[s] = sayi[i];
sayi[i] = gec;
}
}

}
for (int j = 0; j < 6; j++)
Console.Write("{0} ", sayi[j]);
Console.WriteLine("");
Console.WriteLine("_______________________________________");

}
Console.WriteLine("cabir demirel ");

Console.ReadLine(); //exeli dosya çalıştırıldığında sonucu ekranda tutmak için...
}
}
}

console.write yerine streamwriter kullanarak direk metin dosyanın içine yazabilirsin. yada üstte bir değişken ile hepsini toplayıp degisken+="yazi";
en sonunda tek bir stringi dosyaya yazdır. biraz googlda ara lütfen.yardımcı olmaya çalışıyorum ama sormadan arama yapsan bulmaman imkansız

http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx
http://zamov.online.fr/EXHTML/CSharp/CSharp_302155.html
http://msdn.microsoft.com/en-us/library/6ka1wd3w.aspx

ustam eyvallah sagolasında bu google yi gunde 7 saat kullanmak yeterli gelmiyo sanırım ınan hazıra yatmayı sevenlerden degılım ama bır tutuklugum oldu ıste uzun zaman oldu c# ıle ugrasmayalı cozum bulamadın bu sayfalarıda gunde en az 5 er defa dolasıyorum ve bunun gıbı 10 larca sayfayı bır turlu cıkamadım ısın ıcınden eger mumkunse kodları benım gonderdıgım kodların ıcıne yerlestırıpte benım ıstedıgım sekılde programı yapıpta yayınlayabılırsen mınnettar kalırım ınan dua ederım her zaman bu yardımların ıcınde yemın ederım her gece dua edıyorum ısım vererek dua edemıyorum ama yınede allah bılıyo sana dua ettıgımı ısmınıde yazarsan sevınırım ustam benım adım cabir demirel yardımlarının devamını temennı edıyorum

yani burada bu programin icine dedigim sekilde kod yazabilecek bir allahin kulu yok mu ya valla super

tabi vardır, isteklerini net olarak belirtirsen sana teklif sunacak birçok arkadaş çıkacaktır.

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication5
{
class Program
{

static void Main(string[] args)
{

System.Random rastgele = new System.Random();

int[] sayi = new int[6]; //6 lık bir dizi oluşturulur.
int cekilen = 0; //rastgele çekilen sayıyı temsil eder.
int gec = 0; //sayıların küçükten büyüğe sıralanmasında kullanılır.
int kolon = 1; //kolon sayısının tutulduğu değişken

do
{
Console.Write("Oynamak istediğiniz kolon sayısını giriniz: ");
kolon = Convert.ToInt32(Console.ReadLine());
if (kolon <= 0)
Console.WriteLine("\nLütfen düzgün bir sayı giriniz! \n");
else if (kolon > 14000000)
Console.WriteLine("\nEn az 1 en fazla 8 kolon oynayabilirsiniz! \n");
}
while (kolon <= 0 || kolon > 14000000); //kolon seçme işlemi kural sağlanana kadar sürer.
Console.WriteLine("\nSayıların sıralı durumu:\n");
//sayılar çekiliyor...
for (int adet = 1; adet <= kolon; adet++)
{
Console.Write("{0}. kolon: ", adet); //hangi kolon için çekildiği

for (int i = 0; i < 6; i++)
{
cekilen = rastgele.Next() % 49 + 1; //sayı çekildi.
sayi[i] = cekilen; //diziye aktarıldı.

for (int k = 0; k < i; k++)
if (sayi[i] == sayi[k]) //eğer o sayı daha önce çekildiyse(aynı kolonda) yeni bir sayı çekilir.
{
do
{
cekilen = rastgele.Next() % 49 + 1;
sayi[i] = cekilen;
}
while (sayi[i] == sayi[k]);
}
for (int s = 0; s < i; s++) //sayılar küçükten büyüğe sıralanır.
{
if (sayi[s] > sayi[i])
{
gec = sayi[s];
sayi[s] = sayi[i];
sayi[i] = gec;
}
}

}
for (int j = 0; j < 6; j++)
Console.Write("{0} ", sayi[j]);
Console.WriteLine("");
Console.WriteLine("_______________________________________");

}
Console.WriteLine("cabir demirel ");

Console.ReadLine(); //exeli dosya çalıştırıldığında sonucu ekranda tutmak için...
{
using (StreamWriter writer = new StreamWriter("loop.txt"))
{

for (int j = 0; j < 6; j++)
writer.Write("{0} ", sayi[j]);

writer.Close();

}
}

}

}
}

dostum bu programda sonucları console cıkarttıgım sonucları txt dosyasına yazmak istiyorum ama programda hata var programı calıstırdıgımda kac kolon oynamak istiyorsun diye soruyor örnegin 4 kolon dedim 4 üncü kolonu txt dosyasına yazıyor ama 1,2 ve 3 üncü kolonları yazmıyor kodları c# console aplication a kopyala ve direk start without debug dersen hatasızca acılıyor ben console de olusan tum sonucları txt dosyasına kaydetmek istiyorum

teklifleri açık olarak mı sunalım yoksa kapalı olarak mı sunmamızı istersin?

acık olarak sunulsun dostum sorun yok lutfen yardm

150$

:( üzücü bir durum gerçekten açık olarak yapmayın arkadaşlar. lütfen pm ile halledin. siteyi çirkinleştiriyor bu tip şeyler.

ben sormuştum sana açık mı olsun teklifler diye... burada açık ve net söyleyebileceğim burasının bir forum olmadığı, ve bir forum bile olsa kimseye hiçbir şart altında bu şekilde sitem etme hakkının olmadığı idi. teklif sadece dalgasına yapılmış bir teklifti anlayacağın. çok basit bir hata var yoksa...

50 dolara yaparım @gb ye rakip piyasayı düşüreyim

/* XSS */

dostum ben teklifine itiraz etmedim gerekirse veririm mail adresime hesap numaranı gonder istersen yatırayım paranı diger arkadaslar yorum yaptı teklıfıne benım ıcın cok onemlı bu program lutfen kim yaparsa isterse para mail adresime gondersin hesap numarasını ve buradaki kullanıcı adını beklıyorum lutfen cok onemli benim icin arkadaslar

gb arkadasım lutfen ya biliyorsun yardım et allah askına para istiyorsan gonder mailime hesap numaranı söz seref sözü gonderecegim para inanamayacaginiz kadar önemli benim icin

neden bu kadar çok istiyorsun

/* XSS */

dostum cok istememin sebebi benim sinopta sayisal loto bayii var. sistem istiyolar benden 10000 kolon 20000 kolonluk ama ben en fazla 5000 kolon gorebiliyorum console de buda yetersiz geliyor ama txt dosyasına yazdırabilirsem 10000 kolon yada 20000 kolon üretebilmis olacagım verdigim söz var abilerime tamam dedim mahcup duruma dusmek istemiyorum buyuklerime karsı gercek sebebi bu eger bana yardımcı olursanız cok sevinirim lutfen programlamayıda az bucuk meslek lisesinde ogrendim ondan sonrada sayısal loto bayiligi actım oradan biliyorum az birsey yardımınızı bekliyorum lutfen

ya bu kadar yalvartmak neye dostlar ya lutfen dukkanımı acıp ekmek parası kazanamıyorum utancımdan boyumdan buyuk islere girdim ama bir sefer yaptık iste yardım edin beni su madur durumdan kurtarın allah askına

email yaz yardım edeyim. msn de olabilir. ama böyle işlerden birşey çıkmıyor haberin olsun

50 doları alıyım :) hehe

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter("loop.txt");
System.Random rastgele = new System.Random();
int[] sayi = new int[6]; //6 lık bir dizi oluşturulur.
int cekilen = 0; //rastgele çekilen sayıyı temsil eder.
int gec = 0; //sayıların küçükten büyüğe sıralanmasında kullanılır.
int kolon = 1; //kolon sayısının tutulduğu değişken
do
{
Console.Write("Oynamak istediğiniz kolon sayısını giriniz: ");
kolon = Convert.ToInt32(Console.ReadLine());
if (kolon <= 0)
Console.WriteLine("\nLütfen düzgün bir sayı giriniz! \n");
else if (kolon > 14000000)
Console.WriteLine("\nEn az 1 en fazla 8 kolon oynayabilirsiniz! \n");
}
while (kolon <= 0 || kolon > 14000000); //kolon seçme işlemi kural sağlanana kadar sürer.
Console.WriteLine("\nSayıların sıralı durumu:\n");
//sayılar çekiliyor...
for (int adet = 1; adet <= kolon; adet++)
{
Console.Write("{0}. kolon: ", adet); //hangi kolon için çekildiği
// writer.Write("{0} ", adet);
for (int i = 0; i < 6; i++)
{
cekilen = rastgele.Next() % 49 + 1; //sayı çekildi.
sayi[i] = cekilen; //diziye aktarıldı.
for (int k = 0; k < i; k++)
if (sayi[i] == sayi[k]) //eğer o sayı daha önce çekildiyse(aynı kolonda) yeni bir sayı çekilir.
{
do
{
cekilen = rastgele.Next() % 49 + 1;
sayi[i] = cekilen;
}
while (sayi[i] == sayi[k]);
}
for (int s = 0; s < i; s++) //sayılar küçükten büyüğe sıralanır.
{
if (sayi[s] > sayi[i])
{
gec = sayi[s];
sayi[s] = sayi[i];
sayi[i] = gec;
}
}
}
for (int j = 0; j < 6; j++)
{
Console.Write("{0} ", sayi[j]);
writer.Write("{0} ", sayi[j]);
}
Console.WriteLine("");
Console.WriteLine("_______________________________________");
writer.Write(Environment.NewLine);
// writer.Write("_______________________________________");
}
Console.WriteLine("cabir demirel ");
Console.ReadLine(); //exeli dosya çalıştırıldığında sonucu ekranda tutmak için...
{
writer.Close();
/*
using (StreamWriter writer = new StreamWriter("loop.txt"))
{
for (int j = 0; j < 6; j++)
writer.Write("{0} ", sayi[j]);
writer.Close();
}
*/
}
}
}
}

kardesim cabir@turkelibilgisayar.com mail adresim gonder hesap numaranı hemen yatırayım paranı allah razı olsun senden kardesim beni bu mahcup durumdan kurtardın ya allah herseyi gonlune gore versin bekliyorum hesap numaranı kardes allah razı olsun senden

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu Yazıyı Tutanlar

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

son yorumlar

arama

pillinetwork