PROSEDÜRLER (YORDAMLAR) (FONKSİYONLAR VE ALT PROGRAMLAR)
PROSEDÜR NEDİR? BAŞKA BİR PROGRAM TARAFINDAN ÇALIŞTIRILARAK KULLANILABİLEN BAĞIMSIZ KOMUT SETLERİNE PROSEDÜR DENİR.
NEDEN KULLANILIR? TEMEL NEDENLERİNDEN BİRİ, BİR PROSEDÜRÜN PROGRAM İÇİNDE FARKLI YERLERDE BİR ÇOK KEZ KULLANILABİLİR OLMASIDIR. AYNI KOMUT SETLERİNİN TEKRARI PROGRAM KAYNAK KODUNUN BÜYÜMESİNE NEDEN OLUR, HATA GİDERME VE İYİLEŞTİRME SÜREÇLERİ DE YAVAŞLAR.
ÖRNEK N! (N FAKTÖRİYEL) DEĞERİNİ BULAN PROSEDÜR. BU PROSEDÜR BİR DEFA OLUŞTURULUR VE GEREKEN HER YERDE KULLANILIR. C=N!/P!*(N-P)! GİBİ...(KOMBİNASYON HESABI)
PROSEDÜR ÇEŞİTLERİ PROSEDÜRLER İŞLEVSEL OLARAK 2 ÇEŞİTTİR. FONKSİYONLAR (FUNCTION) ALT PROGRAMLAR (SUB)
FONKSİYONLAR BU TÜR PROSEDÜRLERİN EN TİPİK ÖZELLİĞİ, ÇAĞIRAN PROGRAMA TEK BİR SONUÇ DEĞERİ AKTARMASIDIR. BU SONUÇ SAYISAL YA DA KARAKTER İÇERİKLİ OLABİLİR.
FONKSİYONLAR FONKSİYONLARIN DİĞER BİR ÖZELLİĞİ, HERHANGİ BİR KOMUT SATIRINDA ÇALIŞTIRILIRLAR VE ELDE EDİLEN SONUCU, ADININ GEÇTİĞİ KONUMA GETİRİRLER. BU NEDENLE FONKSİYON BİTİRİLMEDEN ÖNCE, FONKSİYON ADINA, BİR DEĞİŞKENE YAPILDIĞI GİBİ BİR ATAMA YAPILMALIDIR.
FONKSİYONLARIN GENEL FORMATI function adı (parametreler) ........ adı=sonuc end function
KOMBİNASYON HESABI n=val(text1.text) p=val(text2.text) print fakto(n)/(fakto(p)*fakto(n-p)) end function fakto (k) s=1 for i=2 to k s=s*i next fakto=s end function
KARE FONKSİYONU function kare(x) sonuc=x*x kare=sonuc end function
KARE FONKSİYONU2 function kare(x) kare=x*x end function
KULLANIM BİÇİMLERİ SQR(X) FONKSİYONU X SAYISININ KARESİNİ ALIR. print sqr(x) for i=1 to sqr(x) k=sqr(x)+1
ALT PROGRAMLAR ALT PROGRAMLARI FONKSİYONLARDAN AYIRAN TİPİK ÖZELLİKLERİ, ÇAĞIRAN PROGRAMA, PARAMETRE LİSTESİNDEKİ DEĞİŞKENLER ARACILIĞIYLA BİRDEN ÇOK SONUÇ DEĞERİ GÖNDEREBİLMELERİ VE BAĞIMSIZ BİR KOMUT İLE ÇALIŞTIRILMALARIDIR.
GENEL FORMATI sub adı (parametreler) ....... end sub
ÖRNEK sub selam () print “hoşgeldin bayram” end sub
ÖRNEK2 ad=text1.text selam(ad) sub selam (x) end sub print ”hoşgeldin” x end sub
VB’DE PROSEDÜRLER VB’DE FONKSİYON VE ALT PROGRAMLARI BELİRTMEK İÇİN PROSEDÜR DEYİMİ KULLANILIR. BİR FONKSİYON YADA ALT PROGRAM BELİRLİ BİR İŞİ YAPAN KÜÇÜK PROGRAMCIKTIR. ÖRNEĞİN BİR ÇOK YERDE FAKTÖRİYEL HESABI YAPMANIZ GEREKİYORSA BUNU BİR FONKSİYONLA HALLEDEBİLİRSİNİZ.
PROSEDÜRLER PROGRAMDA YENİ BİR PROSEDÜR TANIMLAMAK İÇİN “TOOLS\ ADD PROSEDURE” KOMUTU KULLANILABİLİR. BURADA PROSEDÜR “PUBLIC” OLARAK TANIMLANIRSA PROGRAMDAKİ BÜTÜN FORM VE MODÜLLERDE, “PRIVATE” OLARAK TANIMLANIRSA YALNIZCA TANIMLANDIĞI FORM VE MODÜLDE ÇAĞIRILABİLİR.
ÖRNEK AŞAĞIDAKİ ALT PROGRAM, GİRİLEN BİR SAYININ KARESİNİ YAZDIRIR. kare val(text1.text) ‘ kare çağırılıyor sub kare (x as integer)’ kare alt programı dim ka ka=x*x print ka’ ilgili sayının karesi yazdırılır end sub
ÖRNEK dim x x=val(text1.text) topla(x)’x değişkeni için topla fonksiyonu çalışacak. function topla (sayi) dim i,top,sayi for i=0 to sayi top=top+i next topla=top end function
ÖRNEK dim i,n for i=0 to n print i&”!=”& fak(i) Next
...DEVAMI... function fak(x) next fak=s’sonucu geri gönderir dim i,s s=1 for i=1 to x s=s*i next fak=s’sonucu geri gönderir end function
BİR SAYININ KARESİNİ BULAN FONKSİYON Public Function kare (x as integer) kare=x^2 End Function
BİR SAYININ KAREKÖKÜNÜ BULAN FONKSİYON Public Function karakok (m as integer) karekok=m^(1/2) End Function
OLAY ALT PROGRAMLARI KULLANICININ TANIMLAYACAĞI ALT PROGRAMLARIN DIŞINDA, KONTROLLERİN KENDİ OLAY ALT PROGRAMLARI VARDIR. DİĞER PROSEDÜRLER GİBİ PROGRAMCI TARAFINDAN ÇAĞIRILMALARI GEREKMEZ, ALT PROGRAMIN AİT OLDUĞU KONTROL TARAFINDAN ÇAĞIRILIR.
GENEL FORMATI sub kontroladı_olay ([parametreler)] ........ end sub
ÖRNEK private sub text1_change() end sub dim i,top for i=0 to 9 next top=top+val(text(i)) next label1=top end sub
ÖRNEK2 sub text1_change() end sub dim kare kare=val(text1.text)^2 text2.text=kare end sub