Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

5. FONKSİYONLAR VE ALT PROGRAMLAR

Benzer bir sunumlar


... konulu sunumlar: "5. FONKSİYONLAR VE ALT PROGRAMLAR"— Sunum transkripti:

1 5. FONKSİYONLAR VE ALT PROGRAMLAR
Başka bir program tarafından çalıştırılarak kullanılabilen bağımsız komut setlerine prosedür (Yordam) denir. Kullanım sebebi, bir prosedürün program içinde farklı yerlerde bir çok kez kullanılabilir olmasıdır. Ayrıca, aynı komut setlerinin tekrarı program kodunun büyümesine neden olur, hata giderme ve iyileştirme süreçleri de yavaşlar. Prosedürler işlevsel olarak 2 çeşittir; fonksiyonlar (Function), alt programlar (Sub). Bir fonksiyon yada alt program belirli bir işi yapan küçük programcıklardır. Değişken isimlendirilmesindeki kurallar, fonksiyon ve altprogramlar için de uygulanmaktadır. Bir prosedür Public olarak tanımlanırsa programdaki bütün form ve modüllerde, Private olarak tanımlanırsa yalnızca tanımlandığı form ve modülde çağırılabilir.

2 Bir VB6 program yapısı incelendiğinde, kontrollere ait farklı olayların farklı alt program olarak oluşturulduğu görülür. Örneğin bir Command1 düğmesinin tıklama olayının kendine ait alt programı Private Sub Command1_Click() ‘..... End Sub görünümündedir. Bu iki satırın üstünde ve altında belki binlerce satır olmasına rağmen, bu satırlar arasındaki kodlar tüm diğer satırlardan bağımsız çalışmaktadır. Bu nedenle buradaki program parçasına alt program adı verilir. VB6 da bu amaca yönelik iki farklı alt program yapısı vardır: 1. Function 2. Sub Function alt programı tek bir değer hesaplarken Sub alt programı birden çok değer hesaplar. Function bir işlem içinde de adı ile çağrılabilir. Sub alt programı Call deyimi ile ayrı bir satırda çağrılmak zorundadır. Aralarındaki önemli farklar bundan ibarettir.

3 ALT PROGRAMLAR Alt programları fonksiyonlardan ayıran tipik özellikleri, çağıran programa, parametre listesindeki değişkenler aracılığıyla birden çok sonuç değeri gönderebilmeleri ve bağımsız bir komut ile çalıştırılmalarıdır. Alt programlar, başka bir prosedür içinden Call komutu ile çağrılırlar. Genel formatı: Sub AltprogramAdı (parametreler) End sub Örnek: Dim alan, x As Integer Sub kare() alan = x * x Print alan End Sub Public alan, x As Integer Sub kare() alan = x * x Form1.Print alan End Sub

4 FONKSİYONLAR Fonksiyonlar, çağrıldığı programa tek bir sonuç değeri aktarırlar. Bu sonuç sayısal ya da karakter içerikli olabilir. Fonksiyonların diğer bir özelliği, herhangi bir komut satırında çalıştırılırlar ve elde edilen sonucu, adının geçtiği konuma getirirler. Bu nedenle fonksiyon bitirilmeden önce, fonksiyon adına, bir değişkene yapıldığı gibi bir atama yapılmalıdır. Genel formatı: Function FonksiyonAdı (parametreler) FonksiyonAdı=sonuc End function

5 Örnek: Function kare (x As Single) As Single kare=x*x End Function Yukarıdaki fonksiyonu command nesnesi içinde çağırmak için; Private Sub Command1_Click() Dim x1 As Integer x1 = 2 alan = kare(x1) Print alan End Sub Örnek: Function daire (r As Double) As Double daire = pi * r * r End Function Yukarıdaki fonksiyonu çağırmak için: Aland = daire (r1)

6 a1, b1 değişkenleri tanımlanmalı !
Parametreler Parametreler, prosedüre (bir fonksiyon veya altprogram) geçişi sağlayan değerlerdir. Kullanılan parametrelerin sayısı, fonksiyon veya altprogramda tanımlanan parametrelerin sayısı ile aynı olmalıdır. İki veya daha çok parametrenin söz konusu olduğu bazı durumlarda, bir fonksiyona ihtiyaç duyulduğunda, “opsiyonel parametre” kullanımı gerekmektedir. Örnek: Function Dikdortgen (a, b As Double) As Double Dikdortgen = a * b End Function Alan1 = Dikdortgen(a1) a1, b1 değişkenleri tanımlanmalı ! HATALI Alan1 = Dikdortgen(a1,b1) DOĞRU

7 Örnek: Opsiyonel (Optional) parametre kullanımı Function Dikdortgen (a As Double, Optional b As Double) As Double Dikdortgen = a * b End Function Bu durumda her iki kullanımda geçerlidir. Alan1 = Dikdortgen(a1) DOĞRU Alan1 = Dikdortgen(a1,b1) DOĞRU

8

9

10

11

12

13 OLAY ALT PROGRAMLARI Visual Basic olay (event) tabanlı bir program olarak tanımlanabilir. Bu durumda VB kontrollerindeki her bir olay bir alt program olarak kabul edilebilir. Bu tanıımlamalar dikkate alınırsa, Visual Basic’de, kontrollerin kendi olay alt programları vardır. Diğer prosedürler gibi programcı tarafından çağırılmaları gerekmez, alt program ait olduğu kontrol tarafından çağırılır. Bir nesneye tıklamak (click, dbclick), farenin bir nesne üzerinde dolaşması (mousemove), nesnelerin taşınması (drag) windows olaylarından bazılarıdır. Bu olaylar, bazı kodların aktif hale gelmesini (çalışmasını) sağlar.

14 Genel formatı: Sub kontroladı_olay ([parametreler]) End sub VB’ de Olaylar Gotfocus() Klavye kontrolünün ilgili nesneye geçmesiyle çalışan olaylardır. İlgili nesneye kontrolün geçebilmesi için “visible” ve “enabled” olması gerekir. Keydown() Klavyeden harhangi bir tuşa basıldığında meydana gelen olaylardır. Tuş basılı olduğu müddetçe devam eder. Keyup() Bu olay klavyeden basılan tuş bırakıldığı anda meydana gelir.

15 Click(), Dbclick() Farenin tıklanmasıyla/çift tıklanmasıyla meydana gelen olaydır. Mousemove() Farenin bir form yada kontrol üzerinde dolaşması sonucu meydana gelen olaylardır. Dolaşma devam ettiği müddetçe bu olay meydana gelir. Mousedown() Fareye basılması sonucu meydana gelen olaydır. Mouseup() Fareye basılmış tuşun bırakılması sonucu meydana gelen olaydır.

16 If X < 2500 Then Form1.BackColor = RGB(100, 0, 0)
Örnek: Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.BackColor = RGB(255, 0, 0) End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.BackColor = RGB(0, 255, 0) Örnek: Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.Caption = X & " , " & Y If X < 2500 Then Form1.BackColor = RGB(100, 0, 0) If X >= 2500 And X < 4500 Then Form1.BackColor = RGB(0, 100, 0) If X >= 4500 Then Form1.BackColor = RGB(0, 0, 100) End Sub

17 VISUAL BASIC FONKSİYONLARI (KOMUTLARI)
String İşlemleri Metinler üzerinde işlem yapmaya yarayan komutlardır. TRim(string) Verilen metnin her iki tarafindaki boşluk karakterlerini siler. LTrim(string) : Verilen metnin başindaki boşluk karakterini siler. RTrim(string) : Verilen metnin sonundaki boşluk karakterini siler. Len(string) Metin içindeki karakter sayısını verir. Left(string, n) Metin içindeki soldan n karakteri verir. Right(string, n) Metin içindeki sağdan n karakteri verir. Mid(string,başlangıç, uzunluk) Metin içindeki başlangıçtan sona kadar olan karakter sayısını verir.

18 Ucase(string) Metin içindeki karakterleri büyük harfe çevirir. Lcase(string) Metin içindeki karakterleri küçük harfe çevirir. Space(sayı) Verilen sayı kadar boşluk oluşturur. Asc(harf) Girilen harf için ASCII kodunu verir. Chr(ASCII kodu) ASCII kodu verilen sayının karakter karşılığını verir. (Alt+Sayı) Str(sayı) Verilen sayı’yı string’e dönüştürür. Val(String) Verilen string’i sayıya dönüştürür. Çevirme işlemi geçersiz (sayı olmayan) karaktere kadar devam eder.

19 Örnek: Dim a, b As String a = Space(15) + "DEÜ Makina" + Space(15) b = "1982" Print a + b Print Trim(a) + b Print RTrim(a) + b Print LTrim(a) + b Örnek: Dim a, b As String a = Space(15) + "DEÜ Makina" + Space(15) b = "1982 " Print Len(a), Len(b) Print Left(a, 18) Print Right(a, 18) Print Mid(a, 16, 3)

20 x=Str(123) ‘123 artık bir rakam değil, stringdir.
x=“123” olur. Örnek: Örnek: Print Val (“124.33”) ‘124.33 Print Val (“123a4.33”) ‘123 Print Val (“a179”) ‘0 Örnek: Private Sub Command1_Click() n1 = Asc(0) n2 = Asc(9) For i = n1 To n2 Print i, Chr(i) Next i End Sub

21 Renk Belirleme Komutları
Kontrollerin zemin renkleri, çizimlerin renkleri veya yazılarin renkleri bu komutlarla değiştirilebilir. Qbcolor (RenkNo) Siyah 8 Gri 1 Mavi 9 Açık Mavi 2 Yeşil 10 Açık Yeşil 3 Cyan 11 Açık Cyan 4 Kırmızı 12 Açık Kırmızı 5 Eflatun 13 Açık Eflatun 6 Sarı 14 Açık Sarı 7 Beyaz 15 Açık Beyaz RenkNo 0-15 arasi değerler alır. Bu renkler 8 temel rengin koyu ve açık halleridir. Rgb (Red, Green, Blue) Renk Kırmızı Yeşil Mavi Siyah 255 Cyan Eflatun Sarı Beyaz Red, Green, Blue arası değerler alabilir. Üç rengin farklı tonlarda karışımından renkler oluşturulur.

22 Matematiksel Komutlar
Karekök : sqr() Mutlak değer : abs() Logaritma : log() Exponansiyel : exp() Sin() Cos() Tan() Atn() Not: Açılar radyan cinsinden girilir ! Yuvarlatma Fonksiyonları Int (sayı) Virgülden sonraki sayıyı atar, eğer sayı pozitifse sayının tam kısmını alır, negatifse kendinden bir önceki sayıya yuvarlatılır. Örnek: Print int(60.2) ‘60 Print int(60.6) ‘60 Print int(-60.2) ‘-61 Print int(-60.6) ‘-61 Fix (sayı) Virgülden sonraki sayıyı atar. Round (sayı) En yakın tam sayıya yuvarlar. Örnek: Print Fix(60.6) ‘60 Print Fix(-60.6) ‘-60 Örnek: Print Round(60.6) ‘61 Print Round(-60.6) ‘-61

23 Rnd Rasgele (Random) sayı üretmek için Rnd fonsiyonu kullanılır. 0 ile 1 arasında rasgele sayılar üretir. Örnek: Print Rnd ‘0 ile 1 arası bir sayı üretir Print Rnd*100 ‘0 ile 100 arasında bir sayı üretir Verilen a-b aralığında rasgele sayılar üretiniz ve sonuçları yuvarlatma fonksiyonları ile yorumlayınız. Örnek: Private Sub Command1_Click() a = 0: b = 15 c = Rnd * (b - a) + a Print c, Int(c), Fix(c), Round(c) End Sub

24

25

26 Shell (Program, [Pencere_tipi] )
Uygulama Komutları Shell Hazırladığımız program içerisinde başka bir programı çalıştırmak için kullanılır. Genel formatı: Shell (Program, [Pencere_tipi] ) Pencere_tipi VbHide Pencere gizli olarak aktifleşir. vbNormalFocus 1 Pencere normal boyutlarında açılır. vbMinimizedFocus 2 Pencere simge olarak açılır. vbMaximizedFocus 3 Pencere tüm ekranı kaplar. vbNormalNoFocus 4 Pencere geri yüklenir. Focus başka komponentte vbMinimizedNoFocus 6 Pencere simge olarak yüklenir. Focus başka komponentte. Örnek: Private Sub Command1_Click() Dim a a = Shell(“Notepad.exe",3) End Sub


"5. FONKSİYONLAR VE ALT PROGRAMLAR" indir ppt

Benzer bir sunumlar


Google Reklamları