Upcoming SlideShare
×

# Auebf ornekler

771 views

Published on

Published in: Technology, Economy & Finance
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
Your message goes here
• Be the first to comment

• Be the first to like this

Views
Total views
771
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
13
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Auebf ornekler

1. 1. VB.Net Örnek Uygulamalar Tolga GÜYER 02.11.2011
2. 2. VB.Net Örnek Uygulamalar 2 Kasım 2011İçindekilerUygulama No: 1 – Buraya Basmayın! ...................................................................................................... 4Uygulama No: 2 – Vücut-Kitle İndeksi ..................................................................................................... 5Uygulama No: 3 – Burçlar ........................................................................................................................ 7Uygulama No: 4 – Not Hesapla................................................................................................................ 9Uygulama No: 5 – Ders Ekle .................................................................................................................. 11Uygulama No: 6 – Ders Kodu................................................................................................................. 12Uygulama No: 7 – Geçme Notu ............................................................................................................. 13Uygulama No: 8 – Numara Oluştur ....................................................................................................... 15Uygulama No: 9 – İl ve İlçe .................................................................................................................... 17Uygulama No: 10 – Kimlik Ekle .............................................................................................................. 18Uygulama No: 11 – E-Posta Adresi Oluşturma ...................................................................................... 20Uygulama No: 12 – Olaylar-1................................................................................................................. 21Uygulama No: 13 – Dört İşlem .............................................................................................................. 23Uygulama No: 14 – Ardışık Sayıların Toplamı ........................................................................................ 24Uygulama No: 15 – Mekanik Sayaç ....................................................................................................... 25Uygulama No: 16 – Asal Sayı Testi......................................................................................................... 26Uygulama No: 17 – Pi Sayısının Yaklaşık Hesabı .................................................................................... 27Uygulama No: 18 – Kuvvet ve Faktöriyel Hesabı ................................................................................... 29Uygulama No: 19 – İç İçe Döngü ........................................................................................................... 30Uygulama No: 20 – 153 Sayısı ............................................................................................................... 31Uygulama No: 21 – Pisagor Üçlüleri ...................................................................................................... 32Uygulama No: 22 – Collatz Problemi ..................................................................................................... 33Uygulama No: 23 – Kaprekar Sayıları .................................................................................................... 35Uygulama No: 24 – Kaprekar Sabiti ....................................................................................................... 37Uygulama No: 25 – Mükemmel Sayılar ................................................................................................. 39Uygulama No: 26 – Aritmetik Ortalama ve Standart Sapma................................................................. 40Uygulama No: 27 – Renk Aktarımı......................................................................................................... 42Uygulama No: 28 – Fonksiyon Kullanımı 1 ............................................................................................ 44Uygulama No: 29 – Fonksiyon Kullanımı 2 ............................................................................................ 45Uygulama No: 30 – Palindrom............................................................................................................... 48Uygulama No: 31 – Palindrom/Liste...................................................................................................... 49Tolga GÜYER Sayfa 2
3. 3. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 32 – Metin İstatistikleri .................................................................................................. 50Uygulama No: 33 – Anahtarlı Metin Şifreleme ..................................................................................... 52Uygulama No: 34 – Anahtarlı Metin Şifre Çözme.................................................................................. 54Uygulama No: 35 – Veritabanı Uygulaması 1 ........................................................................................ 55Uygulama No: 36 – Veritabanı Uygulaması 2 ........................................................................................ 57Uygulama No: 37 – Veritabanı Uygulaması 3 ........................................................................................ 59Uygulama No: 38 – Veritabanı Uygulaması 4 ........................................................................................ 60Uygulama No: 39 – Veritabanı Uygulaması 5 ........................................................................................ 62Uygulama No: 40 – Veritabanı Uygulaması 6 ........................................................................................ 65VERİTABANI UYGULAMALARI HAKKINDA ÖZET BİLGİ ........................................................................... 75Uygulama No: 41 – Veritabanı Uygulaması 7 ........................................................................................ 78Uygulama No: 42 – Veritabanı Uygulaması 8 ........................................................................................ 81Uygulama No: 43 – Anket ...................................................................................................................... 85Uygulama No: 44 – Anket Göster .......................................................................................................... 88Uygulama No: 45 – Veritabanı Uygulaması 9 ........................................................................................ 95Uygulama No: 46 – Veritabanı Uygulaması 10 ...................................................................................... 97Uygulama No: 47 – Veritabanı Uygulaması 11 .................................................................................... 100Tolga GÜYER Sayfa 3
4. 4. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 1 – Buraya Basmayın!Açıklama : Metin kutusuna herhangi bir metin girilmemiş ise butona basıldığında tepki veriliyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub basma_Click(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles basma.Click If giris.Text = "" Then ‘Eğer metin kutusu boş ise… MsgBox("Basmayın demiştim") basma.BackColor = Color.Red ‘Buton kırmızı oluyor. Else basma.BackColor = Color.GreenYellow ‘Aksi halde yeşile dönüyor. End If End SubEnd ClassTolga GÜYER Sayfa 4
5. 5. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 2 – Vücut-Kitle İndeksiAçıklama : Girilen ağırlık ve boy verilerine göre vücut-kitle indeksi belirleniyor ve kişinin girdiği ağırlık sınıfı görsel destekle sunuluyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click TxtVki.Text = TxtKilo.Text / (TxtBoy.Text * TxtBoy.Text) ‘Vücut kitle indeksi=ağırlık (kg) / boyun (m) karesi. If TxtVki.Text <= 19 Then TxtSonuc.Text = "Zayıf" PictureBox1.ImageLocation = "zayif.jpg" End IfTolga GÜYER Sayfa 5
6. 6. VB.Net Örnek Uygulamalar 2 Kasım 2011 If TxtVki.Text >= 20 And TxtVki.Text < 25 Then TxtSonuc.Text = "İdeal sınırlarda" PictureBox1.ImageLocation = "ideal.jpg" End If If TxtVki.Text >= 25 And TxtVki.Text < 30 Then TxtSonuc.Text = "Hafif şişman" PictureBox1.ImageLocation = "hafif_sisman.jpg" End If If TxtVki.Text >= 30 And TxtVki.Text < 35 Then TxtSonuc.Text = "Şişman" PictureBox1.ImageLocation = "sisman.jpg" End If If TxtVki.Text >= 35 And TxtVki.Text < 45 Then TxtSonuc.Text = "Sağlık açısından önemli" PictureBox1.ImageLocation = "saglik_acisindan_tehlike.jpg" End If If TxtVki.Text >= 45 And TxtVki.Text < 50 Then TxtSonuc.Text = "Aşırı şişman" PictureBox1.ImageLocation = "cok_sisman.jpg" End If If TxtVki.Text >= 50 Then TxtSonuc.Text = "Morbid (ölümcül) şişman" PictureBox1.ImageLocation = "morbid.jpg" End If End SubEnd ClassTolga GÜYER Sayfa 6
7. 7. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 3 – BurçlarAçıklama : Date-Time Picker kontrolünden seçilen tarihe göre kişinin burcunun ne olduğu belirleniyor ve görsel destekle sunuluyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim gun, ay As Integer Private Sub DateTimePicker1_ValueChanged(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles DateTimePicker1.ValueChanged gun = DateTimePicker1.Value.Day ‘Sadece gün bilgisi alınıyor. ay = DateTimePicker1.Value.Month ‘Sadece ay bilgisi alınıyor. If (ay = 12 And gun >= 23) Or (ay = 1 And gun <= 20) Then TxtBurc.Text = "OĞLAK" PictureBox1.ImageLocation = "oglak.jpg" End If If (ay = 9 And gun >= 22) Or (ay = 10 And gun <= 23) Then TxtBurc.Text = "TERAZİ" PictureBox1.ImageLocation = "terazi.jpg" End If If (ay = 1 And gun >= 21) Or (ay = 2 And gun <= 19) Then TxtBurc.Text = "KOVA" PictureBox1.ImageLocation = "kova.jpg" End If If (ay = 2 And gun >= 20) Or (ay = 3 And gun <= 20) Then TxtBurc.Text = "BALIK" PictureBox1.ImageLocation = "balik.jpg" End IfTolga GÜYER Sayfa 7
8. 8. VB.Net Örnek Uygulamalar 2 Kasım 2011 If (ay = 3 And gun >= 21) Or (ay = 4 And gun <= 20) Then TxtBurc.Text = "KOÇ" PictureBox1.ImageLocation = "koc.jpg" End If If (ay = 4 And gun >= 21) Or (ay = 5 And gun <= 21) Then TxtBurc.Text = "BOĞA" PictureBox1.ImageLocation = "boga.jpg" End If If (ay = 5 And gun >= 22) Or (ay = 6 And gun <= 21) Then TxtBurc.Text = "İKİZLER" PictureBox1.ImageLocation = "ikizler.jpg" End If If (ay = 6 And gun >= 22) Or (ay = 7 And gun <= 23) Then TxtBurc.Text = "YENGEÇ" PictureBox1.ImageLocation = "yengec.jpg" End If If (ay = 7 And gun >= 24) Or (ay = 8 And gun <= 23) Then TxtBurc.Text = "ASLAN" PictureBox1.ImageLocation = "aslan.jpg" End If If (ay = 8 And gun >= 24) Or (ay = 9 And gun <= 23) Then TxtBurc.Text = "BAŞAK" PictureBox1.ImageLocation = "basak.jpg" End If If (ay = 10 And gun >= 23) Or (ay = 11 And gun <= 22) Then TxtBurc.Text = "AKREP" PictureBox1.ImageLocation = "akrep.jpg" End If If (ay = 11 And gun >= 23) Or (ay = 12 And gun <= 22) Then TxtBurc.Text = "YAY" PictureBox1.ImageLocation = "yay.jpg" End If End SubEnd ClassTolga GÜYER Sayfa 8
9. 9. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 4 – Not HesaplaAçıklama : Girilen ara sınav ve genel sınav notları kullanılarak geçme notu hesaplanıyor ve bu geçme notuna karşılık gelen harf notu belirleniyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim vize, final As Integer Dim gecme As Double Private Sub Txt_Final_TextChanged(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles Txt_Final.TextChanged‘Final notunun girildiği metin kutusu değişirken… If Txt_Final.Text <> "" And IsNumeric(Txt_Final.Text) Then ‘Eğer final metin kutusu dolu ve sayısal veri ise… If Txt_Final.Text > 100 Then ‘Eğer girilen final değeri 100 den büyük ise… MsgBox("Hatalı Giriş!") Txt_Final.Clear() TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White Else ‘Aksi halde, yani final 100 den küçük… If Txt_Vize.Text <> "" And IsNumeric(Txt_Vize.Text) Then vize = Txt_Vize.Text final = Txt_Final.Text gecme = 2 * vize / 5 + 3 * final / 5 ‘vizenin %40’ı + finalin %60’ı TxtGecme.Text = gecme If gecme >= 50 Then TxtGecme.BackColor =Color.GreenYellow Else TxtGecme.BackColor = Color.Red End If End If Else ‘Ya final alanı boş, ya da girilen değer sayısal değil. TxtGecme.Clear()Tolga GÜYER Sayfa 9
10. 10. VB.Net Örnek Uygulamalar 2 Kasım 2011 TxtHarf.Clear() TxtGecme.BackColor = Color.White End If End Sub Private Sub Txt_Vize_TextChanged(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles Txt_Vize.TextChanged ‘Aynı şeyler vize notu için de yapılıyor. If Txt_Vize.Text <> "" And IsNumeric(Txt_Vize.Text) Then If Txt_Vize.Text > 100 Then MsgBox("Hatalı Giriş!") Txt_Vize.Clear() TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White Else If Txt_Final.Text <> "" And IsNumeric(Txt_Final.Text) Then vize = Txt_Vize.Text final = Txt_Final.Text gecme = 2 * vize / 5 + 3 * final / 5 TxtGecme.Text = gecme If gecme >= 50 Then TxtGecme.BackColor =Color.GreenYellow Else TxtGecme.BackColor = Color.Red End If End If Else TxtGecme.Clear() TxtHarf.Clear() TxtGecme.BackColor = Color.White End If End Sub Private Sub TxtGecme_TextChanged(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles TxtGecme.TextChanged ‘Geçme notu alanı değişirken harf notu hesaplanıyor. If TxtGecme.Text <> "" Then If TxtGecme.Text >= 90 Then TxtHarf.Text = "AA" ElseIf TxtGecme.Text >= 80 Then TxtHarf.Text = "BA" ElseIf TxtGecme.Text >= 70 Then TxtHarf.Text = "BB" ElseIf TxtGecme.Text >= 60 Then TxtHarf.Text = "CB" ElseIf TxtGecme.Text >= 50 Then TxtHarf.Text = "CC" ElseIf TxtGecme.Text >= 40 Then TxtHarf.Text = "DC" ElseIf TxtGecme.Text >= 30 Then TxtHarf.Text = "DD" ElseIf TxtGecme.Text >= 20 Then TxtHarf.Text = "FD" Else TxtHarf.Text = "FF" End If End If End SubEnd ClassTolga GÜYER Sayfa 10
11. 11. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 5 – Ders EkleAçıklama : İki adet metin kutusundan alınan bilgilerle oluşturulan ders kodu ve adı liste kutusuna ekleniyor. Daha sonra liste kutusundan seçilen ders silinebiliyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text + " " + TextBox2.Text) ‘Ders kodu ve adı metinleri birleştirilerek liste kutusunaaktarılıyor. End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button3.Click ListBox1.Items.Clear() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click ListBox1.Items.Remove(ListBox1.SelectedItem) ‘Liste kutusundanseçili olan seçenek siliniyor. End SubEnd ClassTolga GÜYER Sayfa 11
12. 12. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 6 – Ders KoduAçıklama : Metin kutusuna girilen ders kodu ve adı ayrıştırılarak iki ayrı liste kutusuna ekleniyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim dersin_kodu, dersin_adi, ders As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click ders = TextBox1.Text dersin_kodu = Strings.UCase(Strings.Left(ders, 6)) ‘Ders kodu, büyük harfe dönüştürülen metnin soldan 6 karakterialınarak ayrıştırılıyor. dersin_adi = Strings.Right(ders, Strings.Len(ders) - 6) ‘Ders adı, metnin sağdan uzunluğu-6 karakteri alınarakayrıştırılıyor. ListBox1.Items.Add(dersin_kodu) ListBox2.Items.Add(dersin_adi) TextBox1.Clear() End SubEnd ClassTolga GÜYER Sayfa 12
13. 13. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 7 – Geçme NotuAçıklama : Metin kutusuna girilen numara bilgisi kullanılarak öğrencinin giriş yılı ve fakültesi belirleniyor. Arasınav ve Final notları kullanılarak geçme notu ve bu nota karşılık gelen harf notu hesaplanıyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim Notu As Integer Dim Yil As String Dim Fak, numara As String Yil = Strings.Left(TextBox1.Text, 2) ‘Eğer giriş yılının son iki hanesi 50’den küçükse 2000’li yıllarolduğunu anla ve başına 20 ekle. Aksi halde başına 19 ekle: If Yil < 50 Then ListBox1.Items.Add("20" + Yil) Else ListBox1.Items.Add("19" + Yil) End If numara = TextBox1.Text Fak = Strings.Mid(numara, 3, 2) If Fak = "01" Then ListBox2.Items.Add("Mühendislik") ElseIf Fak = "02" Then ListBox2.Items.Add("Eğitim Bil.") ElseIf Fak = "03" Then ListBox2.Items.Add("Hukuk") ElseIf Fak = "04" Then ListBox2.Items.Add("iletişim") Else ListBox2.Items.Add("Diğerleri") End If ListBox3.Items.Add(TextBox2.Text + " " + TextBox3.Text) Notu = (TextBox4.Text * 0.4) + (TextBox5.Text * 0.6)Tolga GÜYER Sayfa 13
14. 14. VB.Net Örnek Uygulamalar 2 Kasım 2011 ListBox4.Items.Add(Notu) If Notu <= 100 And Notu > 89 Then ListBox5.Items.Add("AA") ElseIf Notu > 84 Then ListBox5.Items.Add("BA") ElseIf Notu > 79 Then ListBox5.Items.Add("BB") ElseIf Notu > 74 Then ListBox5.Items.Add("CB") ElseIf Notu > 69 Then ListBox5.Items.Add("CC") ElseIf Notu > 64 Then ListBox5.Items.Add("DC") ElseIf Notu > 59 Then ListBox5.Items.Add("DD") ElseIf Notu > 49 Then ListBox5.Items.Add("FD") ElseIf Notu < 50 Then ListBox5.Items.Add("FF") End If TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox1.Focus() End SubEnd ClassTolga GÜYER Sayfa 14
15. 15. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 8 – Numara OluşturAçıklama : Açılan kutudan (ComboBox) seçilen fakülteye göre öğrenci numarası oluşturuluyor. Giriş yılı sistem zamanından alınıyor ve her fakülte için sıra numaraları ayrı sayaçlarda tutuluyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim fakulte_adi, fakulte_kodu, sira, numara As String Dim egt_sayac, muh_sayac, huk_sayac, tip_sayac, sayac As Integer Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object,ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged fakulte_adi = ComboBox1.Text If fakulte_adi = "Eğitim Bilimleri Fakültesi" Then fakulte_kodu = "04" egt_sayac = egt_sayac + 1 sayac = egt_sayac ElseIf fakulte_adi = "Mühendislik Fakültesi" Then fakulte_kodu = "03" muh_sayac = muh_sayac + 1 sayac = muh_sayac ElseIf fakulte_adi = "Hukuk Fakültesi" Then fakulte_kodu = "02" huk_sayac = huk_sayac + 1 sayac = huk_sayac ElseIf fakulte_adi = "Tıp Fakültesi" Then fakulte_kodu = "01" tip_sayac = tip_sayac + 1 sayac = tip_sayac End If ‘Sıra numarasının basamak sayısına göre başına ekleyeceği sıfırsayısına karar veriyor: If Strings.Len(sayac.ToString) = 1 Then sira = "000" + sayac.ToString ElseIf Strings.Len(sayac.ToString) = 2 Then sira = "00" + sayac.ToString ElseIf Strings.Len(sayac.ToString) = 3 Then sira = "0" + sayac.ToString Else sira = sayac.ToStringTolga GÜYER Sayfa 15
16. 16. VB.Net Örnek Uygulamalar 2 Kasım 2011 End If numara = Strings.Right(System.DateTime.Today.Year, 2) +fakulte_kodu + sira ‘Sistem saatinden bugünün tarihinin yılı alınıyor vebunun sağdan iki basamağı ayrıştırılıyor. TextBox3.Text = numara End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click TextBox1.Clear() TextBox2.Clear() TextBox3.Clear() TextBox1.Focus() End SubEnd ClassTolga GÜYER Sayfa 16
20. 20. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 11 – E-Posta Adresi OluşturmaAçıklama : Butona basıldığında kişinin adının ilk harfi ile soyadı birleştiriliyor, ComboBox’dan seçilen üniversiteye göre e-posta adresi otomatik olarak oluşturuluyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim eposta, alan As String Dim k As Byte Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click k = Strings.InStr(Cmb_universite.Text, " ") Üniversite adındakiilk boşluğun konumu. alan = Strings.Mid(Cmb_universite.Text, 1, k - 1) eposta = Strings.LCase(Strings.Left(Txt_ad.Text, 1) & "." &Txt_soyad.Text & "@" & alan & ".edu.tr") Aşağıda, metin içersinden Türkçe harfler dönüştürülüyor. Örneğin çetin => cetin gibi. eposta = Strings.Replace(eposta, "ş", "s", 1) eposta = Strings.Replace(eposta, "ğ", "g", 1) eposta = Strings.Replace(eposta, "ö", "o", 1) eposta = Strings.Replace(eposta, "ü", "u", 1) eposta = Strings.Replace(eposta, "ç", "c", 1) eposta = Strings.Replace(eposta, "ı", "i", 1) Txt_eposta.Text = eposta End SubEnd ClassTolga GÜYER Sayfa 20
21. 21. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 12 – Olaylar-1Açıklama : Radyo düğmelerinin ve işaretleme kutularının tıklama olayları liste kutusuna ekleniyor. Sil butonu, liste kutusundan seçilen kayıt(lar)ı siliyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim i As Byte Private Sub secenek1_Click(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles secenek1.Click ListBox1.Items.Add(secenek1.Text + " seçildi") End Sub Private Sub secenek2_Click(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles secenek2.Click ListBox1.Items.Add(secenek2.Text + " seçildi") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnSil.Click If ListBox1.SelectedItems.Count <> 0 Then ‘En az bir seçilmişseçenek varsa. For i = 0 To ListBox1.SelectedItems.Count - 1 ListBox1.Items.Remove(ListBox1.SelectedItem) Next End If End Sub Private Sub secim1_Click(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles secim1.Click If secim1.Checked = True Then ListBox1.Items.Add(secim1.Text + " işaretlendi") Else ListBox1.Items.Add(secim1.Text + " işareti kaldırıldı") End If End SubTolga GÜYER Sayfa 21
22. 22. VB.Net Örnek Uygulamalar 2 Kasım 2011 Private Sub secim2_Click(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles secim2.Click If secim2.Checked = True Then ListBox1.Items.Add(secim2.Text + " işaretlendi") Else ListBox1.Items.Add(secim2.Text + " işareti kaldırıldı") End If End SubEnd ClassTolga GÜYER Sayfa 22
23. 23. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 13 – Dört İşlemAçıklama : İki sayı için seçilen işleme göre hesap yapılıyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim s1, s2 As Integer Dim s As Double Private Sub hesapla_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles hesapla.Click s1 = sayi1.Text s2 = sayi2.Text If topla.Checked = True Then s = s1 + s2 ElseIf cikar.Checked = True Then s = s1 - s2 ElseIf carp.Checked = True Then s = s1 * s2 ElseIf bol.Checked = True And s2 <> 0 Then ‘Sıfıra bölme yapmasın. s = s1 / s2 End If sonuc.Text = s End SubEnd ClassTolga GÜYER Sayfa 23
24. 24. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 14 – Ardışık Sayıların ToplamıAçıklama : For-Next döngüsünün kullanımına ilişkin basit bir örnek. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnToplam_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnToplam.Click Dim sayac, toplam As Integer toplam = 0 For sayac = TxtBaslangic.Text To TxtBitis.Text toplam = toplam + sayac Next MsgBox(toplam) End SubEnd ClassTolga GÜYER Sayfa 24
25. 25. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 15 – Mekanik SayaçAçıklama : For-Next döngüsünün iç içe kullanımına ilişkin basit bir örnek. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnBaslat_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnBaslat.Click For basamak1 = 0 To 9 LblB1.Text = basamak1 For bekle = 0 To 10000000 ‘Her adımda beklemeyi sağlar. Next LblB1.Refresh()‘Etiketin (Label) tazelenmesi. Yeni sayıyı heradımda göstermesi için gereklidir. For basamak2 = 0 To 9 LblB2.Text = basamak2 For bekle = 0 To 10000000 Next LblB2.Refresh() For basamak3 = 0 To 9 LblB3.Text = basamak3 For bekle = 0 To 10000000 Next LblB3.Refresh() Next Next Next End SubEnd ClassTolga GÜYER Sayfa 25
26. 26. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 16 – Asal Sayı TestiAçıklama : Sayı asal ise “Asaldır” mesajı veriliyor. Aksi halde sayının ilk böleni gösteriliyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnAsalmi_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnAsalmi.Click Dim asalmi As Boolean = True Dim say As UInt64 ‘En büyük tamsayı türü. For say = 2 To TxtSayi.Text / 2 ‘Sayının yarısına kadar bölenaraştırılacak. If TxtSayi.Text Mod say = 0 Then ‘Eğer tam bölüyor ise… asalmi = False Exit For ‘Daha fazla araştırmaya gerek yok. End If Next If asalmi = True Then ‘Demekki yukarıdaki koşula hiç girmemiş. MsgBox("ASALDIR") Else : MsgBox("ASAL DEĞİLDİR. " & say & " sayısı bu sayıyıböler.") End If End SubEnd ClassTolga GÜYER Sayfa 26
27. 27. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 17 – Pi Sayısının Yaklaşık HesabıAçıklama : Girilen yaklaşım değerine bağlı olarak aşağıdaki toplam formülü ile Pi sayısı yaklaşık olarak hesaplanıyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim toplam As Double = 1 Dim k, i, faktor, faktor1 As Long If Strings.Trim(TxtYaklasim.Text) <> "" Then ‘Boş textistemiyoruz. If IsNumeric(TxtYaklasim.Text) Then ‘Sayısal olmayan veri deistemiyoruz. If TxtYaklasim.Text > 0 And TxtYaklasim.Text < 10 Then‘Bir de yaklaşım sayısı 1 il 9 arasında olacak. For k = 1 To TxtYaklasim.Text k faktöriyel hesaplanıyor: faktor = 1 For i = 1 To k faktor = faktor * i Next 2k+1 faktöriyel hesaplanıyor: faktor1 = 1 For i = 1 To 2 * k + 1 faktor1 = faktor1 * i Next Toplam hesaplanıyor: toplam = toplam + ((2 ^ k) * (faktor ^ 2)) /faktor1 Next LblSonuc.Text = 2 * toplam Else MsgBox("Yaklaşım sayısı 1-9 arasında olmalıdır!") End IfTolga GÜYER Sayfa 27
28. 28. VB.Net Örnek Uygulamalar 2 Kasım 2011 Else MsgBox("Lütfen sayısal veri giriniz!") End If Else MsgBox("İlgili alana veri girişi yapınız!") End If End SubEnd ClassTolga GÜYER Sayfa 28
29. 29. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 18 – Kuvvet ve Faktöriyel HesabıAçıklama : Girilen sayının istenilen kuvveti ve faktöriyeli hesaplanıyor. “For-Next” döngü yapısının kullanımına ilişkin bir örnektir. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim sayi, kuvvet As Integer Dim sonuc As Long Private Sub btnhesapla_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnhesapla.Click sayi = txtsayi.Text kuvvet = txtkuvvet.Text sonuc = 1 For sayac = 1 To kuvvet sonuc = sayi * sonuc ‘Sayı, kuvvet defa kendisi ileçarpılıyor. Next sayac txtsonuc.Text = sonuc End Sub Private Sub btnfaktor_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnfaktor.Click sayi = txtsayi.Text sonuc = 1 For sayac = 1 To sayi sonuc = sayac * sonuc ‘Sayıya kadar olan bütün sayılarçarpılıyor. Next sayac txtfaktor.Text = sonuc End SubEnd ClassTolga GÜYER Sayfa 29
30. 30. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 19 – İç İçe DöngüAçıklama : 000 ile 999 arasındaki sayılar iç içe düzenlenmiş üç for-next döngü yapısı kullanılarak oluşturuluyor. Kod içersinde yer alan “System.Threading.Thread.Sleep(10)” ifadesi, her adımda bekleme işlevini gerçekleştiriyor. Dolayısıyla sayaçların değişimi gözlenebiliyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim sayi As Integer Dim k As Long Private Sub btnbaslat_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles btnbaslat.Click For sayac1 = 0 To 9 For sayac2 = 0 To 9 For sayac3 = 0 To 9 lstsayi.Items.Add(sayac1.ToString + sayac2.ToString +sayac3.ToString) txtsayi3.Text = sayac3 txtsayi2.Text = sayac2 txtsayi1.Text = sayac1 txtsayi3.Refresh() txtsayi2.Refresh() txtsayi1.Refresh() System.Threading.Thread.Sleep(10) ‘Her adımda 10 msbekle. Next sayac3 Next sayac2 Next sayac1 End SubEnd ClassTolga GÜYER Sayfa 30
31. 31. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 20 – 153 SayısıAçıklama : 153 Sayısı şöyle bir özelliğe sahiptir: 153 = 13+ 53 + 33. Acaba 100 ile 999 arasında bu özelliği sağlayan, yani basamaklarının küplerinin toplamına eşit olan başka sayı ya da sayılar var mıdır? Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim sayi As Integer Private Sub Form1_Load(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles Me.Load For yuzler = 1 To 9 For onlar = 0 To 9 For birler = 0 To 9 sayi = 100 * yuzler + 10 * onlar + birler If sayi = yuzler ^ 3 + onlar ^ 3 + birler ^ 3 ThenListBox1.Items.Add(sayi) Next birler Next onlar Next yuzler End SubEnd ClassTolga GÜYER Sayfa 31
32. 32. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 21 – Pisagor ÜçlüleriAçıklama : a2 + b2 = c2 özelliğini sağlayan sayılar, dik üçgenin kenar uzunluklarını gösterirler ve Pisagor üçlüleri olarak anılırlar. 1 ile 99 arasındaki doğal sayılardan bu eşitliği sağlayanlar hangileri olabilir? Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e AsSystem.EventArgs) Handles Me.Load For a = 1 To 99 For b = 1 To 99 For c = 1 To 99 If (c ^ 2 = a ^ 2 + b ^ 2) And (a < b) ThenListBox1.Items.Add(a.ToString + " - " + b.ToString + " - " + c.ToString) Next c Next b Next a End SubEnd ClassTolga GÜYER Sayfa 32
33. 33. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 22 – Collatz ProblemiAçıklama : Dolu tanesi sayıları olarak da bilinen problem, girilecek bir pozitif tamsayı ile başlayan bir sayı dizisi oluşturmaya dayanır. Dizinin her bir elemanı, bir önceki sayı kullanılarak şu kural dahilinde hesaplanır: Eğer sayı çift ise bir sonraki sayı bu sayının yarısı, tek ise üç katının bir fazlası olacaktır. Böylece ilk sayısı verilen bir sayı dizisi oluşturulur. Örneğin, ilk sayı 7 ise dizi şu şekilde oluşacaktır: 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1,... Ya da ilk sayı 21 ise, 21, 64, 32, 16, 8, 4, 2, 1, ... Görüldüğü gibi dizi 1 sayısına ulaştığı anda sonsuz döngüye girmektedir. Aslında başlangıç sayısı olarak ne girersek girelim dizi her zaman 1 sayısına ulaşmaktadır, ama bu durum henüz matematiksel olarak kanıtlanamamıştır... Ekran GörüntüsüTolga GÜYER Sayfa 33
35. 35. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 23 – Kaprekar SayılarıAçıklama : Kaprekar sayıları , 1949 yılında Hintli matematikçi Kaprekar tarafından tariflenen sayılardır. n basamaklı bir t Kaprekar sayısının karesi alınıp sağdaki n basamağı solda kalan n-1 basamağa eklendiğinde sonuç yine t sayısını verir. Örnek: 55 , iki basamaklı bir sayıdır. 552 = 3025 , sağdan iki basamak 25 , soldan iki basamak 30. Bu iki sayının toplamı 30+25=55 yani sayının kendisidir. 1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879 sayıları da diğer bazı Kaprekar sayılarıdır. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim sayi, uz, sayi_kare, sagtaraf, soltaraf, basla, bitir,sagtaraf_uzunluk, sayi_kare_uzunluk As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnHesapla.ClickTolga GÜYER Sayfa 35 LstSayi.Items.Clear()
36. 36. VB.Net Örnek Uygulamalar 2 Kasım 2011 basla = TxtBaslangic.Text Bu sayı aralığın başlangıç sayısı veen az 9 girilmeli bitir = TxtBitis.Text For sayi = basla To bitir uz = Strings.Len(sayi.ToString) sayi_kare = sayi * sayi sagtaraf = Strings.Right(sayi_kare.ToString, uz) sayi_kare_uzunluk = Strings.Len(sayi_kare.ToString) sagtaraf_uzunluk = Strings.Len(sagtaraf.ToString) soltaraf = Strings.Left(sayi_kare.ToString, sayi_kare_uzunluk- sagtaraf_uzunluk) If sagtaraf + soltaraf = sayi And sayi <> 10 Then LstSayi.Items.Add(sayi) End If Next End SubEnd ClassTolga GÜYER Sayfa 36
37. 37. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 24 – Kaprekar SabitiAçıklama : Hintli matematikçi Kaprekar (1905-1986) tarafından tanımlanan , dört basamaklı sayılara en fazla yedi kez aşağıdaki işlemler uygulandığında ortaya çıkan sabit 6174 sayısı. İşlemler , tüm basamakları aynı sayıdan oluşmayan (2222 gibi - ilk adımda sıfır sonucunu verecektir) ve herhangi üç basamağındaki sayılar aynı olup kalan bir basamaktaki sayı bu sayıdan bir büyük ya da bir küçük olmayan (1112, 5565 veya 8788 gibi - ilk adımda 999 sayısını verecektir) dört basamaklı sayılara uygulandığında en fazla yedi adımda sıfır veya 6174 sabit sayısını verir. Yukarıdaki şartlara uygun dört basamaklı bir sayı alınır. Sayının basamaklarını büyükten küçüğe ve küçükten büyüğe doğru sıralayarak iki adet dört basamaklı sayı elde edilir. Elden edilen sayılardan büyükten küçüğü çıkarılır. 2. adım tekrar edilir. En fazla yedi adımda sıfır ya da 6174 sabit sayısı elde edilecek ve kısır döngüye girilecektir. Örnek: 6544 − 4456 = 2088 8820 − 0288 = 8532 8532 − 2358 = 6174 7641 − 1467 = 6174 Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim Tmp, Loop1, Loop2, Pos As Byte Dim enkucuksayi, enbuyuksayi, fark As Integer Dim sayilar(0 To 3) Private Sub BtnSirala_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnSirala.Click LstBuyukKucuk.Items.Clear()Tolga GÜYER Sayfa 37 sayilar(0) = TxtSayi1.Text
38. 38. VB.Net Örnek Uygulamalar 2 Kasım 2011 sayilar(1) = TxtSayi2.Text sayilar(2) = TxtSayi3.Text sayilar(3) = TxtSayi4.Text ‘Sıralama algoritması kullanılarak sayilar dizisi küçükten büyüğedoğru sıralanıyor: Do For Loop1 = 0 To 3 Pos = Loop1 For Loop2 = Loop1 + 1 To 3 If sayilar(Loop2) < sayilar(Pos) Then Pos = Loop2 End If Next Loop2 If Pos <> Loop1 Then Tmp = sayilar(Pos) sayilar(Pos) = sayilar(Loop1) sayilar(Loop1) = Tmp End If Next Loop1 enkucuksayi = 1000 * sayilar(0) + 100 * sayilar(1) + 10 *sayilar(2) + sayilar(3) enbuyuksayi = 1000 * sayilar(3) + 100 * sayilar(2) + 10 *sayilar(1) + sayilar(0) fark = enbuyuksayi - enkucuksayi LstBuyukKucuk.Items.Add(enbuyuksayi.ToString + "-" +enkucuksayi.ToString + "=" + fark.ToString) sayilar(0) = Strings.Mid(fark.ToString, 1, 1) sayilar(1) = Strings.Mid(fark.ToString, 2, 1) sayilar(2) = Strings.Mid(fark.ToString, 3, 1) sayilar(3) = Strings.Mid(fark.ToString, 4, 1) Loop Until fark = 6174 End SubEnd ClassTolga GÜYER Sayfa 38
39. 39. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 25 – Mükemmel SayılarAçıklama : 1 dahil, kendisi hariç olmak üzere bölenlerinin toplamına eşit olan sayılara mükemmel sayı adı verilir. Örneğin 6=1+2+3 olduğundan bir mükemmel sayıdır. Bir sonraki mükemmel sayı 28’dir. Çünkü 28=1+2+4+7+14 olur. Geliştirdiğimiz uygulama, kullanıcı tarafından girilecek bir sayının mükemmel olup olmadığını test etmekte, değil ise bir sonraki mükemmel sayıyı hesaplamaktadır. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim sayi, sayi1, toplam, k As Long Private Sub BtnKontrol_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnKontrol.Click sayi = TxtSayi.Text toplam = 0 For k = 2 To sayi / 2 If sayi Mod k = 0 Then toplam = toplam + k Next If toplam + 1 = sayi Then MsgBox("MÜKEMMEL!") Else ‘Sayı mükemmel değil ise bir sonrakini ara: sayi1 = sayi Do toplam = 0 sayi1 = sayi1 + 1 For k = 2 To sayi1 / 2 If sayi1 Mod k = 0 Then toplam = toplam + k Next Loop Until toplam + 1 = sayi1 MsgBox(sayi1) End If End SubEnd ClassTolga GÜYER Sayfa 39
40. 40. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 26 – Aritmetik Ortalama ve Standart SapmaAçıklama : Liste kutusuna aktarılan sayıların aritmetik ortalama ve standart sapmaları hesaplanıyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim toplam1, toplam2 As Integer Dim ort, StdSapma As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnEkle.Click LstSayilar.Items.Add(TxtSayi.Text) TxtSayi.Clear() TxtSayi.Focus() End Sub Private Sub BtnCikis_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnCikis.Click End End Sub Private Sub BtnOrtalama_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnOrtalama.Click toplam1 = 0 For k = 0 To LstSayilar.Items.Count - 1 toplam1 = toplam1 + LstSayilar.Items.Item(k) liste kutusundakisayılar toplanıyor. Next ort = toplam1 / LstSayilar.Items.Count Toplamın say adetine oranı. MsgBox(ort) End Sub Private Sub BtnStdSapma_Click(ByVal sender As System.Object, ByVal e AsTolga GÜYER Sayfa 40
41. 41. VB.Net Örnek Uygulamalar 2 Kasım 2011System.EventArgs) Handles BtnStdSapma.Click toplam2 = 0 For k As Integer = 0 To LstSayilar.Items.Count - 1 toplam2 = toplam2 + (LstSayilar.Items(k) - ort) ^ 2 Listekutusundaki sayıların her biri ile ortalama arasındaki farkların kareleritoplamı. Next StdSapma = Math.Sqrt(toplam2 / (LstSayilar.Items.Count - 1)) Karelertoplamının sayı adetinin bir eksiğine oranının karekökü. MsgBox(StdSapma) End Sub Private Sub BtnSil_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnSil.Click LstSayilar.Items.Clear() TxtSayi.Focus() End SubEnd ClassTolga GÜYER Sayfa 41
42. 42. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 27 – Renk AktarımıAçıklama : Label (etiket) nesneleri kullanarak oluşturulmuş bir renk paletinin kullanımı. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Label1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Label1.Click If RBtnForm.Checked Then ‘Eğer formun rengi opsiyonu seçili ise Me.BackColor = Label1.BackColor Else TextBox1.BackColor = Label1.BackColor End If End Sub Private Sub Label2_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Label2.Click If RBtnForm.Checked Then Me.BackColor = Label2.BackColor Else TextBox1.BackColor = Label2.BackColor End If End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Label3.Click If RBtnForm.Checked Then Me.BackColor = Label3.BackColor Else TextBox1.BackColor = Label3.BackColor End If End Sub Private Sub Label4_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Label4.Click If RBtnForm.Checked Then Me.BackColor = Label4.BackColor Else TextBox1.BackColor = Label4.BackColorTolga GÜYER Sayfa 42 End If
43. 43. VB.Net Örnek Uygulamalar 2 Kasım 2011 End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Label5.Click If RBtnForm.Checked Then Me.BackColor = Label5.BackColor Else TextBox1.BackColor = Label5.BackColor End If End SubEnd ClassTolga GÜYER Sayfa 43
44. 44. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 28 – Fonksiyon Kullanımı 1Açıklama : Fonksiyon kullanılarak dört işlem hesabı. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Function islem(ByVal kod As Char, ByVal s1 As Integer, ByVal s2 AsInteger) As Double Select Case kod Case "+" : Return (s1 + s2) Case "-" : Return (s1 - s2) Case "*" : Return (s1 * s2) Case "/" : Return (s1 / s2) End Select End Function Private Sub RadioTopla_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles RadioTopla.CheckedChanged TxtSonuc.Text = islem("+", CInt(TxtSayi1.Text),CInt(TxtSayi2.Text)) End Sub Private Sub RadioCikar_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles RadioCikar.CheckedChanged TxtSonuc.Text = islem("-", CInt(TxtSayi1.Text),CInt(TxtSayi2.Text)) End Sub Private Sub RadioCarp_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles RadioCarp.CheckedChanged TxtSonuc.Text = islem("*", CInt(TxtSayi1.Text),CInt(TxtSayi2.Text)) End Sub Private Sub RadioBol_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles RadioBol.CheckedChanged TxtSonuc.Text = islem("/", CInt(TxtSayi1.Text),CInt(TxtSayi2.Text)) End SubEnd ClassTolga GÜYER Sayfa 44
45. 45. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 29 – Fonksiyon Kullanımı 2Açıklama : Fonksiyon kullanılarak maaş hesabı. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Function cocuk_yardimi(ByVal m As Integer, ByVal c As Byte) As Double If c = 2 Then Return (c * m / 100) ElseIf c = 3 Then Return (2 * c * m / 100) ElseIf c > 3 Then Return (5 * c * m / 100) Else : Return 0 End If End Function Function aile_yardimi(ByVal kod As Byte) As Integer If kod = 1 Then Return (22) ElseIf kod = 2 Then Return (48) Else : Return 0 End If End Function Function yabanci_dil(ByVal kod As Byte) As Integer If kod = 1 ThenTolga GÜYER Sayfa 45
47. 47. VB.Net Örnek Uygulamalar 2 Kasım 2011 kod = 0 If ComboBox4.Text = "Lise" Then kod = 1 If ComboBox4.Text = "Üniversite" Then kod = 2 If ComboBox4.Text = "Yüksek Lisans" Then kod = 3 If ComboBox4.Text = "Doktora" Then kod = 4 maas = maas + kidem(m_gosterge, kod) Label5.Text = maas End SubEnd ClassTolga GÜYER Sayfa 47
48. 48. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 30 – PalindromAçıklama : Girilen metnin palindrom (tersten de aynı şekilde okunan) olup olmadığının test edilmesi. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim metin As String = TextBox1.Text Dim metin_ters As String = "" For k = Len(metin) - 1 To 0 Step -1 metin_ters = metin_ters & metin(k) Next If metin = metin_ters Then MsgBox("TAMAM") End SubEnd ClassTolga GÜYER Sayfa 48
49. 49. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 31 – Palindrom/ListeAçıklama : Girilen metnin içerisinde yer alan palindrom kelimeler ayıklanarak liste kutusuna aktarılıyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim metin As String = TextBox1.Text & " " Dim kelime, kelime_ters As String Dim p As Integer = 1 ListBox1.Items.Clear() For k = 0 To Len(metin) - 1 If metin(k) = " " Then kelime = Trim(Strings.Mid(metin, p, k - p + 1)) kelime_ters = "" For j = Len(kelime) - 1 To 0 Step -1 kelime_ters = kelime_ters & kelime(j) Next If kelime = kelime_ters Then ListBox1.Items.Add(kelime) p = p + Len(kelime) + 1 End If Next End SubEnd ClassTolga GÜYER Sayfa 49
50. 50. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 32 – Metin İstatistikleriAçıklama : Çok-satırlı bir metin kutusuna girilen metnin hece, kelime ve cümle sayıları hesaplanıyor ve girilen bir anahtar kelimenin metin içersinde geçme sayısı bulunuyor. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim metin, anahtar, sonkarakter As String Dim kelime_sayisi, cumle_sayisi, hece_sayisi, p, konum, sayac As Integer Private Sub BtnHesapla_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnHesapla.Click metin = TxtMetin.Text + " " kelime_sayisi = 0 cumle_sayisi = 0 hece_sayisi = 0 For k = 0 To Strings.Len(metin) - 1 Metni sonuna kadar karakterkarakter tarıyor. If metin(k) = " " Then kelime_sayisi = kelime_sayisi + 1 Kelimesayısı=boşluk sayısı. Çünkü yukarıda fazladan bir boşluk eklemiştik. If k = Strings.Len(metin) - 1 Then Exit For Aşağıdaki koşulda sonkarakterden sonra (k+1) arama yapmasınTolga GÜYER Sayfa 50
51. 51. VB.Net Örnek Uygulamalar 2 Kasım 2011 If (metin(k) = "." And (metin(k + 1) = " " Or Strings.Asc(metin(k +1)) = 13)) Or metin(k) = "?" Or metin(k) = "!" Then cumle_sayisi = cumle_sayisi +1 Hece sayısı=sesli harf sayısı: If metin(k) = "a" Or metin(k) = "e" Or metin(k) = "ı" Or metin(k) ="i" Or metin(k) = "o" Or metin(k) = "ö" Or metin(k) = "u" Or metin(k) = "ü" Thenhece_sayisi = hece_sayisi + 1 Next LblCumleSayisi.Text = cumle_sayisi LblKelimeSayisi.Text = kelime_sayisi LblHeceSayisi.Text = hece_sayisi End Sub Private Sub BtnBul_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnBul.Click metin = TxtMetin.Text If RadioButton1.Checked Then Serbest arama. Yani "masa" aranırken"masal" da bulunur. anahtar = TxtAnahtarKelime.Text Else anahtar = " " + TxtAnahtarKelime.Text + " " Tam eşitlik arama."masa" aranırken, "masal" bulunmaz. End If sayac = 0 konum = 1 Do p = Strings.InStr(konum, metin, anahtar) "anahtar" kelime "metin"içersinde "konum"dan başlayarak aranıyor. If p <> 0 Then sayac = sayac + 1 konum = p + Strings.Len(anahtar) Bulunca aramaya yeni konumdandevam et. Loop Until p = 0 LblSayi.Text = sayac End SubEnd ClassTolga GÜYER Sayfa 51
52. 52. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 33 – Anahtarlı Metin ŞifrelemeAçıklama : Çok-satırlı bir metin kutusuna girilen bir metin, anahtar kelime kullanılarak şifreleniyor. Şifreleme, metnin her bir karakterinin ASCII koduna, anahtar kelimenin her bir karakterinin ASCII kodunun eklenmesi ile gerçekleştiriliyor. Aşağıda, örnek üzerinden şifreleme algoritmasının açıklaması yapılmıştır: Ek AçıklamaMetin = “Bilgisayar ve Öğretim”Anahtar = “okul” B 254 İ 60 l 254 g 254 i 254 s a y a r v e Ö ğ r o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o , Ü # ^ ? h 8 9 d 6 , i 2 1 m * } Toplam=304 110 509 508 507 Mod 255=49 110 254 253 252 , 49 Ü # 254 ^ 253 ? 252 h 8 9 d 6 , i 2 1 m * } 110 o 50 k 50 u 255 l 254 o 253 k u l o k u l o k u l o Fark=-1 60 -1 -1 -1 Fark<=0 ise +255 = 254 254 254 254 Aksi halde Mod 255 60 Ekran GörüntüsüTolga GÜYER Sayfa 52
53. 53. VB.Net Örnek Uygulamalar 2 Kasım 2011 Açıklamalı KodlarPublic Class Form1 Private Sub BtnSifrele_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnSifrele.Click Dim metin As String = TxtMetin.Text Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:") Dim sifreli_metin As String = "" Dim j As Byte = 0 For k = 0 To Strings.Len(metin) - 1 Metni karakter karakter sonunakadar tara. sifreli_metin = sifreli_metin + Strings.Chr((Strings.Asc(metin(k)) +Strings.Asc(anahtar(j))) Mod 255) Şifreli metni, her bir karakterinin koduna anahtar kelimeninsıradaki karakterinin kodunu ekleyerek bul. Neden Mod 255? Çünkü toplam 255 değerini aşabilir. j = j + 1 If j = Strings.Len(anahtar) Then j = 0 Anahtar kelimenin indisiayrı tutulmalı. Yoksa indisde değer aşımı olur. Next TxtSifreliMetin.Text = sifreli_metin End SubEnd ClassTolga GÜYER Sayfa 53
54. 54. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 34 – Anahtarlı Metin Şifre ÇözmeAçıklama : Önceki uygulamada gerçekleştirilen şifrelemeyi, aynı anahtarın girilmesi şartıyla ters algoritma kullanarak çözen uygulama. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnSifrecoz_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnSifrecoz.Click Dim sifreli_metin As String = TxtSifreliMetin.Text Dim anahtar As String = InputBox("Anahtar kelimeyi giriniz:") Dim metin As String = "" Dim kod As Integer Dim j As Byte = 0 For k = 0 To Strings.Len(sifreli_metin) - 1 kod = Strings.Asc(sifreli_metin(k)) - Strings.Asc(anahtar(j)) If kod <= 0 Then kod = kod + 255 Else kod = kod Mod 255 metin = metin + Strings.Chr(kod) j = j + 1 If j = Strings.Len(anahtar) Then j = 0 Next TxtMetin.Text = metin End SubEnd ClassTolga GÜYER Sayfa 54
55. 55. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 35 – Veritabanı Uygulaması 1Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnTamam.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|vt1.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|vt1.mdb; Persist Security Info=False;"‘Bu bağlantı metinlerinden birisi kullanılacaktır.‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiyeedilir. Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open()‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor. Dim sql1 As String sql1 = "select * from tablo1 where klnad=" & TxtKlnAd.Text & "and sifre=" & TxtSifre.Text & ""‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip birSQL cümlesi oluşturuluyor. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komututanımlanıyor. Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor veçalıştırılıyor. If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda verivarsa MsgBox("Kullanıcı kayıtlı.")Tolga GÜYER Sayfa 55
56. 56. VB.Net Örnek Uygulamalar 2 Kasım 2011 Else MsgBox("Kullanıcı kayıtlı değil.") End If baglanti1.Close() End SubEnd ClassTolga GÜYER Sayfa 56
57. 57. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 36 – Veritabanı Uygulaması 2Açıklama : Veritabanı ile bağlantı kurulması ve veri okunması. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnTamam_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnTamam.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|vt1.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|vt1.mdb; Persist Security Info=False;"‘Bu bağlantı metinlerinden birisi kullanılacaktır.‘MS.ACE.OLEDB motoru 64 bit işletim sistemlerinde sorun çıkarabiliyor.‘Bu durumda MS.Jet.OLEDB motorunun ve mdb formatının kullanılması tavsiyeedilir. Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open()‘Bağlantı metni kullanılarak yeni bir bağlantı tanımlanıyor ve açılıyor. Dim sql1 As String sql1 = "select * from tablo1 where klnad=" & TxtKlnAd.Text & "and sifre=" & TxtSifre.Text & ""‘Formdaki alanların değerleri kullanılarak veri seçme işlevine sahip birSQL cümlesi oluşturuluyor. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1)‘Bağlantı ve SQL cümlesi kullanılarak yeni bir veritabanı komututanımlanıyor. Dim veri_okuyucu1 As Data.OleDb.OleDbDataReader veri_okuyucu1 = komut1.ExecuteReader‘Tanımlanan veritabanı komutu üzerinden bir veri okuyucusu tanımlanıyor veçalıştırılıyor. If veri_okuyucu1.HasRows = True Then ‘Eğer veri okuyucusunda verivarsaTolga GÜYER Sayfa 57 veri_okuyucu1.Read()
58. 58. VB.Net Örnek Uygulamalar 2 Kasım 2011 MsgBox("Merhaba " & veri_okuyucu1("ad") & " " &veri_okuyucu1("soyad") & ". MATRIXe hoşgeldin...") ‘Veri okuyucusukullanılarak istenilen alana ulaşmak mümkün. Else MsgBox("Kullanıcı kayıtlı değil.") End If baglanti1.Close() End SubEnd ClassTolga GÜYER Sayfa 58
59. 59. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 37 – Veritabanı Uygulaması 3Açıklama : Veritabanına kayıt eklenmesi. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|vt2.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|vt2.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into anatablo (ad,soyad,fakulte,bolum) values (" +TxtAd.Text + "," + TxtSoyad.Text + "," + CmbFakulte.Text + "," +CmbBolum.Text + ")"‘Veritabanı tablosuna satır eklemek için kullanılacak SQL cümlesi Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery()‘SQL sorgusu burada çalıştırılıyor. baglanti1.Close() MsgBox("Veriler Kaydedildi") TxtAd.Clear() TxtSoyad.Clear() TxtAd.Focus() CmbBolum.ResetText() CmbFakulte.ResetText() End SubEnd ClassTolga GÜYER Sayfa 59
60. 60. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 38 – Veritabanı Uygulaması 4Açıklama : Veritabanına kayıt eklenmesi. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|sinema.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|sinema.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)values (" + TxtFilmAdi.Text + "," + TxtYonetmen.Text + "," &CInt(CmbYili.Text) & "," & CInt(CmbYildiz.Text) & "," & TxtYorum.Text +")"‘Dikkat: insert cümlesinde veritabanında sayı türünde tanımlanmış alanlariçin tek tırnak işareti kullanılmaz. Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery() baglanti1.Close() MsgBox("Veriler Kaydedildi") TxtFilmAdi.Clear() TxtYonetmen.Clear()Tolga GÜYER Sayfa 60
61. 61. VB.Net Örnek Uygulamalar 2 Kasım 2011 TxtYorum.Clear() TxtFilmAdi.Focus() CmbYildiz.ResetText() CmbYili.ResetText() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles MyBase.Load For k = 1900 To 2010 CmbYili.Items.Add(k) Next End SubEnd ClassTolga GÜYER Sayfa 61
62. 62. VB.Net Örnek Uygulamalar 2 Kasım 2011Uygulama No: 39 – Veritabanı Uygulaması 5Açıklama : Veritabanına kayıt eklenmesi – Resim uygulamalı. Ekran Görüntüsü Açıklamalı KodlarPublic Class Form1 Dim b1, b2, b3, b4, b5, yildiz As Byte Private Sub BtnKaydet_Click(ByVal sender As System.Object, ByVal e AsSystem.EventArgs) Handles BtnKaydet.Click Dim baglanti_metni1, baglanti_metni2 As String baglanti_metni1 = "Provider=Microsoft.ACE.OLEDB.12.0; DataSource=|DataDirectory|sinema.accdb; Persist Security Info=False;" baglanti_metni2 = "Provider=Microsoft.Jet.OLEDB.4.0; DataSource=|DataDirectory|sinema.mdb; Persist Security Info=False;" Dim baglanti1 As New Data.OleDb.OleDbConnection(baglanti_metni2) baglanti1.Open() Dim sql1 As String sql1 = "insert into filmler (film_adi,yonetmen,yili,yildiz,yorum)values (" + TxtFilmAdi.Text + "," + TxtYonetmen.Text + "," &CInt(CmbYili.Text) & "," & yildiz & "," & TxtYorum.Text + ")" Dim komut1 As New System.Data.OleDb.OleDbCommand(sql1, baglanti1) komut1.ExecuteNonQuery() baglanti1.Close() TxtFilmAdi.Clear() TxtYonetmen.Clear()Tolga GÜYER Sayfa 62 TxtYorum.Clear()