Makale Özeti

Bu Yazımızda VB.NET içindeki Matematiksel Operatör ve matematiksel fonksiyonları içeren Math sınıfını inceliyoruz.

Makale

VB.NET TE MATEMATİKSEL FONKSİYONLAR

   Bu Yazımızda VB.NET içindeki Matematiksel Operatör ve matematiksel fonksiyonları içeren Math sınıfını inceliyoruz.

   Üniversite yıllarında herkesin zorlandığı tek bir ders vardı. "Matematik". Gerçektende okul uzatan birçok arkadaşımın korkulu rüyası idi. Açıkçası ben Matematikten hiç korkmazdım. En karmaşık İntegral işlemlerini bile çok büyük bir istekle çözerdim. Sene sonunda hocamızın bir sözü çok dikkatimi çekmişti. "Bu integraller hesaplar türevler ve fonksiyonlar gerçek hayatta sizin hesaplayacağınız hususlar değildir. Bunların bir çoğunu ve hatta hepsini makineler(yani bilgisayarlar) hesaplar . Sizin yapacağınız sadece bunların mantığını kavrayıp bu çözümü kontrol etmenizdir." Bu sözler beni programcılıkla ilgilenmeye itti. Neyse bu kadar öz geçmişte sonra bu anımdan yola çıkarak sizlere bir programlama dili için son derece önemli bir konu olan matematiksel fonksiyonları anlatmaya çalışacağım. Gerçektende doğru bir programlama ile en karmaşık matematiksel işlemleri bilgisayarlara hesaplatmak mümkün.

   Peki nedir bu matematiksel işlemler ile neler yapılır? İtiraf etmek istiyorum. Matematik Bilgisayar ve programcılık için her şeydir. Gördüğünüz tüm simülasyon programları sadece formüllerin program haline getirilmesidir. Aslında bilgisayar programlarının yaptığı tek şey kullanıcıya formülü sunmaktır. Siz verileri girersiniz o hesaplar ve sonucu size verir. Bu girdiler bazen çizim bazen rakam bazen yazı bazen video, ses vs… Örneğin bir çizim programına bir parabol çizdirmek istiyorsanız öncelikle program içinde parabol denklem Halide fonksiyonlaştırılır. Daha sonra Mouse veya Klavye yardımı ile çizim gerçekleşir. Zaten bu parabolün boyutlarını belirleyen şey terimler önündeki katsayılardır. Bunlara programcılık dilinde değişken olarak isimlendirilir. Peki bir programlama dili içinde bu hazır matematiksel fonksiyonlar olmasa idi bunları nasıl hesaplardık. Mesela bir Sinüs fonksiyonunu nasıl hesaplardık? Tabii ki birim çemberle önce programın Pİ sayısını hesaplatmak zorunda kalırdık. Şimdi herkes "Pİ =3,14 değil mi?" diyecekler. Evet yaklaşık öyle ama bu hesaplarla biz programa tekrar yaptırmak zorundayız çünkü hesaplana değerlerin standart hatalarının minimum a indirmek için yüksek hassasiyetli yani virgülden sonraki mümkünse tüm basamakları işleme dahil etmemiz gerekir. Neyse özetle anlatmak istediğim bu anlattığım tüm zorlukları Microsoft VB.NET artık bu dillerle tarihe gömüyor. Aslında doğru olan da bu yani hesaplama yöntemleri bilinen her fonksiyonu tekrar tekrar yazmanın bir anlamı yok.

   VB NETte ki matematiksel fonksiyonları içinde barındıran sınıf math sınıfıdır.

   Math sınıfının tüm fonksiyonlarını size bir Tablo Halinde veriyorum.

No Fonksiyon Anlamı
1 abs Argümanı olan sayının Mutlak değerini gönderir.
2 Acos Cosinüsü verilen açıyı hesaplar
3 Asin Sinüsü verilen açıyı hesaplar
4 Atan Tanjantı verilen açıyı gönderir
5 Atan2 Tanjantı iki sayının oranı olarak verilmiş olan açıyı gönderir.
6 Ceiling Verilen sayıdan büyük yada ona eşit en küçük tam sayıyı gönderir
7 Cos Verilen Açının Cosinüsünü hesaplar
8 Cosh Verilen bir açının Cosinüs hiperbolik fonksiyonunu hesaplar.
9 E E sabitini gönderir
10 Exp Ex değerini hesaplar
11 Floor Verilen bir sayıdan küçük yada ona eşit en küçük tam sayıyıgönderir
12 IEEERemainder Bir sayını Başka bir sayıya bölünmesinden kalanı gönderir.
13 Log Verilen bir sayının logoritmasını hesaplar
14 Log10 Verilen bir sayının 10 tabanından logoritmasını hesaplar.
15 Max Verilen iki sayıdan büyük olanını gönderir
16 Min Verilen iki sayıdan küçük olanını gönderir.
17 PI PI Sayısını Hesaplar.
18 Pow X^y değerini gönderir.
19 Round Verilen sayıyı en yakın tam sayıya yuvarlar.
20 Sing Verilen sayının işaretini gönderir.
21 Sin Verilen Açının Sinüsünü Gönderir
22 Sinh Verilen açının sinüs hiperbolik fonksiyonunu gönderir.
23 Sqrt Verilen bir sayının karekök değerini gönderir.
24 Tan Verilen açının Tanjantını gönderir.
25 Tanh Verilen açının Tanjantını gönderir.

   Şimdi bizim için önemli olan bu fonksiyonları nasıl kullanacağımız. Öncelikle matematikten hatırlayacağınız gibi bir açı 3 birimle ifade edilebilir. Grad Derece ve Raydan burada matematik anlatmak istemiyorum ama madem matematiksel fonksiyonları kullanacağız bunları hemen kısaca hatırlayalım.

   360 Derece = 200 GRAD = 2X ye eşittir. Math sınıfı içindeki Trigonometrik fonksiyonlarda İşte Raydan kullanılır yani açının 2 ? cinsinden değerini yazmamız gerekir.

Örnek bir Kod yazalım

   Önce Bir VBNET Projesi açın ve Form üzerine Button ve Textbox koyun. Butona bastığınızda size Textbox içindeki raydan cinsinden girilmiş açı değerinin sinüsünü veren kodu yazalım. Bunun için Butonun Click Olayına bu kodu yapıştıralım.



Dim i, As Long
i = Val(TextBox1.Text)
TextBox1.Text = Math.Sin(i)

   Gördüğünüz gibi sin yerine math altındaki trigonometrik fonksiyonları bu şekilde kullanabiliriz. Şimdi size başka bir fonksiyon yazmak istiyorum genellikle uygulamalarda girilecek değerler derece yada grad olabilir. Ben bu çevrimi yapmak için size üç adet fonksiyon yazdım.

   Ancak bu fonksiyonlarda kullanılmak üzere bir adet enum değişken tanımladım. Fonksiyonların kullanımını kısaca anlatayım. Fonksiyon adından sonra ilk girdiğiniz değer açı değeridir ikincisi ise açı türüdür. Ayni bu açı derece mi raydan mı yoksa grad mı böylece üç değeri birbiri içinde kullanabilirsiniz.



Public Enum angle
derece
grad
radyan
End Enum
Public Function tograd(ByVal deger As Long, ByVal acı As angle)
If acı = angle.derece Then If acı = angle.grad Then End If
If acı = angle.radyan Then
tograd = deger * 200 / Math.PI End Function If acı = angle.derece Then
todeg = deger
End If
If acı = angle.grad Then
todeg = deger * 360 / 200
End If
If acı = angle.radyan Then
todeg = 2 * 180 / Math.PI
End If
End Function
Public Function torad(ByVal deger As Long, ByVal acı As angle)
If acı = angle.derece Then
torad = deger * Math.PI / 360
End If
If acı = angle.grad Then
torad = deger * Math.PI / 200
End If
If acı = angle.radyan Then
torad = deger
End If
End Function

   VB NETte kullanılan operatörleri de bir tablo halinde sunmak istedim bunların zaten bir çoğu VBnin geleneksel operatörleridir

No Opreratör Tanımladığı İşlem
1 ^ Üs Alma
2 * Çarpma
3 / Bölme
4 \ Tam sayı bölme
5 Mod Tam sayı bölmede kalanı alma
6 + Toplama
7 - Çıkarma



Tarık Gökhan Kızılırmak
tarikgokhan@hotmail.com