gorsel programlama yardimci kodlari

Mesaj Önizleme  Konuyu Gönder 
gorsel programlama yardimci kodlari
Yazar Mesaj
Mckarakuleee
Üye
**

Mesajlar: 18
Katılım: Mar 2008
Rep Puanı: 0

Toplam Konu: 10
Mesaj: #1
Question gorsel programlama yardimci kodlari

T.C.
MİLLİ EĞİTİM BAKANLIĞI
MEGEP
(MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN
GÜÇLENDİRİLMESİ PROJESİ)
BİLİŞİM TEKNOLOJİLERİ
GÖRSEL PROGRAMLAMA YARDIMCI
KODLARI
ANKARA 2007
Milli Eğitim Bakanlığı tarafından geliştirilen modüller;
• Talim ve Terbiye Kurulu Başkanlığının 02.06.2006 tarih ve 269 sayılı
Kararı ile onaylanan, Mesleki ve Teknik Eğitim Okul ve Kurumlarında
kademeli olarak yaygınlaştırılan 42 alan ve 192 dala ait çerçeve öğretim
programlarında amaçlanan mesleki yeterlikleri kazandırmaya yönelik
geliştirilmiş öğretim materyalleridir (Ders Notlarıdır).
• Modüller, bireylere mesleki yeterlik kazandırmak ve bireysel öğrenmeye
rehberlik etmek amacıyla öğrenme materyali olarak hazırlanmış,
denenmek ve geliştirilmek üzere Mesleki ve Teknik Eğitim Okul ve
Kurumlarında uygulanmaya başlanmıştır.
• Modüller teknolojik gelişmelere paralel olarak, amaçlanan yeterliği
kazandırmak koşulu ile eğitim öğretim sırasında geliştirilebilir ve
yapılması önerilen değişiklikler Bakanlıkta ilgili birime bildirilir.
• Örgün ve yaygın eğitim kurumları, işletmeler ve kendi kendine mesleki
yeterlik kazanmak isteyen bireyler modüllere internet üzerinden
ulaşılabilirler.
• Basılmış modüller, eğitim kurumlarında öğrencilere ücretsiz olarak dağıtılır.
• Modüller hiçbir şekilde ticari amaçla kullanılamaz ve ücret karşılığında
satılamaz.
i
AÇIKLAMALAR ...................................................................................................................iii
GİRİŞ ......................................................................................................................................1
ÖĞRENME FAALİYETİ–1 ....................................................................................................3
1. İSTİSNAİ DURUMLAR .....................................................................................................3
1.1. Try Catch ( Finally) Komutu ........................................................................................3
1.2. Exception Türü .............................................................................................................6
1.3. Sık Görülen Hata Sınıfları ............................................................................................9
1.3.1. ArgumentException...............................................................................................9
1.3.2. DivideByZeroException ......................................................................................10
1.3.3. OwerflowException.............................................................................................11
1.3.4. FieldAccessException..........................................................................................12
1.4. Throw New Komutu ...................................................................................................12
UYGULAMA FAALİYETİ ..............................................................................................13
ÖLÇME VE DEĞERLENDİRME....................................................................................14
ÖĞRENME FAALİYETİ–2 ..................................................................................................15
2. YAPI VE SINIFLAR .........................................................................................................15
2.1. Yapılar ........................................................................................................................15
2.1.1. Bayt Yapısı ..........................................................................................................15
2.1.2. Int16 Yapısı .........................................................................................................15
2.1.3. Int32 Yapısı .........................................................................................................15
2.1.4. Int64 Yapısı .........................................................................................................15
2.1.5. Single Yapısı........................................................................................................16
2.1.6. Double Yapısı ......................................................................................................16
2.1.7. Boolean Yapısı ....................................................................................................16
2.1.8. Char Yapısı ..........................................................................................................16
2.1.9. Decimal Yapısı ....................................................................................................16
2.1.10. Date Time Yapısı...............................................................................................16
2.2. Sınıflar ........................................................................................................................19
2.2.1 Object Sınıfı..........................................................................................................19
2.2.2. String ...................................................................................................................20
2.3. Veri Türleri .................................................................................................................25
2.3.1. Bayt (Bayt) Veri Türü..........................................................................................25
2.3.2. Short (Int16) Veri Türü........................................................................................25
2.3.3. Integer (Int32) Veri Türü .....................................................................................25
2.3.4. Long (Int64) Veri Türü........................................................................................25
2.3.5. Single Veri Türü ..................................................................................................26
2.3.6. Double Veri Türü.................................................................................................26
2.3.7. Boolean Veri Türü ...............................................................................................26
2.3.8. Char Veri Türü.....................................................................................................26
2.3.9. Decimal veri türü .................................................................................................27
2.3.10. Date Veri Türü...................................................................................................27
2.4. Otomatik Veri Dönüşümleri (Widening Conversions) ...............................................31
2.5. Ters Yöndeki Dönüşümler (Narrowing Conversions)................................................32
2.6. InvalidcastException Hatası .......................................................................................32
2.7. Dönüşüm Komutları ...................................................................................................34
2.7.1. ToString, CStr Komutları ....................................................................................34
İÇİNDEKİLER
ii
2.7.2. ToDouble, CDbl Komutları .................................................................................34
2.7.3. ToSingle, CSng komutları ...................................................................................35
2.7.4. ToInt16, CShort Komutları..................................................................................36
2.7.5. ToInt32, CInt Komutları......................................................................................36
2.7.6. ToInt64, CLng Komutları....................................................................................37
2.7.7. ToBayt, CBayt Komutları....................................................................................37
2.7.8. ToDateTime, CDate Komutları ...........................................................................38
2.7.9. ToDecimal, CDec Komutları...............................................................................39
2.7.10. ToChar, CChar Komutları .................................................................................40
2.7.11. ToBoolean, CBool Komutları............................................................................40
2.7.12. CType Komutu ..................................................................................................41
UYGULAMA FAALİYETİ ..............................................................................................43
ÖLÇME VE DEĞERLENDİRME....................................................................................44
ÖĞRENME FAALİYETİ–3 ..................................................................................................45
3. FV, WITH VE FOR EACH KOMUTLARI.......................................................................45
3.1. FV Komutu ve Parametreleri......................................................................................45
3.2. With…End With Komutu...........................................................................................48
3.3. For Each Komutu........................................................................................................49
3.4. TypeOf…Is Komutu ...................................................................................................52
UYGULAMA FAALİYETİ ..............................................................................................54
ÖLÇME VE DEĞERLENDİRME....................................................................................55
ÖĞRENME FAALİYETİ–4 ..................................................................................................56
4. NESNEYE YÖNELİK KOD .............................................................................................56
4.1. Kullanıcı Tanımlı Sınıflar...........................................................................................56
4.2. “Class…End Class” Bloğu .........................................................................................58
4.3. “Get…End Get” ve “Set…End Set” Blokları.............................................................58
4.4. “New” Anahtar Kelimesi ............................................................................................59
4.5. “Encapsulation” Deyimi .............................................................................................59
4.6. Metods ( Hareketler) ve Properties (Özellikler) .........................................................59
4.7. Sadece Yazılabilir veya Sadece Okunabilir Özellikler ...............................................62
4.8. Kullanıcı Arabirim Sınıfları........................................................................................63
4.9. “Garbage collection”...................................................................................................66
4.10. “Nothing Deyimi”.....................................................................................................66
4.11. Object Browser Penceresi.........................................................................................67
UYGULAMA FAALİYETİ ..............................................................................................69
ÖLÇME VE DEĞERLENDİRME....................................................................................71
MODÜL DEĞERLENDİRME ..............................................................................................72
CEVAP ANAHTARLARI.....................................................................................................73
ÖNERİLEN KAYNAKLAR..................................................................................................75
KAYNAKÇA........................................................................................................................76
iii
AÇIKLAMALAR
KOD 482BK0070
ALAN Bilişim Teknolojileri
DAL/MESLEK Veritabanı Programcılığı
MODÜLÜN ADI Görsel Programlama Yardımcı Kodları
MODÜLÜN TANIMI Görsel programlamada yardımcı kodlar ile ilgili öğrenme
materyalidir.
SÜRE 40/32
ÖN KOŞUL Görsel Programlama Komutları modülünü bitirmiş olmak
YETERLİK Görsel programlama dilinde yardımcı komutları yazmak
MODÜLÜN AMACI
Genel Amaç:
Gerekli ortam sağlandığında, istisnai durumları
yakalayabilecek, yapı ve sınıf tanımlayabilecek döngü
komutlarını kullanabilecek ve nesneye yönelik kod
yazabileceksiniz.
Amaçlar:
1. İstisnai durumları yakalayabileceksiniz.
2. Yapı ve sınıflar kütüphaneleri ile çalışabileceksiniz.
3. Döngü komutlarını kullanabileceksiniz.
4. Nesneye yönelik kod yazabileceksiniz.
EĞİTİM ÖĞRETİM
ORTAMLARI VE
DONANIMLARI
Bilgisayar laboratuvarı ve bu ortamda bulunan;
Bilgisayar, yazıcı, internet bağlantısı, bilgisayar masaları,
kâğıt, kalem
ÖLÇME VE
DEĞERLENDİRME
Her faaliyet sonrasında o faaliyetle ilgili değerlendirme
soruları ile kendi kendinizi değerlendireceksiniz. Modül
içinde ve sonunda verilen öğretici sorularla edindiğiniz
bilgileri pekiştirecek, uygulama örneklerini ve testleri gerekli
süre içinde tamamlayarak etkili öğrenmeyi
gerçekleştireceksiniz. Sırasıyla araştırma yaparak, grup
çalışmalarına katılarak ve en son aşamada alan
öğretmenlerine danışarak ölçme ve değerlendirme
uygulamalarını gerçekleştiriniz.
AÇIKLAMALAR
iv
1
GİRİŞ
Sevgili Öğrenci,
Programcılıkta karşımıza çıkacak sorunlar hiçbir zaman bizleri yıldırmamalıdır.
Önemli olan kişide öğrenme isteği olmasıdır ve öğrenen kişinin hemen vazgeçmemesidir.
Yapılan işlerin hepsinde başarılı olunamayabilir. Ancak gayret, çalışma ve sabır
sonrasında tüm sorunların üstesinden gelinebilir. Bu bazıları için kısa bazıları için ise uzun
zaman alabilir. Hedefine ulaşmadan pes etmemeniz gerekir.
Bu modül ile öğreneceğiniz konular istisnai durumlar, yapı ve sınıflar, FV, with ve For
Each komutları ve nesneye yönelik kodlardır. Modülü bitirdiğinizde anlamadığınız yerleri
tekrar okuyup uygulayınız. Konuları tam olarak kavramadan diğer modüle geçmeyiniz.
Konular kapsamlı olarak, derinlemesine anlatılmamıştır. Ne kadar çok uygulama,
araştırma yapar iseniz kendinizi o kadar geliştirirsiniz ve ilerletirsiniz.
Her dilin kendine göre avantajı bulunmaktadır. Modülde verilen örnekleri yaptığınızda
o dili öğrenmiş olmayacaksınız. Asıl istenen, anlatılmak istenen konunun uygulanmasıdır,
somut hale gelmesidir, anlaşılır hale gelmesidir.
Bu modülde verilen programlarda bilerek veya bilmeyerek yapılmış hatalar olabilir.
Bulduğunuz hataları ve yeni önerilerinizi arkadaşlarınız ile paylaşınız.
Belli yerlerde geçen araştırma konuları için “Önerilen Kaynaklar” kısmından yardım
almayı unutmayınız.
GİRİŞ
2
3
ÖĞRENME FAALİYETİ–1
Gerekli ortam sağlandığında, istisnai durumları yakalayabilecek ve bu durumlara göre
hata mesajları yazdırabileceksiniz.
Bu faaliyet öncesinde yapmanız gereken araştırmalar şunlardır:
1. İstisnai durumun ne olduğunu araştırınız.
2. Hata sınıfları ve bunların oluşması için gerekli şartları araştırınız.
Araştırma işlemleri için internet ortamı ve görsel programlama dilini anlatan kaynak
kitaplardan faydalanınız.
1. İSTİSNAİ DURUMLAR
Tüm programlama dillerinde (Visual Basic, Visual C#, Visual Java vs.) program
akışını etkileyen hatta durdurabilen istisnai durumlar (Exceptions) bulunabilir. İyi bir
bilgisayar programcısı yaptığı programlarda hata çıkmayan, kullanıcıyı sıkmayan, sistem
kaynaklarını gereğinden fazla kullanmayan ve her platformda çalışan programlar üreten
kişidir.
İstisnai durum, programda ortaya çıkması beklenmeyen bir durumdur. Mesela, bir
bölme işleminde bölen 0 (sıfır) olursa istisnai durum oluşur. Bu durum programın çalışması
esnasında ortaya çıkar ve her ortamda programın kırılmasını sağlar. Bu durumda programın
çalışmasını durdurduğu için programın güvenirliliği tartışılır hale gelir. Önemli olan bu
hataların ortaya çıkacağı komut satırlarını bulup gerekli önlemleri almaktır.
Bu öğrenme faaliyetinde Visual Basic.NET programlama dilinde istisnai durumların
hangi şartlarda oluşabileceği ve programın kırılmasının engellenmesi için alınacak tedbirler
hakkında bilgi verilecektir.
1.1. Try Catch ( Finally) Komutu
Ortaya çıkabilecek istisnai durumları yönetmek için kullanılan komuttur. Basit bir
örnekle istisnai durumun nasıl oluştuğunu anlatım.
Öncelikle klavyeden girdiğimiz bilginin 55 sayısına eşit olup olmadığını kontrol eden
basit bir program yazıp buna uygun bir form oluşturalım.
ÖĞRENME FAALİYETİ–1
AMAÇ
ARAŞTIRMA
4
Dim a As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
a = TextBox1.Text
If a = 55 Then
MsgBox("HOŞGELDİNİZ")
End If
End Sub
Resim 1.1: İstisna oluşumu örnek form
Oluşturduğumuz programı çalıştırdığımızda TextBox1 kutucuğuna bilgi yazıp kontrol
butonu ile girilen bilginin 55 olup olmadığını kontrol edebiliriz. Kullanıcı bu kutucuğa
yanlışlıkla rakam yerine string ( harf, kelime ) ifadesi yazarsa karşımıza bir istisnai durum
çıkacaktır.
Resim 1.2: İstisnai durum görüntüsü
5
Yukarıdaki istisnai durum TextBox1 kutucuğuna rakam girmemiz gerekirken string
bilgisi girdiğimiz için oluşmuş ve program durdurulmuştur. Programcı programında böyle
bir hata ortaya çıkacağını tahmin edip bunun önlemini almalıdır.
İşte try…catch komutu bu durumda kullanılır. Try ifadesi çalışma hatası olabilecek
komut satırlarından hemen önce, catch ifadesi ise çalışma hatası oluştuğunda çalıştırılacak
ifadelerin önüne yazılır. Ayrıca programımızda hata olup olmadığına bakılmaksızın
çalıştıracağımız komutlar varsa bunlar finally bloğu altına yazılarak çalıştırılabilir. Finally
bloğu isteğe bağlı olarak kullanılır.
Try …Catch …Finally ifadesinin genel kullanım şekli aşağıdaki gibidir.
Try
İstisnai durum oluşturabilecek kod/kodlar
Catch
İstisnai durum oluştuğunda çalışacak kod/kodlar
Finally (isteğe bağlı)
İstisnai durum oluşsun veya oluşmasın çalışacak kod/kodlar
End Try
Şimdi başta yaptığımız örneği Try…Catch…Finally komutunu kullanarak tekrar
yapalım.
Dim a As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)Handles Button1.Click
Try
a = TextBox1.Text
If a = 55 Then
MsgBox("HOŞGELDİNİZ")
End If
Catch
MsgBox("HATALI BİLGİ")
Finally
MsgBox("TEŞEKKÜRLER...")
End Try
End Sub
1
3
4
2
6
Örnekte görüldüğü gibi istisnai durum oluşturabilecek komut satırları 1 ile 2 numaralı
satırlar arasına yani Try…Catch deyimleri arasına, istisnai durum oluştuğunda çalıştırılacak
komut veya komutlar 2 ile 3 numaralı satırlar arasına yani Catch…Finally deyimleri arasına
yazılır. Finally komutu kullanılmazsa 3 nu.lı satır programda yazılmaz, komut veya komutlar
2 ile 4 nu.lı satırlar arasına yani Catch…End Try deyimleri arasına yazılır. İstisnai durum
oluşsa da oluşmasa da çalışmasını istediğimiz komutlar 3 ile 4 nu.lı satırlar arasına yani
Finally…End Try deyimleri arasına yazılır.
Programın çalışma mantığını kısaca açıklayacak olursak;
Resim 1.1’deki form oluşturulup program çalıştırdığımızda girilen bilgi 55 ise ekrana
“HOŞGELDİNİZ” , 55’in dışında bir sayı ise “TEŞEKKÜRLER”, string ise önce “HATALI
BİLGİ” sonra “TEŞEKKÜRLER” yazdırılacaktır.
Not: Dikkat edilirse istisnai durum oluşsa da oluşmasa da ekrana
“TEŞEKKÜRLER” bilgisi yazdırılır. Ayrıca istisnai durum oluştuğunda program kırılmaz
çalışmasına devam eder.
1.2. Exception Türü
Exception tüm hata türlerini yakalamak ve yönetmek için kullanılan hata sınıfıdır. Bu
sınıf içinde birçok hata türünü barındırır. Bu sınıfı kullanarak yakalanan hatalar bir
değişkene aktarılıp ekrana yazdırılabilir. Ayrıca yeni istisnalar oluşturulabilir.
Kullanım şekli;
Catch değişken As Exception
Catch bloğu hata yakalanınca yapılacak işlemler listesinin hemen öncesinde
bulunuyordu. Burada herhangi bir istisna yakalandığında bu istisna bilgisi değişkene
aktarılıyor ve değişken üzerinden işlem yapılıyor. Ayrıca kullanılacak değişken de hata
bilgisini tutmak için aşağıdaki şekilde tanımlanmalıdır.
Dim değişken As Exception
Exception nesnesine ait özellik veya metotlar aşağıda listelenmiştir.
Özellik veya Metot Açıklama
HelpLink Hata hakkında detaylı bilgi veren URL bilgisi barındırır.
InnerException Catch bloğuna yazdığımız kodda oluşacak hatalara erişmek için
kullanılır.
Message Kullanıcıyı bilgilendirmek üzere hata hakkında detaylı açıklama
içerir.
Source Hatayı oluşturan sınıf hakkında bilgi verir.
SatckTrace Hatanın nerede oluştuğunun detaylı bilgisini içerir. Kaynak dosya
ismi ve hatanın oluştuğu satır numarasını verir.
TargetSite Güncel istisnayı yöneten metottur.
7
Örnek: Exception nesnesine ait özellikleri içeren program.
Public Class Form1
Dim a, b As Integer
Dim c As Double
Dim e As Exception
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
a = TextBox1.Text
b = TextBox2.text
c = a / b
Label2.Text = c
Catch e As Exception
MessageBox.Show(e.Message)
MessageBox.Show(e.Source)
MessageBox.Show(e.StackTrace)
End Try
End Sub
End Class
Resim 1.3: Program için hazırlanmış form
Örnekte resim 1.3’teki formdan girilen iki değerin bölümü sonuç butonuna
basıldığında ekrana yazdırılır. Burada hem tanımlama hatası hem de sıfıra bölme hatası
oluşabilir.
Textbox’lardan herhangi birine integer tipin dışında bilgi yazılırsa tanımlama hatası, 2.
sayının yazılacağı Textbox’a sıfır yazılırsa sıfıra bölme hatası oluşur. Oluşan hatalar
Exception komutu yardımı ile yakalanıp “ e ” değişkenine aktarılır. Message özelliği ile hata
hakkında ayrıntılı bilgi, Source özelliği ile hatayı oluşturan sınıf hakkında bilgi ve
StackTrace özelliği ile de hatanın oluştuğu yer ve kaynak dosya bilgileri ekrana sırasıyla
aktarılır.
8
Programı çalıştırıp 1. sayıya 15, 2. sayıya 5 yazılıp sonuç butonuna basıldığında
karşımıza resim 1.4’teki ekran çıkacaktır.
Resim 1.4: Formun işlem yapılmış hali
Programı çalıştırıp 1. sayıya 15, 2. sayıya a yazılıp sonuç butonuna basıldığında ise
karşımıza sırasıyla aşağıdaki mesajlar çıkar.
Resim 1.5: Sıfıra bölme hatası uyarı mesajı Resim 1.6: Hata kaynağı uyarı mesajı
Resim 1.7: Sıfıra bölme hatası ayrıntılı uyarı mesajı
􀂾 Resim 1.5’teki hata mesajında a bilgisinin integer tipte olmadığı
belirtilmektedir. Bu mesajın görüntülenmesini sağlayan komut
MessageBox.Show (e.Message) dur.
􀂾 Resim 1.6’da hatanın kaynağının Microsoft.VisualBasic olduğu
belirtilmektedir. Bu mesajın görüntülenmesini sağlayan komut
MessageBox.Show(e.Source) dur.
􀂾 Resim 1.7’de ise hata hakkında ayrıntılı bilgi verilmektedir. Burada hatanın
hangi satırda oluştuğu belirtilmektedir. Bu mesajın görüntülenmesini sağlayan
komut MessageBox.Show(e.StackTrace) dır.
9
1.3. Sık Görülen Hata Sınıfları
1.3.1. ArgumentException
Argument Exception (Bağımsız değişken hatası) bir metot çalıştırılırken en az bir
bağımsız değişken söz konusu metodun parametre şartlarını karşılamadığında bu istisna
oluşur.
ArgumentExcepion istisnasının başlıca iki alt sınıfı bulunur. Bunlar
ArgumentNullException ve ArgumentoutOfRangeexception’larıdır. İki türemiş sınıfın kabul
edilmediği durumlar dışında ArgumentException yerine bu sınıflar kullanılabilir. Bu istisnai
durumlar aşağıda belirtilen durumlarda oluşur.
􀂾 ArgumentNullException; boşluğun geçerli bir bağımsız değişken olarak kabul
edilmediği bir metoda geçildiğinde oluşur.
􀂾 ArgumentOutOfRange; bağımsız değişkenin değerinin kabul edilebilir sınırlar
dışında olduğunda oluşur.
Örnek:
Public Class degisken
Dim a As String
Dim b As Bayt
Dim hata As Exception
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
a = TextBox1.Text
b = TextBox2.Text
Label1.Name = a.CompareTo(b)
Catch hata As ArgumentException
MsgBox("Lütfen Bilgileri kontrol ediniz")
End Try
End Sub
End Class
Örnekte bir string bilgisi ile bayt bilgisi karşılaştırılmak isteniyor. Böyle bir durumda
Argument Exception durumu oluşur. Burada CompareTo metodunun parametre şartlarından
bir karşılanmıyor. Bunun sebebi karşılaştırılacak iki bilgininde string olmamasıdır.
10
1.3.2. DivideByZeroException
DivideByZeroException (Sıfıra bölme hatası) matematikte de karşımıza çıkan bir
hatadır. Bu hata (istisna) bir sayının 0 (sıfır) a bölünmesi sonucu ortaya çıkar. Özellikle
bölme işlemi olan programlarda, programın kırılmasını önlemek için bu hatanın yakalanıp
yönetilmesi (Bölünen sıfır yapılırsa bu hata ortadan kaldırılır) gerekir.
Örnek:
Public Class bolme
Dim a, b As Integer
Dim c As Double
Dim h, k As Exception
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
a = TextBox1.Text
b = TextBox2.Text
c = a / b
Catch h As DivideByZeroException
MsgBox("Sıfıra bölme hatası")
b = 0
Catch k As Exception
MessageBox.Show(k.Message)
End Try
End Sub
End Class
a değeri 10, b değeri ise sıfır girildiğinde sıfıra bölme hatası ortaya çıkar. Bu hatayı
yakalamak için Catch h As DivideByZeroException komut satırı kullanılır. Hata oluştuğunda
yakalanıp bölüneni (b değerini) sıfır yaparak bu hatayı ortadan kaldırmış oluruz.
Catch k As Exception
MessageBox.Show(k.Message)
Komut satırları ise oluşacak diğer hataları yakalayıp ekrana aktarır.
11
1.3.3. OwerflowException
OwerflowException (taşma hatası) herhangi bir değişkene alabileceği değerden daha
büyük bir değerin atanması sonucu oluşur. Her değişken tanımlandığı değişken türüne göre
belli aralıklarda değer alabilir. Bu hatanın oluşabileceği programlarda hatanın yakalanıp
programın kırılması önlenmelidir.
Örnek:
Public Class tasma
Dim x, y, z As Short
Dim hata As Exception
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
x = TextBox1.Text
y = TextBox2.Text
z = x * y
Catch hata As OverflowException
MessageBox.Show(hata.Message)
MsgBox("Değişken değerini değiştirin")
End Try
End Sub
End Class
Örnekte x, y, z değişkenleri short olarak tanımlanmıştır. Short olarak tanımlanan
değişkenler -32768 ile 32767 arasında değerler alabilir. Programı çalıştırıp x değişkenine
1000, y değişkenine 100 değeri atarsak 1000×100=100000>32767 olduğundan
OverFlowException hatası meydana gelir. Çünkü z’nin alabileceği en büyük değer 32767
dir. Bu durumda karşımıza sırasıyla aşağıdaki mesajlar gelir.
Resim 1.8: Taşma hatası uyarı mesajı Resim 1.9: Kullanıcı uyarı mesajı
Araştırma: Yukarıdaki örnekte y değişkenine -100 yazılırsa taşma hatası
oluşur mu?
Aritmetik işlem sonucunda taşma hatası
oluştuğunu belirtir.
Hatanın oluşmaması için kullanıcı
tarafından belirlenen uyarı mesajıdır.
12
1.3.4. FieldAccessException
FieldAccesException (Alan girişi hatası) tipik olarak bir alanın bir sınıf
kütüphanesindeki erişim seviyesi değişir ve kütüphaneyi temsil eden bir veya birden fazla
derleyici ile yeniden derlenmezse oluşan bir istisnai durumdur. Kısaca bir sınıf
kütüphanesine erişilemezse oluşan istisnai durumdur.
1.4. Throw New Komutu
İstisna fırlatmak için kullanılan komuttur. İstisna fırlatmak belli alanlarda kendi
istisnalarımızı oluşturmaktır. Oluşturulan istisnalar “Try Catch” bloğu yardımı ile yakalanır.
Bu işlem için “Throw New” anahtar kelimesi kullanılır.
Throw New Application.Exception ("Hata oluştu.") satırı yazılarak
Application.Exception istisnai durumu oluşturulabilir.
Örnek:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Try
If TextBox1.Text = "100.yıl" Then İstisna(hata)
Throw New Application.Exception("Yanlış bilgi girişi…") fırlatma
End If
Catch ex As Exception
MessageBox.Show(ex.Message) İstisna yakalama
End Try Yönetme
End Sub
End Class
Burada dikkat edilirse; hata oluşturacak bir program parçası bulunmamaktadır. Hatayı
biz şarta bağlı olarak “Throw New” komutu yardımıyla oluşturup daha sonra yakalıyoruz.
Normal şartlarda sadece exception kütüphanesinde bulunan hatalar yakalanabilir. Burada
Exception kütüphanesinin dışında istisnai durumlar oluşturulup yönetilebilir.
Araştırma: İstisna fırlatılmasının sebebini araştırınız.
13
UYGULAMA FAALİYETİ
İşlem Basamakları Öneriler
1. Bölme işlemi yapan bir program yazınız. Programda
hata oluşturabilecek satırları Try bloğu içersine
alınız. Hata oluştuğunda çalışacak komutları Cath
bloğu içine alınız.
Program için bir form
oluşturulursa çalışması daha iyi
anlaşılacaktır. İşlem
yapıldığında hata oluşursa
kullanıcı hatayı rahatlıkla
düzeltip programa devam
edebilir.
2. Hatadan bağımsız çalıştırılacak komutlar için Finally
bloğu oluşturunuz.
3. Hata oluşunca messagebox komutu ile ekrana mesaj
yazdırınız.
Ekrana “Bölünen değeri yanlış
girilmiş” uyarı mesajı
yazdırınız.
4. Throw New komutu kullanılarak hata oluşturunuz. Kendi oluşturduğunuz hatayı
Catch bloğu ile yakalayıp işlem
yapınız.
UYGULAMA FAALİYETİ
14
ÖLÇME VE DEĞERLENDİRME
A- OBJEKTİF TESTLER (ÖLÇME SORULARI)
Aşağıdaki sorulardan; sonunda parantez olanlar doğru / yanlış sorularıdır. Verilen
ifadeye göre parantez içine doğru ise “D”, yanlış ise “Y” yazınız.
1. İstisnanın diğer ismi hatadır. ( )
2. Hata oluşabilecek komutlar Try bloğu içine alınır. ( )
3. Catch bloğunun kullanımı isteğe bağlıdır. ( )
4. Finally komutu olmadan da hatalar yakalanabilir. ( )
5. Source metodu hata kaynağını belirler.( )
6. Messagebox komutu ekrana mesaj yazdırır. ( )
7. Throw New istisna fırlatma komutudur. ( )
8. Throw new ile fırlatılan istisnalar Catch bloğu ile yakalanamaz. ( )
Sorulara verdiğiniz cevaplar ile cevap anahtarını karşılaştırınız, cevaplarınız doğru ise
bir sonraki öğrenme faaliyetine geçiniz. Yanlış cevap verdiyseniz öğrenme faaliyetinin ilgili
bölümüne dönerek konuyu tekrar ediniz.
ÖLÇME VE DEĞERLENDİRME
15
ÖĞRENME FAALİYETİ–2
Hatasız bir şekilde yapı ve sınıflar kütüphaneleri ile çalışabileceksiniz.
Bu faaliyet öncesinde yapmanız gereken araştırmalar şunlardır.
1. Yapı ve sınıf kütüphanelerinde hangi veri türlerinin saklandığını araştırınız.
2. Veri dönüşümü nasıl yapılır? Araştırınız.
3. Veri dönüşüm komutlarını araştırınız.
Araştırma işlemleri için internet ortamı ve görsel programlama dilini anlatan kaynak
kitaplardan faydalanınız.
2. YAPI VE SINIFLAR
Kullanacağımız yapı (structure) ve sınıflar (class) genel olarak tüm .Net
programlarında bulunmaktadır. Visual Basic 6.0 veya daha önceki versiyonları kullananlar
bu yapılardaki farkları daha iyi anlayacaklardır. Yapılar System Namespace (Adalanı) içinde
yer alır. Sırasıyla bu veri yapılarını inceleyelim.
2.1. Yapılar
Tüm programlama dillerinde bilgilerin saklandığı yapılar mevcuttur. Her yapının
saklayacağı bilgi ve buna bağlı olarak hafızada kapladığı alan farklıdır.
2.1.1. Bayt Yapısı
8 bitlik işaretsiz tam sayıları temsil eder.
2.1.2. Int16 Yapısı
16 bitlik işaretli tam sayıları temsil eder.
2.1.3. Int32 Yapısı
32 bitlik işaretli tam sayıları temsil eder.
2.1.4. Int64 Yapısı
64 bitlik işaretli tam sayıları temsil eder.
ÖĞRENME FAALİYETİ–2
AMAÇ
ARAŞTIRMA
16
2.1.5. Single Yapısı
32 bitlik işaretli ondalıklı sayıları temsil eder.
2.1.6. Double Yapısı
64 bitlik işaretli ondalıklı sayıları temsil eder.
2.1.7. Boolean Yapısı
16 bitlik veri olmasına rağmen sadece true ve false değerlerini temsil eder.
2.1.8. Char Yapısı
16 bitlik karakter temsil eder.
2.1.9. Decimal Yapısı
96 bitlik sayı temsil eder.
2.1.10. Date Time Yapısı
64 bitlik tarih ve saat bilgisini temsil eder.
Veri yapılarına ait genel metotlar aşağıdaki tabloda listelenmiştir.
İsim Tanım
CompareTo Bir yapıyı kendisi veya belli bir nesne ile karşılaştırır. Sonuç eşit ise
“0”, büyükse “+1”, küçükse”-1” değerlerini geri döndürür.
Equals Bir yapının bir nesneye veya kendisiyle aynı yapıdaki veriye eşit olup
olmadığını kontrol eder. Sonuçta true veya false değeri geri
döndürür.
GetHashCode Yapılardaki hata kodunu geri bildirir.
GetType Mevcut tapının türünü alır.
GetTypeCode Yapılar için Typecode (tür kodunu) u geri bildirir.
Parse Bir dizinin istediğimiz herhangi bir elemanının değerini istenilen türe
dönüştürüp geri döndürür.
ReferenceEquals Belirli nesne örneklerinin aynı olup olamadığına karar verir
ToString Yapının rakamsal değerini eş değer string gösterime dönüştürür.
TryParse Bir dizinin istediğimiz herhangi bir elemanının değerini istenilen türe
dönüştürüp dönüşümün başarılı veya başarısız olduğunu boolean
türünde geri döndürür.
17
Veri türleri ve tür numaraları tabloda verilmiştir.
TypeName GetType(tür)
Boolean 3
Bayt 6
Date 16
Decimal 15
Double 14
Integer 9
Long 11
Short 7
Single 13
String 18
Veri yapılarına ait metotların program içerisindeki kullanımını bir örnekle
inceleyelim.
Örnek:
Resim 2.1: Veri yapı metotları örnek form
Public Class Form1
Dim a As Integer
Dim b As Short
Dim di(5) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)Handles Button1.Click
a = TextBox1.Text
18
b = TextBox2.Text
di(0) = 1000
di(1) = 2
di(2) = 3
di(3) = 4
di(4) = 5
MessageBox.Show(a.GetTypeCode.ToString)
MessageBox.Show(b.GetHashCode)
MessageBox.Show(a.ToString)
MessageBox.Show(a.CompareTo(25))
MessageBox.Show(a.Equals(b))
MessageBox.Show((Bayt.TryParse(di(0), 13)))
MessageBox.Show((Integer.Parse(di(4))))
End Sub
End Class
Yukarıdaki örnekte TextBox1’deki bilgi ile Textbox2’deki bilgiler a ve b değişkenine
aktarılmıştır. Program çalıştığında sırasıyla aşağıdaki mesajlar ekranda görünecektir.
MessageBox.Show(a.GetTypeCode.ToString)
Tip kodunu stringe çevirir.
MessageBox.Show(b.GetHashCode)
Olaya uygun bir hata kodu üretir
MessageBox.Show(a.ToString)
Veriyi stringe çevirir.
MessageBox.Show(a.CompareTo(25)
TextBox1 deki bilgi ile 25 bilgisini karşılaştırır. Eşit
ise 0, küçükse -1 değeri döndürür.
19
MessageBox.Show(a.Equals(b)))
TextBox1 deki bilgi ile TextBox2 deki bilgiyi
karşılaştırır. Eşit ise true, eşit değil ise false değeri
döndürür.
MessageBox.Show((Bayt.TryParse(di(0), 13)))
Dizinin 0. elemanını Bayt türüne dönüştürür.
Dönüşüm sağlanmışsa True sağlanmamışsa False
değeri döndürür. Burada 1000 bayt türüne
dönüşmediğinden false değeri döndürmüştür.
MessageBox.Show((Integer.Parse(di(4))))
Dizinin 4. elemanını Integer türüne dönüştürüp ekrana
aktarır
Resim 2.2: Veri yapıları örnek mesajlar
2.2. Sınıflar
Visual Basic.net ortamındaki tüm komutlar belirli sınıflarda tanımlanmış ve o sınıfın
bir üyesi olmuştur. Object ve string sınıfları system adalanının birer üyesidir.
2.2.1 Object Sınıfı
.Net sınıf hiyerarşisinin altındaki tüm sınıfları destekler ve türemiş sınıflara düşük
seviyeli hizmetler sağlar. Object sınıfı .Net çatısı altındaki tüm sınıfların nihai temel
sınıfıdır; tür hiyerarşisinin temelidir (köküdür). Object sınıfı ile tanımlanmış bir değişkene
her türde bilgi kaydedilebilir. Object sınıfının metotları tüm sınıflar tarafından kullanılabilir.
Dim Değişken İsmi As Object
Bir object nesnesi ile tanımlanan değişkene her türlü bilgi kaydedilebilir.
Aşağıdaki tabloda object sınıfının üyeleri listelenmiştir.
Genel metotlar
İsim Tanım
Equals İki nesne örneğinin eşit olup olmadığını belirtir.
GetHashCode Özel bir türün bozuk kodunu bulur.
GetType Mevcut örneğin türünü elde eder.
ReferenceEquals Belirli nesne örneklerinin referans türe eşit olup olmadığına karar
verir.
ToString Mevcut nesneyi temsil eden bir dizeyi geri döndürür.
20
Yardımcı metotlar
İsim Tanım
Finalize Bir nesnenin serbest kaynakları denemesine ve çöp
koleksiyonuna geri dönmeden önce diğer temizleme işlemlerinin
gerçekleşmesine izin verir.
MemberwiseClone Mevcut nesnenin basit bir kopyasını oluşturur.
Örnek: Object metotlarının kullanımı
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim obj1, obj2 As Object
obj1 = 5
obj2 = "ali"
MsgBox(obj1.Equals(obj2))
MsgBox(obj1.ToString)
MsgBox(Object.ReferenceEquals(obj1, 5))
End Sub
Programı çalıştırıldığında sırasıyla false bilgisi (iki nesne eşit değil), 5 (1. nesnenin
string türde değeri) ve false (1. nesne türü referans türle aynı değil) ifadeleri ekranda görülür.
2.2.2. String
String sınıfı karakterleri temsil eden bir kütüphanedir. Bu sınıftaki üyeler yardımıyla
stringlerle ilgili tüm işlemler (birleştirme, karşılaştırma, büyük küçük harf dönüşümü,
karakter ekleme karakter silme vb.) yapılabilir.
Aşağıdaki tablolarda string sınıfına ait üyeler ve görevleri listelenmiştir.
String sınıfının genel özellikleri
Name Description
Chars Belirlenmiş bir karakterin yerine karakter ekler.
Length Stringdeki karakter sayısını verir.
21
String sınıfının sık kullanılan metotları
Name Description
Compare Belirlenmiş iki string nesnesini karakter sayılarına göre karşılaştırır.
Sonuç eşit ise “0”, büyükse “+1”, küçükse”-1” değerlerini döndürür.
CompareTo Belirlenen iki stringi alfabetik sıraya göre karşılaştır. Sonuç eşit ise “0”,
eşit değil ise “-1” değeri geri döndürür.
Concat Stringi bir veya birden fazla string ile birleştirir.
Contains String içerisinde belirlenmiş başka string nesnelerinin bulunup
bulunmadığını kontrol eder.
Copy Belirlenmiş bir string karakterlerini kullanarak yeni bir örnek string
oluşturur.
EndsWith Stringin sonunda belirli bir string örneğinin olup olmadığına karar verir.
Equals İki string nesnesinin aynı değerlere sahip olup olmadığı kontrol eder. True
veya false değerleri geri döndürür.
Format Stringi bilgiyi belli bir biçime dönüştürür.
GetEnumerator String içerisinde tekrar eden bir nesne bulur.
GetHashCode Stringdeki bozuk kodu bulur.
GetType Örneğin tipini verir.
GetTypeCode Stringin Type code (Tür kodunu) çağırır.
IndexOf Stringin içindeki dizenin başlangıç noktasını bulur.
IndexOfAny Stringdeki herhangi bir karakterin başlangıç noktasını bulur.
Insert String içerisine karakter ekler.
IsNullOrEmpty Stringin boş olup olmadığını gösterir.
LastIndexOf Bir karakter veya karakter grubunun stringin içinde bulunduğu pozisyonu
sayısal olarak ifade eder. (Eğer karakter veya karakter grubu string
içerisinde birden fazla ise en sondaki karakter veya karakter grubunun
sayısal olarak bulunduğu yeri belirtir.)
PadLeft Stringin solundan başlayarak stringin boyutu verilen değere eşit olana
kadar istenilen karakter eklenir.
PadRight Stringin sağından başlayarak stringin boyutu verilen değere eşit olana
kadar istenilen karakter eklenir.
ReferenceEquals Belirlenmiş nesne örneklerinin referans türle aynı olup olmadığına karar
verir.
Remove String içerisinde belirli sayıda karakter siler.
Replace Stringin istediğimiz karakterlerini değiştirmek için kullanılır.
StartsWith Belirlenen bir dizenin stringin başlangıcı olup olmadığını bulur. Boolean
tipte bir değer döndürür.
Substring Stringde belirtilen bir karakterden başlayarak sabit sayıda karakter
döndürür.
ToCharArray Stringi dizi karakterlerine çevirir.
ToLower Stringdeki harfleri küçük harfe dönüştürür.
ToString Bilgileri string türüne dönüştürür.
ToUpper Stringdeki harfleri büyük harfe dönüştürür.
Trim Stringin başında ve sonundaki boşlukları veya belirtilen karakterleri
kaldırır.
TrimEnd Stringin sonundaki boşlukları veya belirtilen karakterleri kaldırır.
TrimStart Stringin başındaki boşlukları veya belirtilen karakterleri kaldırır.
22
Örnek:
Public Class Form1
Dim a, b As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)Handles Button1.Click
a = TextBox1.Text
b = TextBox2.Text
Label18.Text = a.Length
Label19.Text = b.Chars(1)
Label20.Text = a.CompareTo(b)
Label21.Text = String.Concat(a, b)
Label22.Text = a.Contains("eslek")
Label23.Text = String.Copy(a)
Label24.Text = a.IndexOf("düstri")
Label25.Text = b.Insert(3, "v")
Label26.Text = String.IsNullOrEmpty(b)
Label27.Text = a.LastIndexOf("d")
Label28.Text = a.PadLeft(30, "?")
Label29.Text = b.PadRight(15, "*")
Label30.Text = a.Remove(3, 5)
Label31.Text = b.ToUpper
Label32.Text = a.ToLower
Label33.Text = a.Trim("En")
Label36.Text = a.Replace("Meslek", "Teknik")
End Sub
End Class
23
Resim 2.3: String sınıfının metotları örnek form penceresi
24
Numaralandırılmış satırları sırasıyla inceleyelim, böylece string sınıfı metotlarının
kullanımını daha iyi anlamış olacağız.
1. a.Length = 1. stringin karakter uzunluğunu verir. Uzunluk bulunurken boşluklar
dâhil edilir.
2. b.Chars(1) = 2 . stringin 1. elemanını ekrana yazdırır. Dikkat edilecek husus
stringin ilk karakteri 0. elemanıdır.
3. a.CompareTo(b) = 1 . string ile 2. stringi karşılaştırır. İki string eşit -1 değeri
döndürür.
4. String.Concat(a, b) = 1 . stringin sonuna 2. stringi ekler. 1. stringin sonunda
veya 2. stringin başında boşluk olmadığından stringler birleştirildiğinde arada
boşluk olmaz.
5. a.Contains("eslek") = 1 . string içerisinde “eslek” kelimesi olduğundan true
değeri döndürür.
6. String.Copy(a) = 1. stringin kopyasını oluşturur.
7. a.IndexOf("düstri") = “dustri” stringinin 1. stringin kaçıncı karakterinden
itibaren başladığını gösterir. stringin ilk elemanı 0. karakterdir.
8. b.Insert(3, "v") = 2. stringin 3. karakterine v harfini ekler.
9. String.IsNullOrEmpty(b) = 2. Stringin boş olup olmadığını kontrol eder. Boş
olmadığı için False değeri döndürür.
10. a.LastIndexOf("d") = d harfinin 1. stringin kaçıncı karakteri olduğunu bulur.
11. a.PadLeft(30, "?") = 1 . stringin sol tarafına toplam uzunluk 30 karakter olana
kadar “?” işareti ekler.
12. b.PadRight(15, "*") = 2 . stringin sağ tarafına toplam uzunluğu 15 karakter
olana kadar “*” işareti ekler.
13. a.Remove(3, 5) = 1 . stringin 3. karakterinden başlayarak 5 karakter siler.
14. b.ToUpper = 2 . stringin bütün karakterlerini büyük harfe çevirir.
15. a.ToLower = 1 . stringin bütün karakterlerini küçük harfe çevirir.
16. a.Trim("En") = 1 . stringin başında veya sonunda En kelimesi varsa bulup siler.
17. a.Replace("Meslek", "Teknik") = 1 . string içerisinde “Meslek” kelimesini
arayıp bulduğunda “Teknik” kelimesi ile yer değiştirir.
25
2.3. Veri Türleri
Tüm programlama dillerinde standart veri türleri mevcuttur. Bunlar tam sayı veri
türleri, ondalıklı veri türleri ve stringler olarak ayrılır. String veri türü .Net programlama
dilinde ayrı bir sınıf olarak oluşturulmuştur. Bu yüzden bir önceki konularda ayrıntılı olarak
incelenmiştir.
2.3.1. Bayt (Bayt) Veri Türü
1 baytlık ( hafızada kapladığı alan) işaretsiz tam sayı tipidir. 0-255 arasında bir değer
alabilir. System adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı
System.Bayt’tır.
Kullanımı:
Dim değişken_ismi As Bayt
2.3.2. Short (Int16) Veri Türü
2 baytlık işaretli tam sayı tipidir. -32768 ile 32767 arasında bir değer alabilir. System
adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı System.Int16’dır.
Kullanımı:
Dim değişken_ ismi As short
2.3.3. Integer (Int32) Veri Türü
4 baytlık işaretli tam sayı tipidir. -2,147,483,648 ile 2,147,483,6487 arasında bir değer
alabilir. Sistem adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı
System.Int32’dir. Değişken sonuna % işareti konularak da Integer veri türü tanımlanabilir.
Kullanımı:
Dim değişken_ ismi As Integer
Dim değişken_ ismi %
2.3.4. Long (Int64) Veri Türü
8 baytlık işaretli tam sayı tipidir. -9,223,372,036,854,775,808 ile
9,223,372,036,854,775,807 arasında bir değer alabilir. Sistem adalanının içerisinde bulunur.
Veri türünün .NET altındaki karşılığı System.Int64’tür. Değişken sonuna & işareti konularak
da Long veri türü tanımlanabilir.
Kullanımı:
Dim değişken_ ismi As Long
Dim değişken_ ismi &
26
2.3.5. Single Veri Türü
4 baytlık işaretli ondalıklı sayı tipidir. ±3.402823×1038 ile ±1.401298×10-45 arasında
bir değer alabilir. Sistem adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı
System.Single’dır. Değişken sonuna “!” işareti konularak da Single veri türü tanımlanabilir.
Kullanımı:
Dim değişken_ ismi As single
Dim değişken_ ismi !
2.3.6. Double Veri Türü
8 baytlık işaretli ondalıklı sayı tipidir. ±1.79769313486232×10308 ile
±4.94065645841247×10-324 arasında bir değer alabilir. Sistem adalanının içerisinde bulunur.
Veri türünün .NET altındaki karşılığı System.Double’dır. Değişken sonuna # işareti
konularak da Double veri türü tanımlanabilir.
Kullanımı:
Dim değişken_ ismi As double
Dim değişken_ ismi # =1.25478744
2.3.7. Boolean Veri Türü
2 baytlık bir veri türüdür. Sadece true (doğru) ve false (yanlış) değerlerini alabilir. Bu
tür değişkenlere true ve false değerlerinin yanında 0 veya 1 de atanabilir. 0 false 1 true olarak
kabul edilir. Sistem adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı
System.Boolean’dir.
Kullanımı:
Dim değişken_ ismi As boolean
2.3.8. Char Veri Türü
2 baytlık bir veri türüdür. Tek bir karakter bilgisi saklayabilir. 0 ile 65535 arasındaki
herhangi bir Unicode (evrensel kod) içerir. Sistem adalanının içerisinde bulunur. Veri
türünün .NET altındaki karşılığı System.Char’dir.
Kullanımı:
Dim değişken_ ismi As char
27
2.3.9. Decimal veri türü
12 baytlık veri türüdür. ±79,228,162,514,264,337,593,543,950,335 arasındaki tam
sayıları ve ±7.9228162514264337593543950335 arasındaki ondalıklı sayılardan herhangi bir
değer alabilir. 28 başamaklı bir sayıyı saklayabilir. Bu veri türünün alabileceği en düşük
değer ±0.00000000000000000000000001’dir. Sistem adalanının içerisinde bulunur. Veri
türünün .NET altındaki karşılığı System. Decimal’dir. Değişken sonuna @ işareti konularak
Decimal veri türü tanımlanabilir.
Kullanımı:
Dim değişken_ ismi As Decimal
Const değişken_ ismi @ =3.75
2.3.10. Date Veri Türü
8 baytlık veri türüdür. Tarih v saat bilgilerini saklayabilir. Bu veri türüne 1/1/100 ile
31/12/9999 arasındaki tarih ve 0:00:00 ile 23:59:59 arasındaki saat bilgilerinden bir değer
alabilir. Tarih ve saat bilgileri “… ” veya # … # ifadeleri arasında değişkenlere atanmalıdır.
Sistem adalanının içerisinde bulunur. Veri türünün .NET altındaki karşılığı
System.DateTime dir.
Kullanımı:
Dim değişken_ ismi As Date
Dim değişken_ ismi As Time
Dim değişken_ ismi As Date = # 15/07/2007#
Dim değişken_ ismi As Time = “23:27:00”
Açıklama: Int16,Int32,Int64 veri türleri önüne U harfi getirilerek kapsamı
değiştirilmeden işaretsiz veri türüne dönüştürülebilir (UInt16,UInt32,UInt64). Ayrıca Bayt
veri türünün önüne S harfi getirilerek işaretli hale dönüştürülebilir (SBayt).
Veri türü Sınırları
UInt16 0 ile 65535
UInt32 0 ile 4,294,967,295
UInt64 0 ile 18,446,744,073,709,551,615
SBayt -128 ile +127
28
Aşağıdaki tabloda tüm veri türleri hakkında özet bilgi verilmiştir.
Veri türü Kapladığı alan
(Bayt)
Açıklama .NET karşılığı
Bayt 1 8-bit işaretsiz tam sayı System.Bayt
Char 2 16-bit Unicode (Evrensel)
karakterler
System.Char
Integer 4 32-bit işaretli tam sayı System.Int32
Double 8 64-bit ondalıklı sayı System.Double
Long 8 64-bit işaretli tam sayı System.Int64
Short 2 16-bit işaretli tam sayı System.Int16
Single 4 32-bit ondalıklı sayı System.Single
Date 8 Tarih ve saat bilgisi System.DateTime
Boolean 2 Numerik olmayan tip System.Boolean
Decimal 16 128-bit ondalıklı sayı System.Decimal
Örnek: Combobox ile seçilen herhangi bir veri türünün kapladığı alan, .Net karşılığı
ve alabileceği değerlerin sınırlarını kullanıcıya aktaran bir form oluşturup buna uygun bir
program yazalım.
Resim 2.4: Veri türleri örnek program formu
Public Class Form1
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex = 0 Then
Label5.Text = "0"
Label6.Text = "255"
29
Label7.Text = "System.Bayt"
Label8.Text = "1"
End If
If ComboBox1.SelectedIndex = 1 Then
Label5.Text = "ASCII kodu 0 olan karakter"
Label6.Text = "ASCII kodu 255 olan karakter"
Label7.Text = "System.char"
Label8.Text = "2"
End If
If ComboBox1.SelectedIndex = 2 Then
Label5.Text = "-2,147,483,648 "
Label6.Text = "+2,147,483,647 "
Label7.Text = "System.Int32"
Label8.Text = "4"
End If
If ComboBox1.SelectedIndex = 3 Then
Label5.Text = "±1.79769313486232×10308"
Label6.Text = "±4.94065645841247×10-324"
Label7.Text = "System.Double"
Label8.Text = "8"
End If
If ComboBox1.SelectedIndex = 4 Then
Label5.Text = "-9,223,372,036,854,775,808"
Label6.Text = "+9,223,372,036,854,775,807"
Label7.Text = "System.Int64"
Label8.Text = "8"
End If
If ComboBox1.SelectedIndex = 5 Then
Label5.Text = "-32768"
Label6.Text = "+32767"
Label7.Text = "System.Int16"
Label8.Text = "2"
End If
If ComboBox1.SelectedIndex = 6 Then
Label5.Text = "±3.402823×1038"
Label6.Text = "±1.401298×10-45"
Label7.Text = "System.Single"
Label8.Text = "4"
End If
30
If ComboBox1.SelectedIndex = 7 Then
Label5.Text = "1/1/100 - 0:00:00"
Label6.Text = "31/12/9999 - 23:59:59"
Label7.Text = "System.DateTime"
Label8.Text = "8"
End If
If ComboBox1.SelectedIndex = 8 Then
Label5.Text = "±0.00000000000000000000000001"
Label6.Text = "±7.9228162514264337593543950335"
Label7.Text = "System.Decimal"
Label8.Text = "16"
End If
If ComboBox1.SelectedIndex = 9 Then
Label5.Text = "0(False)"
Label6.Text = "1(True)"
Label7.Text = "System.Boolean"
Label8.Text = "2"
End If
End Sub
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Activated
ComboBox1.Items.Add("Bayt")
ComboBox1.Items.Add("Char")
ComboBox1.Items.Add("Integer")
ComboBox1.Items.Add("Double")
ComboBox1.Items.Add("Long")
ComboBox1.Items.Add("Short")
ComboBox1.Items.Add("Single")
ComboBox1.Items.Add("Date")
ComboBox1.Items.Add("Decimal")
ComboBox1.Items.Add("Boolean")
End Sub
End Class
Araştırınız: Tek bir veri türü ile tüm veri türlerinin görevlerini yerine
getirmenin dezavantajları nelerdir?
31
2.4. Otomatik Veri Dönüşümleri (Widening Conversions)
Belirli kurallar ( Tüm veri türleri birbirine güvenli olarak dönüştürülemez) dâhilinde
veri türleri birbirine dönüştürülebilir. Tür dönüşümü ile değişkenlerin içeriği genişletiliyorsa,
sınırları ve kapladığı alan artıyorsa bu tip dönüşümlere widenning conversions (genişletme
dönüşümleri) denir. Bir veri türünün diğer bir veri türüne kolaylıkla dönüştürülmesi için
Option Strict değeri on olmalıdır. Hangi veri türleri arasında güvenli dönüşüm yapabileceği
aşağıdaki tabloda gösterilmiştir.
Veri Türü Veri kaybı olmadan güvenli dönüşüm yapılacak tür
Bayt UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal
SBayt Int16, Int32, Int64, Single, Double, Decimal
Int16 Int32, Int64, Single, Double, Decimal
UInt16 UInt32, Int32, UInt64, Int64, Single, Double, Decimal
Char UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal
Int32 Int64, Double, Decimal
UInt32 Int64, Double, Decimal
Int64 Decimal
UInt64 Decimal
Single Double
Bazı türlerin single veya double türüne dönüşümlerinde kesinlikle veri kaybı oluşur.
Bu türlere ait tablo aşağıda verilmiştir.
Veri türü Dönüştürülebilecek tür
Int32 Single
UInt32 Single
Int64 Single, Double
UInt64 Single, Double
Decimal Single, Double
32
2.5. Ters Yöndeki Dönüşümler (Narrowing Conversions)
Ters yönde dönüşüm veri sınırları büyük olan bir türden daha küçük veri sınırlarına
sahip bir türe dönüşümdür. Başka bir deyişle genişletme dönüşümlerinin tersidir. Bu işlem
sonucunda daralma (veri kaybı) meydana gelir. Hangi veri türlerinin ters yönde veri
dönüşümü yapabileceği aşağıdaki tabloda verilmiştir. Option scrict değeri off durumunda
ise ters dönüşüme izin verilmez. Ters yönde veri dönüşümü yapıldığında genellikle veri
daralması meydana gelir. Tür dönüşümünde System.convert sınıfı kullanılırsa dönüşüm
yapılacak veri türünün maksimum ve minimum sınırları hedef veri türünün sınırlarından
büyükse ve bu durum kontrol edilmek isteniyorsa OwerFlowException istisnası fırlatılarak
kullanıcı bu durumdan haberdar edilir.
Tür Dönüşüm yapılabilecek tür
Bayt SBayt
SBayt Bayt, UInt16, UInt32, UInt64
Int16 Bayt, SBayt, UInt16
UInt16 Bayt, SBayt, Int16
Int32 Bayt, SBayt, Int16, UInt16, UInt32
UInt32 Bayt, SBayt, Int16, UInt16, Int32
Int64 Bayt, SBayt, Int16, UInt16, Int32, UInt32, UInt64
UInt64 Bayt, SBayt, Int16, UInt16, Int32, UInt32, Int64
Decimal Bayt, SBayt, Int16, UInt16, Int32, UInt32, Int64, UInt64
Single Bayt, SBayt, Int16, UInt16, Int32, UInt32, Int64, UInt64
Double Bayt, SBayt, Int16, UInt16, Int32, UInt32, Int64, UInt64
2.6. InvalidcastException Hatası
InvalidcastException (tip uyuşmazlığı) hatası genellikle rakamsal bilgilerle string
bilgilerin karıştırılması sonucu ortaya çıkar. Örnek olarak string tipte tanımlanmış bir
değişkeni bayt veri türüne dönüştürmek istediğimizde bu hata meydana gelir.
Örnek1: Bu hata türünün nasıl oluştuğunu anlamak için bir örnek program yapalım.
Public Class Form1
Dim a As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button1.Click
a = TextBox1.Text
MessageBox.Show(CBayt(a))
End Sub
End
33
Programa dikkat edilirse a değişkeni string tipinde (metin) tanımlanmıştır. Bu nedenle
değişkene aktarılacak bilgi karakterlerden oluşmalıdır. Programı çalıştırıp Textbox1
kutusuna “123a” bilgisi yazılıp button1 tıklanırsa karşımıza aşağıdaki hata çıkacaktır. Bunun
sebebi CBayt komutu bayt veri türüne dönüşüm için kullanılır. Fakat a bilgisi string türde
olduğu için dönüşüm yapılamaz ve InvalidCastException hatası oluşur. Program bu hata
nedeniyle durdurulur. Bu hata, dönüşümü mümkün olmayan veri türleri arasında dönüşüm
yapılmak istendiğinde veya yanlış dönüşüm komutu kullanıldığında karşımıza çıkar.
Resim 2.5: InvalidCastException hatası
InvalidCastException istisnai durumu oluştuğunda bu durumun yakalanıp programın
çalışmasına zarar vermeden yönetilmesi için Try…Catch bloğu kullanılmalıdır. Aşağıdaki
örnekte try… catch bloğunun kullanımı görülmektedir.
Örnek2:
Public Class Form1
Dim a As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Handles Button1.Click
Try
a = TextBox1.Text
MessageBox.Show(CBayt(a))
Catch hata As InvalidCastException
MessageBox.Show(hata.Message)
MsgBox("Yanlış dönüşüm yaptınız")
End Try
End Sub
End Class
34
Örnek incelenirse hata oluşabilecek satırlar try…catch bloğu arasına alınmıştır.
Böylece bir hata oluşması durumunda hata yakalanıp kullanıcı uyarılacak ve hatayı
düzeltmesi sağlanacaktır.
2.7. Dönüşüm Komutları
Bu bölümde veri türü dönüşüm komutlarını inceleyeceğiz. Dönüşüm komutlarının bir
kısmı system.convert sınıfının üyeleridir. Bu komutlarının kullanımı diğer tip dönüşüm
komutlarından farklıdır. Fakat sonuçta işlevleri aynıdır.
2.7.1. ToString, CStr Komutları
Bir ifadeyi String türüne dönüştürür.
Kullanımı:
CStr(değişken_ ismi veya bilgi)
System.Convert.ToString(değişken_ ismi veya bilgi)
Örnek1:
Dim a As Bayt
Dim c As String
a = 150
c = System.Convert.ToString(a)
MsgBox©
Örnek2:
Dim c As String
c = CStr(150)
MsgBox©
Not: Programlar çalıştığında ekranda “150” (bir beş sıfır) stringi görülür.
2.7.2. ToDouble, CDbl Komutları
Sayısal içerikli bir değeri Double veri türüne dönüştürür.
Kullanımı:
CDbl(değişken_ ismi veya değeri)
System.Convert.ToDouble(değişken_ ismi veya değeri)
35
Örnek1:
Dim a As Integer
Dim c As Double
a = 15000
c = System.Convert.ToDouble(a)
MsgBox©
Örnek2:
Dim a As Integer
Dim c As Double
a = 15000
c = CDbl(a)
MsgBox©
Not: Programlar çalıştığında ekranda 15000 değeri görülür.
2.7.3. ToSingle, CSng komutları
Sayısal içerikli bir değeri single türüne dönüştürür.
Kullanımı:
CSng(değişken_ ismi veya değeri)
System.Convert.ToSingle(değişken_ ismi veya değeri)
Örnek1:
Dim a As Long
Dim c As Single
a = 1987564
c = System.Convert.ToSingle (a)
MsgBox©
Örnek2:
Dim c As Single
c = CSng(1987564)
MsgBox©
Not: Programlar çalıştığında ekranda 1987564 değeri görülür.
36
2.7.4. ToInt16, CShort Komutları
Sayısal içerikli bir değeri Short veri türüne dönüştürür. Sayının ondalıklı kısmını
(varsa) tam sayıya yuvarlar.
Kullanımı:
CShort(değişken_ ismi veya değeri)
System.Convert.ToInt16(değişken_ ismi veya değeri)
Örnek1:
Dim a As Double
Dim c As Short
a = 250.25
c = System.Convert.ToInt16 (a)
MsgBox©
Örnek2:
Dim a As Double
Dim c As Short
a = 250.25
c = CShort(a)
MsgBox©
Not: Programlar çalıştığında ekranda 250 değeri görülür. Çünkü 250.25 tam
sayıya dönüştürüldüğünde 250’ye yuvarlanır.
2.7.5. ToInt32, CInt Komutları
Sayısal içerikli bir değeri Integer veri türüne dönüştürür. Sayının ondalıklı kısmını
(varsa) tam sayıya yuvarlar.
Kullanımı:
CInt(değişken_ ismi veya değeri)
System.Convert.ToInt32(değişken_ ismi veya değeri)
Örnek1:
Dim c As Integer
c = System.Convert.ToInt32 (15.60)
MsgBox©
37
Örnek2:
Dim a As Single
Dim c As Integer
a = 15.60
c = CInt(a)
MsgBox©
Not: Programlar çalıştığında ekranda 16 değeri görülür. Çünkü 15.60 tam sayıya
dönüştürüldüğünde 16’ya yuvarlanır.
2.7.6. ToInt64, CLng Komutları
Sayısal içerikli bir değeri Long veri türüne dönüştürür. Sayının ondalıklı kısmını
(varsa) tam sayıya yuvarlar.
Kullanımı:
CLng(değişken_ ismi veya değeri)
System.Convert.ToInt64(değişken_ ismi veya değeri)
Örnek1:
Dim a As Bayt
Dim c As Long
a = 36
c = System.Convert.ToInt64 (a)
MsgBox©
Örnek2:
Dim a As Bayt
Dim c As Long
a = 36
c = CLng(a)
MsgBox©
Not: Programlar çalıştığında ekranda 36 değeri görülür.
2.7.7. ToBayt, CBayt Komutları
Sayısal içerikli bir değeri Bayt veri türüne dönüştürür. Sayının ondalıklı kısmını
(varsa) tam sayıya yuvarlar.
38
Kullanımı:
CBayt(değişken_ ismi veya değeri)
System.Convert.ToBayt(değişken_ ismi veya değeri)
Örnek1:
Dim c As Bayt
c = System.Convert.ToBayt (250)
MsgBox©
Örnek2:
Dim a As Integer
Dim c As Bayt
a = 250
c = CBayt(a)
MsgBox©
Not: Programlar çalıştığında ekranda 250 değeri görülür.
2.7.8. ToDateTime, CDate Komutları
Sayısal içerikli bir değeri Date veri türüne dönüştürür.
Kullanımı:
CDate(değişken_ ismi veya tarih saat bilgisi)
System.Convert.ToDateTime(değişken_ ismi veya tarih saat bilgisi)
Örnek1:
Dim c As Date
Dim d As Date
d= "1 Oca 1985 3:20:59 pm"
c = System.Convert.ToDateTime(d)
MsgBox©
Not: Program çalıştığında ekranda 01.01.1985 15:20:59 değeri görülür.
Örnek2:
Dim c As Date
c = System.Convert.ToDateTime("3:20:59 am")
MsgBox©
Not: Program çalıştığında ekranda 30.07.2006 03:20:59 değeri görülür. Burada
dikkat edilecek husus ToDateTime komutunda sadece saat bilgisi girilirse önüne
otomatik olarak bilgisayarın tarih bilgisi eklenir. Bu durum CDate komutunda geçerli
değildir.
39
Örnek3:
Dim c As Date
c = CDate("Aug 6, 1969")
MsgBox©
Not: Program çalıştığında ekranda 06.08.1969 değeri görülür.
Örnek4:
Dim c As Date
c = CDate("15 tem 1976 13:20:19")
MsgBox©
Not: Program çalıştığında ekranda 15.07.1976 13:20:19 değeri görülür.
Örnek5:
Dim c As Date
c = CDate("1 feb 79")
MsgBox©
Not: Program çalıştığında ekranda 01.02.1979 değeri görülür.
2.7.9. ToDecimal, CDec Komutları
Sayısal içerikli bir değeri Decimal veri türüne dönüştürür.
Kullanımı:
CDecimal(değişken_ ismi veya değeri)
System.Convert.ToDecimal(değişken_ ismi veya değeri)
Örnek1:
Dim a As Long
Dim c As Decimal
a = 9500000000
c = System.Convert.ToDecimal (a)
MsgBox©
Örnek2:
Dim c As Decimal
c = CDecimal(950000000)
MsgBox©
Not: Programlar çalıştığında ekranda 9500000000 değeri görülür.
40
2.7.10. ToChar, CChar Komutları
CChar komutu string ifadenin ilk karakterini alarak Char veri türüne dönüştürür.
ToChar komutu ise tek karakterlik string ifadeyi char veri türüne dönüştürür.
Kullanımı:
CChar(değişken_ ismi veya string ifade)
System.Convert.ToChar(değişken_ ismi veya karakter)
Örnek1:
Dim a As String
Dim c As Char
a = “b”
c = System.Convert.ToChar (a)
MsgBox©
Not: Program çalıştığında ekranda “b” karakteri görülür.
Örnek2:
Dim c As Char
c = CChar(“eml”)
MsgBox©
Not: Program çalıştığında ekranda “e” karakteri görülür.
2.7.11. ToBoolean, CBool Komutları
Sayısal veya string ifadeleri Boolean veri türüne dönüştürür. Burada önemli husus
sayısal bilgi sıfırdan farklı ise True, sıfıra eşit ise False değeri döndürür. Dönüştürülecek
string ifade yalnızca True veya False olabilir.
Kullanımı:
CCBool(değişken_ ismi veya bilgi)
System.Convert.ToBoolean(değişken_ ismi veya bilgi)
Örnek1:
Dim c As Boolean
c = System.Convert.ToBoolean (125)
MsgBox©
Not: Program çalıştığında ekranda True ifadesi görülür.
41
Örnek2:
Dim c As Boolean
c = System.Convert.ToBoolean (0)
MsgBox©
Not: Program çalıştığında ekranda False ifadesi görülür
Örnek3:
Dim c As Boolean
Dim a As String
a = "False"
c = System.Convert.ToBoolean(a)
MsgBox©
Not: Program çalıştığında ekranda False ifadesi görülür.
2.7.12. CType Komutu
Genel amaçlı tip dönüşümü için kullanılır. Bu komut yardımı ile bir veriyi istediğimiz
veri tipine dönüştürebiliriz.
Kullanımı:
CType (veri, dönüştürülecek tip ismi)
Örnek1:
Dim veri As Integer
veri = 100
MsgBox(CType(veri, String))
Not: Program çalıştığında ekranda “100” stringi görülür. Integer tip veriyi string
tip veriye dönüştürür.
Örnek2:
Dim veri As Bayt
veri = 5
MsgBox(CType(veri, Boolean))
Not: Program çalıştığında ekranda True değeri görülür. Bayt tipindeki veriyi
Boolean tipi veriye dönüştürür. Boolean tipine dönüşümde değer sıfırdan farklı ise
“True”, sıfıra eşit ise “False” değeri oluşur.
42
Örnek3:
Dim veri As Double
veri = 5.15
MsgBox(CType(veri, Integer))
Not: Program çalıştığında ekranda 5 değeri görülür. Integer tam sayı veri tipi
olduğundan 5.15 sayısı 5’e yuvarlanır.
2.7.13. Parse Komutu
String türdeki bir veriyi sayısal veri türüne çevirir.
Kullanımı:
Sayısal veri türü. Parse (değişken_ ismi veya string ifade)
Örnek1:
Dim a As String
Dim c As Integer
a = "125"
c = Integer.Parse(a)
MsgBox©
Not: Program çalıştığında ekranda 125 sayısı görülür.
Örnek2:
Dim c As Bayt
c = Bayt.Parse("2")
MsgBox©
Not: Program çalıştığında ekranda 2 sayısı görülür.
43
UYGULAMA FAALİYETİ
İşlem Basamakları Öneriler
1. Bir sınıfın veya yapının metot
ve özelliklerini kulanınız.
Mesela örnek bir program yapınız. Burada yapı ve
sınıflara ait özellikleri kullanarak sonuçları ekrana
yazdırınız.
2. Veri türlerinin alabileceği
değerleri ekrana yazdırınız.
Bunun için bir program oluşturunuz ve sınırlar dışında
değer girildiğinde ekrana uyarı mesajı yazdırınız.
3. Veri türlerini birbirine
dönüştürünüz.
Mesela double veri türünü integer türüne, bayt veri
türünü Long veri türüne ve single veri türünü short veri
türüne dönüştüren bir program yazabilirsiniz.
4. Bir veriyi string türe çeviriniz. ToString komutunu kullanınız.
5. Bir metni sayıya çeviriniz. Parse komunu kullanınız.
UYGULAMA FAALİYETİ
44
ÖLÇME VE DEĞERLENDİRME
A- OBJEKTİF TESTLER (ÖLÇME SORULARI)
Aşağıdaki sorulardan; ilk 7 soruda verilen ifadeye göre parantez içine doğru ise “D”,
yanlış ise “Y” yazınız. Diğer sorular için uygun şıkkı işaretleyiniz.
1. Bayt bir yapı türüdür. ( )
2. Decimal bir sınıf türüdür. ( )
3. String bir sınıf türüdür. ( )
4. Narrowing conversions genişleme dönüşümleri anlamına gelir. ( )
5. Narrowing conversions işlemi için Option scrict off olmalıdır. ( )
6. InvalidCastException tip dönüşüm hatasıdır. ( )
7. Bir sayıyı double türe CStr komutu ile çevirebiliriz. ( )
8. Genel amaçlı tip dönüşümü için kullanılan komut Ctype komudur. ( )
9. ToString ile Parse komutları aynı işi yapar. ( )
10. 101.65 ondalıklı sayısının integer türde karşılığı aşağıdakilerden hangisidir?
A) 101 B) 102
C) 101.65 D) 101,7
11. “MEB” stringi char tipine dönüştüğünde hangi ifade oluşur?
A) MEB B) B
C) M D)
12. Aşağıdaki komut ikililerinden hangileri aynı işi yapmaz?
A) ToString-CStr B) ToDouble-CDbl
C) ToInt64-CLng D) ToInt16-CInt
13. Aşağıdaki değişken veri ikililerinden hangisi yanlıştır?
A) Int16 – 39412 B) Single – 255.65
C) Bayt – 12 D) Long – 213545
14. Aşağıdaki değişken veri ikililerinden hangisi yanlıştır?
A) Int32 – 256235 B) Single – “Ali”
C) Char – “SS” D) DateTime – #21/06/2006#
Sorulara verdiğiniz cevaplar ile cevap anahtarını karşılaştırınız, cevaplarınız doğru ise
bir sonraki öğrenme faaliyetine geçiniz. Yanlış cevap verdiyseniz öğrenme faaliyetinin ilgili
bölümüne dönerek konuyu tekrar ediniz.
ÖLÇME VE DEĞERLENDİRME
45
ÖĞRENME FAALİYETİ–3
Döngü komutlarını öğrenip program içerisinde kullanabileceksiniz.
Bu faaliyet öncesinde hazırlık amaçlı aşağıd






03-19-2008 08:53 PM
Bu kullanıcının gönderdiği tüm mesajları bul Bu mesajı bir cevapta alıntı yap
Mesaj Önizleme  Konuyu Gönder 


Anahtar Kelimeler

gorsel programlama yardimci kodlari indir, gorsel programlama yardimci kodlari yükle, gorsel programlama yardimci kodlari download, gorsel programlama yardimci kodlariindirmek istiyorum, gorsel programlama yardimci kodlari yükle, gorsel programlama yardimci kodlari bedava, gorsel programlama yardimci kodlari İNDİR, gorsel programlama yardimci kodlari YÜKLE, gorsel programlama yardimci kodlari free, gorsel programlama yardimci kodlari yukle, gorsel programlama yardimci kodlari İndir, gorsel programlama yardimci kodlari download, gorsel programlama yardimci kodlari inndir, gorsel programlama yardimci kodlari Dvdrip, gorsel programlama yardimci kodlari filmi indir, gorsel programlama yardimci kodlari online izle, gorsel programlama yardimci kodlari super film, gorsel programlama yardimci kodlari bedava izle


Foruma Git: