Türkçe Forum - Girburaya.net

Geri git   Türkçe Forum - Girburaya.net > Webmaster > Programlama > Visual Basic
Kayıt ol Yardım Üye Listesi Ajanda Arama Bugünki Mesajlar Bütün Forumları okunmuş kabul et

Visual Basic Visual Basic Hakkında Aradığınız Herşey.. Visual Basic Kodları..

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler
Alt 01-03-08, 12:57   #1 (permalink)
DeJiN
 
Mesajlar: n/a
Standart Bır ıslem egzersızı

   

ODTÜ Matematik Topluluğu - Az Kelime Çok İşlem Yarışması - İşlem Egzersiz Programı


'************************************************* *******************************************
'* ODTÜ Matematik Topluluğu'nda 2005 yılından beri düzenlenen Az Kelime Çok İşlem Yarışması
'* katılımcılarının egzersiz amacıyla kullanmaları için hazırlanmış programın kodlarıdır.
'************************************************* *******************************************
'* Aşağıdaki kontrolleri kendi göz zevkinize göre yerleştirin.
'************************************************* *******************************************
'* lblHedef : Hedef burada gösterilecek; Label
'* lblSayi(0 to 5) : Sayılar burada gösterilecek; Label Array
'* fraZemin : Yukarıdaki kontrolleri barındıracak; Frame
'* cmdTamsonuc : Tamsonuç bulununca basılacak düğme; CommandButton
'* tmrSayilar : Sayıları sırayla ve efektli seçmek için kullanılır; Timer
'* tmrSayac : Çözüm için geri sayım yapar; Timer
'* fraKomut : Aşağıdaki kontrolleri barındıracak; Frame
'* sliSure : Süre burada belirlenecek ve gösterilecek; Slider
'* cmdYeni : Yeni soru üretecek düğme; CommandButton
'* cmdKapat : Programdan çıkmak için basılacak düğme; CommandButton
'************************************************* *******************************************
'* Hazırlayan : Selçuk Soner Akgül - 23.KASIM.2007
'************************************************* *******************************************

Kod:
Option Explicit

Dim hedef As Integer 'Ulaşmamız gereken 3 basamaklı sayı
Dim sayilar(0 To 5) As Integer 'Hedefe ulaşmak için kullanacağımız sayılar
Dim sayac As Integer 'Sayılara dönme efekti vermek için kullanılan değişken
Dim limit As Integer 'Çözüm süresi olarak belirleyeceğimiz değişken
Dim siradaki As Integer 'Gösterilecek sayının sırasını belirleyen değişken
Dim buyuk(0 To 7) As Integer 'Hedefe ulaşmak için kullanacağımız büyük sayıların dizisi

Private Function Rastgele(ByVal EnAz As Integer, ByVal EnCok As Integer, Optional Haric As Integer = 0) As Integer
    'Rastgele sayı seçme fonksiyonu
    Dim sectim As Integer
    Do
        sectim = Int(Rnd * 10 ^ 6) Mod (EnCok - EnAz + 1) + EnAz
    Loop While sectim = Haric
    Rastgele = sectim
End Function

Private Sub Buyukler()
    'Büyük sayıların değerleri burada belirleniyor
    'Dilerseniz diziyi genişletip başka sayılar da ekleyebilirsiniz
    Dim i As Integer
    '40 ile 90 arası 10'un katları
    'Küçük değişikliklerle 10 ile 100 arası bile yapılabilir
    For i = 1 To 6
        buyuk(i) = 10 * (i + 3)
    Next
    '25 ve 75
    For i = 0 To 7 Step 7
        buyuk(i) = 50 * (i / 7) + 25
    Next
End Sub

Private Sub cmdKapat_Click()
    'Tek kelimelik komut için uzun bir açıklamaya gerek var mı :)
    End
End Sub

Private Sub cmdTamSonuc_Click()
    'Tamsonuç bulunduğunda yapılacaklar
    Dim mesaj As VbMsgBoxResult
    Dim stil As VbMsgBoxStyle
    'Süreyi durdur
    tmrSayac.Enabled = False
    stil = vbInformation + vbOKOnly
    'Tebrik et ve rapor göster
    mesaj = MsgBox("Tebrikler! " & (limit - sliSure.Value) & " saniyede buldun." & vbCrLf & "Şimdi çözümü konuşarak yaptır.", stil, "Tam Sonuç")
    'Herşeyi yeniden başlayacak hale getir
    If mesaj = vbOK Then
        fraKomut.Enabled = True
        cmdYeni.SetFocus
        sliSure.Value = limit
        cmdTamSonuc.Enabled = False
    End If
End Sub

Private Sub cmdYeni_Click()
    'Herşeyi yeniden başlayacak hale getir
    Sifirla
    'Efekt hızını buradan değiştirebiliriz
    tmrSayilar.Interval = 150
    tmrSayilar.Enabled = True
End Sub

Private Sub Form_Load()
    Randomize
    'Büyük sayıları belirle
    Buyukler
    'Süre sınırını belirle
    limit = sliSure.Max
End Sub

Private Sub Sifirla()
    'Herşeyi yeniden başlayacak hale getir
    fraKomut.Enabled = False
    sayac = 0
    Dim i As Integer
    'Renk ayarlarını yap
    For i = 0 To 5
        With lblSayi(i)
            .ForeColor = RGB(255, 0, 0)
            .Caption = ""
        End With
    Next
    With lblHedef
        .ForeColor = RGB(0, 0, 255)
        .Caption = ""
    End With
    'Soru yoksa Tamsonuç da olmaz
    cmdTamSonuc.Enabled = False
    'Limit değerini eski haline getir
    limit = sliSure.Value
End Sub

Private Function HedefSec() As Integer
    'Hedefimizi belirleyip sunan fonksiyon
    Dim sectim As Integer
    Do
        sectim = Rastgele(301, 999)
    Loop While sectim Mod 50 = 0
    HedefSec = sectim
End Function

Private Sub tmrSayac_Timer()
    'Geri sayım sayacı
    sliSure.Value = sliSure.Value - 1
    'Süre bitince yapılacaklar
    If sliSure.Value = 0 Then
        'Kendini durdur
        tmrSayac.Enabled = False
        Dim mesaj As VbMsgBoxResult
        Dim stil As VbMsgBoxStyle
        stil = vbQuestion + vbRetryCancel
        'Soruyu gizle
        fraZemin.Visible = False
        'Uyarı yap ve sor
        mesaj = MsgBox("Süre doldu. Yeniden denemek ister misin?", stil, "Süre Doldu!")
        sliSure.Value = limit
        If mesaj = vbRetry Then
            'Tekrar denemek için
            tmrSayac.Enabled = True
        Else
            'Başka soruya geçmek için
            Sifirla
            fraKomut.Enabled = True
            cmdYeni.SetFocus
        End If
        'Tekrar görünür kıl
        fraZemin.Visible = True
    End If
End Sub

Private Sub tmrSayilar_Timer()
    'Sayıları seçme ve efekt sayacı
    'Gerekli ayarlamalar yapılıp hedef en son da gösterilebilir
    sayac = sayac + 1
    Select Case sayac
        Case 1 To 10
            'Her defasında farklı bir hedef seç ve göster
            hedef = HedefSec
            lblHedef.Caption = hedef
            If sayac = 10 Then
                'Gerçek hedefi gösterince renk değiştir
                lblHedef.ForeColor = RGB(255, 0, 0)
            End If
        Case 11 To 60
            'Her defasında farklı bir sayı seç ve göster
            siradaki = (sayac - 11) \ 10
            sayilar(siradaki) = Rastgele(1, 9)
            lblSayi(siradaki).Caption = sayilar(siradaki)
            If sayac Mod 10 = 0 Then
                'Gerçek sayıyı gösterince renk değiştir
                lblSayi(siradaki).ForeColor = RGB(0, 0, 255)
            End If
        Case 61 To 70
            'Her defasında farklı bir büyük sayı seç ve göster
            sayilar(5) = buyuk(Rastgele(0, 7))
            lblSayi(5).Caption = sayilar(5)
            If sayac = 70 Then
                'Gerçek büyük sayıyı gösterince renk değiştir
                lblSayi(5).ForeColor = RGB(0, 0, 255)
            End If
        Case Else
            'Soru üretilip hepsi gösterilince yapılacaklar
            'Kendini durdur
            tmrSayilar.Enabled = False
            'Sayacı sıfırla
            sayac = 0
            'Geri sayım sayacını başlat
            tmrSayac.Enabled = True
            'Tamsonuç butonunu aktif hale geçir
            With cmdTamSonuc
                .Enabled = True
                .SetFocus
            End With
    End Select
End Sub
  Alıntı ile Cevapla
Yeni Konu aç  Cevapla



Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler

Yetkileriniz
Yeni Mesaj yazma yetkiniz aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz aktif değil dir.

Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 06:01 .


Powered by: vBulletin Version 3.6.8 (Türkçe)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
Türkçeye: Girburaya.Net tarafından çevrilmiştir.
GirBuraya.Net

oyun komedi sohbet siteleri
mirc mırc çet cet sohbet chat canlı tv


7, 427, 6, 5, 106, 107, 9, 10, 11, 12, 14, 15, 16, 17, 202, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 397, 34, 35, 36, 341, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 198, 50, 51, 52, 53, 54, 123, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 112, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 108, 109, 110, 113, 115, 116, 117, 118, 119, 120, 122, 121, 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, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 249, 184, 187, 248, 188, 189, 247, 190, 191, 429, 192, 193, 194, 195, 196, 197, 199, 200, 201, 203, 204, 205, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 221, 222, 223, 224, 225, 227, 228, 229, 230, 231, 232, 234, 235, 237, 238, 346, 240, 242, 243, 246, 250, 251, 252, 253, 254, 255, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 302, 303, 307, 308, 321, 315, 314, 317, 322, 338, 318, 323, 324, 325, 326, 327, 328, 330, 331, 336, 332, 333, 334, 337, 335, 339, 340, 342, 343, 344, 345, 363, 348, 347, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 373, 382, 374, 369, 370, 375, 376, 377, 380, 385, 384, 386, 394, 388, 389, 390, 391, 392, 393, 396, 409, 398, 399, 400, 401, 403, 404, 405, 406, 410, 411, 412, 413, 414, 415, 417, 416, 418, 419, 420, 421, 423, 425, 426, 434, 428, 430, 432, 431, 435, 433, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,