HAZIR FONKSİYONLAR IMPORTS ifadesi Imports, Microsoft firmasının Visual Studio ile Netframe altında tanımladığı ortak kütüphaneleri kullanabilme ifadesidir. Bu ifade sayesinde Visual Studio içindeki programlama dilleri (Visual Basic, C#, vs.) bazı kütüphaneleri ortak olarak kullanabilmektedir. Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır. Doğru yer, Doğru Kullanım Yanlış yer, Yanlış Kullanım Matematiksel Fonksiyonların VB de Kullanılabilmesi Imports System.Math ifadesi Import System.Math ifadesi, Math Class ı (sınıfı) içindeki matematiksel fonksiyonların kullanılabilmesini sağlar. Matematiksel fonksiyonları (Math sınıfı elemanlarını), VB içinde kullanabilmenin iki yolu vardır: 1. Imports System.Math satırını, yukarıda anlatıldığı şekliyle programın en üst satırlarında (Public Class satırından önce) kullanmak, 2. Aşağıdaki fonksiyonların önünde "MATH." Ifadesini kullanmak (Örneğin; Abs fonksiyonunu kullanabilmek için, Math.Abs yazmalısınız). Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 11/Sayfa1
Bazı Math Fonksiyonları Abs Max Min Pi Sign E Exp Log Log10 Round Sqrt ACos ASin ATan Cos Sin Tan Anlamı Fonksiyona verilen sayının mutlak değerini almak için kullanılır. Örn.: Math.Abs(-4) sonuç 4 İki sayıdan büyük olanını bulmak için kullanılır (yalnızca iki sayı için işlem yapar). Örn.: Math.Min(3,4.5) sonuç 4.5 İki sayıdan küçük olanını bulmak için kullanılır (yalnızca iki sayı için işlem yapar). Örn.: Math.Max(3,4.5) sonuç 3 Pi sayısını (pi= 3,147659265358979) elde etmek için kullanılır. Örn.: Math.Pi Sayı pozitif ise 1, negative ise -1, 0 ise 0 değerini veren işaret fonksiyonunun işlevi için kullanılır. Örn.: Math.Sign(2072) sonuç 1 E nin 1 tabanına göre değerini elde etmek için kullanılır. Örn.: Math.E sonuç (2,71828182845905) E nin istenilen tabana gore değerini elde etmek için kullanılır. Örn.: Math.Exp(2) sonuç (7,38905609893065) Verilen tabana gore Doğal Logaritma değerini elde etmek için kullanılır Örn.: Math.Log(1) sonuç 0 10 tabanına gore Logaritma değerini elde etmek için kullanılır. Örn.: Math.Log10(1000) sonuç 3 Verilen bir sayının, istenen hassasiyette yuvarlanması için kullanılır. Kullanım şekli: Round(sayı,hassasiyet). Genel ifadedeki "hassasiyet" kullanılması zorunlu değildir, kullanılmazsa, 0 (sıfır, virgülden sonra hassasiyet olmasın) anlamındadır. Örn1.: Math.Round(3.567, 2) sonuç 3.57 Örn2.: Math.Round(3.67) sonuç 4 Örn3.: Math.Round(-3.4945) sonuç -3 Verilen değerin karekökünü hesaplamak için kullanılır. Örn.: Math.Sqrt(25) sonuç 5 Radyan cinsinden Arc Cosinus değerini verir Radyan cinsinden Arc Sinus değerini verir Radyan cinsinden Arc Tangent değerini verir Radyan cinsinden Cosinus değerini verir Radyan cinsinden Sinus değerini verir Radyan cinsinden Tangent değerini verir Imports Microsoft.VisualBasic ifadesi Imports Microsoft.VisualBasic ifadesi, özellikle Visual Basic 6.0 daki birçok komut ve hazır fonksiyonun, VB 2005 sürümünde kullanılmasını sağlar. Bu ifade içinde, dersimizin içeriğine uygun olan hazır fonksiyonların belli başlıları, aşağıda anlatılmaya çalışılmıştır. Imports Microsoft.VisualBasic ifadesi içinde tanımlı hazır fonksiyonları, VB içinde kullanabilmenin iki yolu vardır: 1. Imports Microsoft.VisualBasic satırını, Imports konusunda (önceki sayfa) anlatıldığı şekliyle programın en üst satırlarında (Public Class satırından önce) kullanmak, 2. Aşağıdaki fonksiyonların önünde "Microsoft.VisualBasic." Ifadesini kullanmak (Örneğin; int fonksiyonunu kullanabilmek için, Microsoft.VisualBasic.int yazmalısınız). Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 11/Sayfa2
VB de en çok kullanılan komutlardan olan Msgbox ve Inputbox, Microsoft.VisualBasic sınıfında bulunan komutlardandır. Bu sınıf (Microsoft.VisualBasic) VB nin açılışta doğrudan yüklediği sınıflardan olduğu için, Msgbox ve Inputbox komutları sözkonusu sınıf belirtilmeden de kullanılabilmektedir. Msgbox ve Inputbox komutunlarının bağlı oldukları sınıf ile aslında kullanılması gereken yazım şekilleri aşağıda verilmiştir. ad = Microsoft.VisualBasic.InputBox("Öğrenci ismini verin") Microsoft.VisualBasic.MsgBox("Sonuç=" & bd) Yukarıda anlatılan sebepten dolayı, bu örnek satırlar aşağıdaki şekilde kullanılabilmektedir. ad = InputBox("Öğrenci ismini verin") MsgBox("Sonuç=" & bd) Microsoft.VisualBasic Sınıfı içindeki Sayısal Fonksiyonlar Fix ve int Fonksiyonları Her iki fonksiyon da, sayısal değerlerin tamsayılı kısımlarını bulmak için kullanılır. İki fonksiyon arasında sadece eksi (-) sayılarda bir fark bulunmaktadır. Örnekler yanda verilmiştir. Int (3.5) sonuç 3 Fix (3.5) sonuç 3 Int (3.9) sonuç 3 Fix (3.9) sonuç 3 Int (3.1) sonuç 3 Fix (3.1) sonuç 3 Int (3) sonuç 3 Fix (3) sonuç 3 Int (-3.5) sonuç -4 Fix (-3.5) sonuç -3 Int (-3.9) sonuç -4 Fix (-3.9) sonuç -3 Int (-3.1) sonuç -4 Fix (-3.1) sonuç -3 Int (-3) sonuç -3 Fix (-3) sonuç -3 RND( ) Fonksiyonu Bilgisayara 0 ile 1 arasında ve bu değerlere eşit olmayan rasgele ondalıklı sayı ürettirmek için kullanılır. Daha çok oyun ve tahmine dayalı programlarda kullanılır. Tek başına kullanıldığında sonuç ondalıklı bir sayısal değerdir. Ancak çoğu kez ondalıklı bir rasgele sayı yerine tamsayı bir değer daha çok kullanışlıdır. Bu nedenle rnd fonksiyonu daha çok int fonksiyonu ile beraber kullanılır. Rnd satırının rasgele üreteceği en küçük değer 0.000001. gibi bir değer, üreteceği en büyük değer 0,9999999.. gibi bir değerdir. Örnek olarak 1 ile 5 arasında bir tamsayı değer üretebilmek için rnd ifadesinin önce 5 ile çarpılıp int fonksiyonu ile tamsayılı kısmının alınması (bu durumda elde edilecek en küçük değer 0, elde edilecek en büyük değer 4 sayısıdır) ve daha sonra elde edilen değerin 1 sayısı ile toplanması gerekir. Buna göre uygun satır şu şekilde olmalıdır. (Int (rnd * 5))+1 Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 11/Sayfa3
Örnekler : (Int (rnd( ) * 50)) 0 ile 49 arasında rasgele bir tamsayı sayı üretir (Int (rnd( ) * 50))+1 1 ile 50 arasında rasgele bir tamsayı sayı üretir (Int (rnd( ) * 50))- 7-7 ile 42 arasında rasgele bir tamsayı sayı üretir Randomize( ) Fonksiyonu Bu fonksiyon rnd fonksiyonuna her defasında farklı rasgele sayılar ürettirmek için kullanılır. Bu özelliğinden dolayı bu fonksiyon mutlaka rnd fonksiyonundan önce işleme girmesi gerekir. Eğer bu gerçekleşmezse rnd fonksiyonu her defasında aynı değerleri üretir. Dim i,a as byte For i=1 to 5 a=rnd() debug.writeline (a) Next I Yandaki örnekte program her çalıştırılışında, ilk çalıştırılışında verdiği 5 rasgele sayıyı tekrar edecektir. Bunu önlemek için programa rnd fonksiyonu işleme girmeden önce randomize komutunu işleyeceği bir satırın ilave edilmesi gerekir. Dim i,a as byte Randomize( ) For i=1 to 5 a=rnd() debug.writeline (a) Next I Yandaki örnekte program her çalıştırılışında bir diğerine benzemeyen 5 rasgele sayı verecektir. Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 11/Sayfa4
Bir programın adım adım çalıştırılması Hazırlanan programın normal olarak çalıştırılması F5 tuşuna basılarak gerçekleştirilir. Fakat bazen programın çeşitli aşamalarında program içinde kullanılan değişken veya değişkenlerin aldıkları değerler adım adım izlenmesi gerekebilir. Bu işlem programın, belli kısımlarında doğru değerleri üretip üretmediğinin sınanması açısından önemlidir. Böyle durumlarda program F5 yerine F8 tuşuna basılarak çalıştırılır. Bu durumda programı oluşturan her bir satırın işlenmesi sonucunda bilgisayar kullanıcıyı bekler ve bir sonraki satıra geçmek için F8 tuşuna basılmasını gerekir. Programın durduğu satır ayrı bir renk ile VB tarafından kullanıcıya gösterilir, işte bu aşamada değişkenlerin aldıkları her bir değer bilgisayardan öğrenilebilir. Bunun için fare göstergeci (imleci) istenilen değişkenin üzerine getirilip fare tıklanmadan imleç bekletilirse, imlecin üzerinde tutulduğu değişkenin o andaki durumu VB tarafından değişkenin alt tarafında kullanıcıya ekranda gösterilir. Bundan sonra kullanıcı açısından iki seçenek vardır; ya programı kaldığı yerden yine adım adım devam ettirmek (bu durumda her bir defasında yine F8 tuşuna basılmalıdır) veya programı kaldığı yerden normal bir şekilde devam ettirmek (bu durumda F5 tuşuna basılmalıdır). Konu ile ilgili örnek bir program aşağıda verilmiştir. Bu örnekte bilgisayara verilen n adet sayı içinden kaç tanesinin sıfıra eşit, kaç tanesinin sıfırdan küçük, kaç tanesinin sıfırdan büyük olduğunun bilgisayara buldurulup, elde edilen sonuçların ekrana yazdırılması amaçlanmaktadır. Dim dt, p, k, b, h As Integer, sayi As Double dt = InputBox("Kaç sayı vereceksiniz") For p = 1 To dt sayi = InputBox("Sayiyi verin") Select Case sayi Case Is < 0 k = k + 1 Case Is > 0 b = b + 1 Case Else h = h + 1 End Select Next MsgBox(dt & " adet sayıdan " & k & " tanesi sıfırdan küçüktür") MsgBox(dt & " adet sayıdan " & b & " tanesi sıfırdan büyüktür") MsgBox(dt & " adet sayıdan " & h & " tanesi sıfıra eşittir") Gültekin Çağıl, Bilgisayar Programlama ders notları, Sakarya Üniv. Endüstri Mühendisliği/Hafta 11/Sayfa5