Lab: Sayısal Loto

14 Aralık 2007 tarihli derste yazdığım kodun geliştirilmiş ve hataları ayıklanmış hali.

Lütfen dikkat: Sayısal Loto kodunu dersin sonunda bilgisayarımdan aldıysanız o kodu boşuna incelemeyin. Dosyaya yazarken bir yerde fazla satır sonu kaydetmem dolayısıyla istatistikleri yanlış hesaplayabiliyor. Bu yazıdaki programda hataları düzelttim.

Lütfen dikkat 2: Buradaki diske yazma programı laboratuvardaki örnek program değil, kendi yazdığım bir program ve sayısal loto sayılarını diske FARKLI BİR ŞEKİLDE kaydediyor. Bu yüzden labdaki örnek programla oluşturulan dosyaları benim programım OKUMAYACAKTIR.

Bunun dışında benim Sayısal Loto programımın laboratuvarda istenenden bazı farkları şunlardır:

  • Programda hatalı veri kontrolü vardır. Söz gelimi şanslı sayıya 0, -1 ya da 363 yazamazsınız.
  • Program aynı hafta aynı sayının iki defa girilmesine izin vermez.
  • Programda değişken tipi kontrolü yoktur. Şanslı sayınıza ABC yazarsanız program çöker.
  • Programı sonlandırmak için sorulan soruya cevap vermeniz gerekir. CTRL + Z ile sonlanmaz.

Bu yazılımın kullanıcıdan aldığı verileri sayisal.txt'ye kaydetme formatı aşağıdaki gibidir:

1HaftaŞanslıSayı1\n 1HaftaŞanslıSayı2\n 1HaftaŞanslıSayı3\n 1HaftaŞanslıSayı4\n 1HaftaŞanslıSayı5\n 1HaftaŞanslıSayı6\n 2HaftaŞanslıSayı1\n 2HaftaŞanslıSayı2\n 2HaftaŞanslıSayı3\n 2HaftaŞanslıSayı4\n 2HaftaŞanslıSayı5\n 2HaftaŞanslıSayı6 ...şeklinde gider...

Dikkat edilmesi gereken, son girdinin sonunda satır sonu karakterinin (CR LF) olmamasıdır.

Ve Ege Bilgisayar Mühendisliği'nde okumayıp da buraya erişen C#'ciler için de programın ne yaptığının kısa bir özetini geçmeliyim sanırım:

Sayısal Loto programının amacı kullanıcıdan istediği kadar haftada çıkan şanslı sayıları kaydettirmek ve daha sonra bunları analiz ederek hangi sayının toplamda kaç defa çıktığını bulmak ve büyükten küçüğe sıralamaktır. Kullanıcı hafta hafta şanslı sayıları girince bunlar diskte bir dosyaya kaydedilmeli ve analiz için bu dosya daha sonra okunmalıdır. (yani anlayacağınız diske yazıp, diskten okumayı öğreniyoruz.)

Kaynak kodunu incelemek ve fikir sahibi olmak amacıyla kullanabilirsiniz. Ama lütfen kaynak kodunu kopyala yapıştır yapmayalım, kendimize mal etmeyelim. Onun yerine nasıl çalıştığını inceleyip kavrama yoluna gidelim.