Visual Basic dilindəki funksiyalar

Visual Basic dilindəki funksiyalar.
Proqramlaşdırma dilindəki funksiya anlayışı riyaziyyatdakı funksiya anlayışına yaxındır. Funksiyanın bir və ya bir neçə arqumenti ola bilər. Çoxarqumentli funksiyada arqumentlər vergüllə ayrılır: FunksiyaAdı (ArqumentlərSiyahısı).
Arqumentlərin hər yığımına funksiyanın bir qiyməti uyğun gəlir. Aqumentlərin qiymətləri verildikdə proqramlaşdırmada deyirlər ki, funksiya öz qiymətini alır (qaytarır).
106 əgər mənimsətmə operatorunun qarşısında, yəni bərabərliyin sağ tərəfində hesablanacaq ifadə varsa, hesablamanın nəticəsi
Funksiyalar adətən ifadələrin tərkibinə daxil olur. Funksiyaların müxtəlif tipləri vardır: verilən tiplərinin dəyişdirilməsi funksiyaları, riyazi funksiyalar, sətri funksiyalar, maliyyə funksiyaları, tarix funksiyaları və s. Funksiyanın tipi arqumentin və funksiyanın özünün aldığı mümkün qiymətlərlə təyin edilir.
Verilən tiplərinin dəyişdirilməsi funksiyaları. Bunlar veriləni bir tipdən başqa tipə çevirir.
Val funksiyası. Bu, sətrin qiymətini ədədə çevirir. Val (Sətir$) kimi yazılır. Yəni bunun arqumenti sətir, qiyməti isə ədəddir. Məsələn, Val (―2012‖) funksiyasının qiyməti 2012-dir. Bu funksiya mətn sahələrinin Text xassəsinin sətri qiymətlərini ədədə çevirmək və onların üzərində hesabi əməllər aparmaq üçün istifadə edilir.
İndi Val funksiyasından istifadə etməklə, ―adi kalkulyator‖ proqram əlavəsi yarat- mağa çalışaq. Bu proqram əlavəsi 10-luq tam ədədlər üzərində hesab əməlləri icra etməli və nəticələri formanın mətn sahələrinə çıxarmalıdır. Sözü gedən proqram əlavəsinin qrafik interfeysini yaratmaq üçün forma üzərində 3 mətn sahəsi107 və toplama, çıxma, vurma, bölmə və işin bitməsi kimi əməlləri reallaşdıran 5 hadisəvi prosedur düymələri yerləşdirək.
Bunun üçün:
Yeni layihə yaratmalı. Forma üzərində 3 mətn sahəsi və 5 düymə yerləşdirib aşağıdakı adları mənimsətməli: txt1, txt2, txt3, cmdPlus, cmdUmn, cmdDelen, cmdExit.
cmdPlus_Click proseduru txt1 və txt2 mətn sahələrindəki Text xassəsinin ədədi qiymətlərini toplayıb txt3 mətn sahəsinə çıxarmalıdır. Bu, aşağıdakı proqram kodu ilə reallaşdırılır:
Sub cmdPlus_Click
Txt3.Text = Val(txt1.Text)+Val(txt2.Text) End Sub
Çıxma, vurma və bölmə prosedurları da buna analojidir.
Hər bir düymə üçün hadisəvi prosedur proqramı tərtib etməli.
Mətn sahələrinin Alignement (düzləndirmə) xassəsi üçün Right Justufy qiyməti verilməlidir.
Layihəni icraya buraxmalı. Soldakı iki mətn sahəsinə ədəd daxil edib müvafiq hesab əməli düyməsini basmalı. Sağdakı mətn sahəsində nəticə görünəcəkdir.
107 ikisi daxil ediləcək ədədlər üçün, biri nəticə üçün
Layihəni \textbook\VB\prjVB3\ adı ilə saxlamalı.
Val funksiyasının arqumentləri olan sətri ifadələr 8-lik say sistemində &O, 16-lıq say sistemində isə &H sözönü ilə verilir. Məsələn, Val (―&O3720‖) və Val (―&H7D0‖) funsiyalarının ədədi qiyməti 10-luq say sistemində 2000 ədədidir.
Str, Hex, Oct funksiyaları. Bu funksiyalar 10-luq, 16-lıq və 8-lik ədədləri sətrə çevirir. Məsələn, Str(2000), Oct (2000), Hex (2000) 10-luqdakı 2000 ədədidir ki, bunu da Oct funksiyası 3720-yə, Hex funksiyası H7D0-a çevirir. Yəni bu funksiyalar Val funksiyasının əksinə işləyir.
İndi tam ədədləri 10-luqdan 8-liyə və 16-lığa və əksinə çevirən layihə yaradaq. Bunun üçün:
1. Yeni layihə yaratmalı. Forma üzərində ədədləri daxil etmək və nəticəni çıxarmaq üçün txtDec, txtOct, txtHex adlı 3 mətn sahəsi və cmdDecOct, cmdDecHex, cmdOctDec və cmdHexDec adlı 4 əmr düyməsi və mətn sahələri üzərində izahedici metkalar (lblDec, lblOct, lblHex) yaratmalı. txtOct və txtHex mətn sahələrinə sətri formada daxil ediləcək ədədlərə konkatenasiya (sətrlərin birləşdirilməsi) əməlinin tətbiqi ilə ―&O‖ və ―&H‖ sözönlərini birləşdirməli. Alınmış 8-lik və ya 16-lıq ədədləri Val funksiyasından istifadə etməklə sətri formadan 10-luq ədədi formaya çevirməli.
cmdOctDec_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdOctDec_Click()
txtDec.Text = Val(―&O‖ +txtOct.Text)
End Sub
cmdHexDec_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdHexDec_Click()
txtDec.Text = Val(―&H‖ +txtHex.Text)
End Sub
txtDec mətn sahəsinə daxil edilən ədədləri əvvəlcə Val funksiyasının köməyi ilə sətri formadan ədədi formaya, sonra isə 10-luq ədədləri Oct və Hex funksiyalarından istifadə etməklə sətri 8-lik və sətri 16-lıq formaya çevirməli.
Bunun üçün:
cmdDecHex_Click() hadisəvi proseduru aşağıdakı kimi yazmalı: Sub cmdDecHex_Click()
txtHex.Text = Hex(Val(txtDec.Text))
End Sub
cmdDecOct_Click() hadisəvi proseduru aşağıdakı kimi yazmalı: Sub cmdDecOct_Click()
txtOct.Text = Oct(Val(txtDec.Text)) End Sub
Layihəni icraya buraxmalı. Soldakı mətn sahəsinə 10-luq ədəd daxil edib, 8-liyə və 16-liğa çevirməli.
Layihəni \textbook\VB\prjVB4\ adı ilə saxlamalı.
Asc funksiyası. Bu, sətri kodlaşdırma cədvəlindəki ədədi koda çevirir. Yəni həfin ədədi kodunu ekrana çıxarır. Asc(Sətir$) şəklində yazılır.
Chr funksiyası. Bu, ədədi kodu simvola çevirir. Chr(Ədəd) kimi yazılır.
İndi daxil edilən simvolu ədədi koda çevirən və simvolları ədədi kodlar üzrə çap edən layihə yaradaq.
Bunun üçün:
Yeni layihə yaratmalı. Forma üzərində txtS və txtN adlı 2 mətn sahəsi və cmdS və cmdT adlı iki əmr düyməsi yerləşdirməli. Asc() funksiyasından istifadə etməklə txtS mətn sahəsinə daxil ediləcək simvolun ədədi kodunu txtN mətn sahəsinə çap etməli.
cmdS_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdS_Click() txtN.Text = Asc(txtS.Text) End Sub
Mənfi bir (-1) addımla işləyən sayğac düzəldib simvol kodlarını böyükdən (255) kiçiyə ardıcıl çap etməli.
Bunun üçün cmdT_Click() hadisəvi prosedurunu aşağıdakı kimi yazmalı:
Dim strA As String, N As İnteger Sub cmdT_Click()
For N=255 To 33 Step -1
strA = Chr(N) Print N; ― – ―; strA Next N
End Sub
Layihəni icraya buraxmalı.
Layihəni \textbook\VB\prjVB5\ adı ilə saxlamalı.
Riyazi funksiyalar.
Riyazi funksiyalarda həm arqumentlər, həm də funksiyanın özü ədədi qiymətlər alır. Visual Basic dilində 12 riyazi funksiya vardır. Buraya: Sin(), Cos(), Tan(), Atn(), Sqr()108, Log(), Exp()109, Rnd()110 və s. aiddir.
Riyazi funksiyalardan istifadə etməklə yuxarıda tərtib etdiyimiz ―Adi kalkulyator‖ layihəsinin imkanlarını genişləndirib onu ―Mühəndis kalkulyatoru‖na çevirməyə çalışaq.
Bunun üçün:
―Adi kalkulyator‖ layihəsini açmalı. Formaya cmdSin, cmdCos, cmdTan, cmdSqr, cmdSt111 və cmdLog düymələrini əlavə etməli. Bu düymələrin hər biri üçün hadisəvi proseduru aşağıdakı kimi yazmalı:
Məsələn, qüvvətə yüksəltmə üçün cmdSt_Click() aşağıdakı kimi olacaqdır:
Sub cmdSt_Click() txt3Dec.Text=Val(txt1Dec.Text)^Val(txt2Dec/Text) End Sub
Qalan funksiyaları Visual Basic dilinin qurulmuş funksiyaları kimi, yəni Sin(), Cos(), Tan(), Sqr() və Log() şəklində daxil etməli.
Layihəni icraya buraxmalı.
232 ədədini hesablamalı. Bunun üçün 2 və 32 ədədlərini
daxil edib, X^Y düyməsini basmaq lazımdır.
Bu layihəni \textbook\VB\prjVB6\ adı ilə saxlamalı.
Sətri funksiyalar.
Sətri funksiyalarda ya arqumentlər, ya da funksiyanın özü sətri qiymət alır.
Sətrin uzunluğunu təyin edən funksiya. Bu, Len(Sətir$) kimi yazılır və sətri ədədə çevirir. Yəni sətrdəki simvolların sayını çap edir.
Fərz edək ki, Len funksiyasının arqumenti ―informatika‖ sətridir. Bu halda tam ədədli sətri dəyişən olan intDlinaStroki = Len(―informatika‖) = 11 olacaqdır.
Sətri bölmə funksiyaları. Bunlar sətrin solundan, sağından və ortasından müəyyən uzunluqda hissə, məsələn, Left$(Stroka$, Dlina$) funksiyası Stroka$ sətrinin birinci
108 kvadrat kökalma
109 Üstlü funksiya
110 Təsadüfi kəmiyyətlər generatoru
111 Bu düymənin üstündə (X^Y) göstərməli.
simvolundan başlayaraq Dlina$ parametri qədər, Right$(Stroka$, Dlina$) funksiyası Stroka$ sətrinin son simvoldan başlayaraq Dlina$ parametri qədər, Mid$(Stroka$, Pozisiya$, Dlina$) isə Stroka$ sətrinin Pozisiya$ parametrində göstərilən simvolundan başlayaraq Dlina$ parametri qədər hissə ayırıb çap edir.
Fərz edək ki, Stroka$ =‖informatika‖, bu halda, Left$ (―informatika‖, 2) = ‖in‖,
Right$ (―informatika‖, 4) = ‖tika‖, Mid$(―informatika‖, 3, 5) = ―forma‖ olacaqdır.
İndi ―sətri kalkulyator‖ yaradaq. Bunun üçün:
Forma üzərində sətr daxil etmək üçün txt1 və txt2, nəticəni çap etmək üçün txt3 mətn sahələri və konketenasiya (birləşdirmə) əməlini reallaşdıran cmdCon əmr düyməsi yerləşdirməli.
cmdCon_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdCon_Click()
txt3.Text = txt1.Text + txt2.Text
End Sub
Layihəni icraya buraxmalı. txt1 və txt2 mətn sahələrinə sətr daxil edib, əmr düyməsini sıxmalı. Nəticə txt3 mətn sahəsində görünəcəkdir.
İndi Mid$(stroka$, bytM,bytN) funksiyasından istifadə etməklə sətrin dəyişdirilmə- sinə baxaq.
Bunun üçün:
Forma üzərində txt1Mid, txt2Mid, bytM, bytN mətn sahələri və cmdMid əmr düyməsi yerləşdirməli.
cmdMid_Click() hadisəvi proseduru aşağıdakı kimi yazmalı:
Sub cmdMid_Click()
txt3.Text = Mid$(txt1.Text, Val(txt1Mid.Text), Val(txt2Mid.Text)) End Sub
Layihəni icraya buraxmalı.
İndi sətrin uzunluğunu göstərən əməli icra etmək üçün forma üzərində cmdLen düyməsi yerləşdirməli və cmdLen_Click() prosedurunu aşağıdakı kimi yazmalı:
Sub cmdLen_Click() txt3.Text = Len(txt1.Text) End Sub
Layihəni icraya buraxmalı.
İndi forma üzərində cmdAsc əmr düyməsi yerləşdirib, cmdAsc_Click() prosedurunu aşağıdakı kimi yazmalı:
Sub cmdAsc_Click() txt3.Text = Asc(txt1.Text) End Sub
Layihəni icraya buraxmalı.
Bu layihəni \textbook\VB\prjVB7\ adı ilə saxlamalı.
Daxiletmə və çıxarma funksiyaları.
İnputBox112 funksiyası. Bu, verilənləri dialoq panelindən daxil etmək üçündür. Bu funksiyanın arqumentləri 3 sətirdən ibarətdir və funksiyanın aldığı qiymət də sətirdir: İnputBox (Dəvət$, Başlıq$,[Susma$]).
Bu funksiya icra edilərkən ekrana mətn sahəsi olan dialoq paneli açılır. Panelin başlıq sətrində Başlıq$ arqumentinin, panelin özündə isə Dəvət$ arqumentinin qiyməti çap edilir. Üçüncü arqument Susma$ varsa, cap edilir, yoxdursa, ona aid pəncərə açılmır. Bu funksiyanın qiyməti istifadəçinin mətn sahəsinə daxil etdiyi sətrdən ibarətdir.
MsgBox113 funksiyası. Bu funksiya xəbəri forma üzərinə deyil, xüsusi xəbərlər
panelinə çıxarır. Bunun qiymətini hər hansı dəyişənə mənimsətmək mümkündür. MsgBox funksiyasının sintaksisi aşağıdakı kimidir:
MsgBox(Xəbər$[,ƏdədiKod1+ƏdədiKod2][,Başlıq$])
Xəbər$ sətri xəbərlər panelinə çıxarılır. Panelin xarici görünüşünü ƏdədiKod1+ƏdədiKod2 arqumenti təyin edir. Başlıq$ sətri panelin sərlövhəsinə çıxarılır. Kvadrat mötərizədəki arqumentlər məcburi deyillər. ƏdədiKod1 piktoqramı, ƏdədiKod2 düymələr yığımını təyin edir. Məsələn:
ƏdədiKod1
|
Piktoqram
|
ƏdədiKod2
|
Düymələr yığımı
|
16
|
|
0
|
Ok
|
32
|
?
|
1
|
Ok, Отмена
|
48
|
!
|
2
|
Стоп, Повтор, Пропустить
|
64
|
i
|
3
|
Да, Нет, Отмена
|
112 İnputBox - Daxiletmə pəncərəsi
113 MsgBox – Xəbərlər paneli
|
|
4
|
Да, Нет
|
|
|
5
|
Повтор, Отмена
|
İki ədədi kodun cəmi (ƏdədiKod1+ƏdədiKod2) olan bir ədədlə eyni vaxtda həm piktoqramı, həm də düymələr yığımını təyin etmək olar. Məsələn, 36 ədədinə 32+4 kimi baxmaqla, ? piktoqramını və Да, Нет düymələrini panel üzərinə çıxarmaq mümkündür. Düymə basılan kimi MsgBox funksiyasının qiyməti hesablanır. Funksiyanın qiyməti basılan düymədən asılıdır. Məsələn:
Basılan düymə
|
Funksiyanın qiyməti
|
OK
|
1
|
Отмена
|
2
|
Стоп
|
3
|
Повтор
|
4
|
Пропустить
|
5
|
Да
|
6
|
Нет
|
7
|
İndi biliyi yoxlayan layihə yaradaq. Bunun alqoritmi aşağıdakı əməliyyatları özündə birləşdirməlidir:
Sualı ekrana çıxarmaq;
Klaviaturadan daxil edilən cavabı yadda saxlamaq;
Daxil ediləni düzgün cavabla müqayisə etmək və bu şərtin ödənib-ödənmə- məsindən asılı olaraq müxtəlif əməllərin reallaşdırılması.
Əvvəlcə İnputBox və MsgBox funksiyalarından istifadə etməklə biliyi yoxlanılanı qeydiyyata almağı reallaşdırmaq lazımdır.
“Biliyin yoxlanması” layihəsi
Forma üzərində cmd1 düyməsi yerləşdirməli və Caption xassəsi üçün ―Yoxlamanı başla‖ qiymətini verməli. Sonra isə cmd1_Click() hadisəvi prosedurunu hazırlamalı.
İnputBox funksiyası ilə adını və soyadını soruşub strA sətri dəyişəninə mənimsətməli. MsgBox funksiyasının köməyi ilə qeydiyyataalmanın nəticəsini ekrana çıxarmalı. Bu işi yerinə yetirmək üçün aşağıdakı proqram kodunu yazmalı:
Dim strA As String, bytB As Byte Sub cmd1_Click()
strA = inputBox (―Adınızı və Soyadınızı daxil edin:‖,‖Qeydiyyat‖)
bytB = MsgBox (―Hörmətli ― + strA + ―, biliyinizin yoxlanması üçün hazırsınızmı?‖, 36, ―Qeydiyyat bitdi‖)
End Sub
Layihəni icraya buraxmalı və ―Yoxlamanı başla‖ düyməsini basmalı. Qeydiyyat panelinin mətn sahəsində ad və soyadı daxil etməli.
MsgBox funksiyasının ikinci arqumenti (36) ? piktoqramını və Да, Нет düymələrini panel üzərinə çıxarır. Да düyməsi üçün bytB ədədi dəyişəninə 6, Нет düyməsi üçün 7 mənimsədilməlidir.
Şərt operatorunun köməyi ilə proqramdan çıxmaq və ya yoxlamanı davam etdirmək olar. Bunun üçün: İf bytB =7 Then End yazmaq kifayətdir.
Sual İnputBox funksiyasının köməyi ilə verilir. Cavabın düzgünlüyü İf...Then...Else şərti keçid operatorunun köməyi ilə yoxlanır. Cavabın düzgün olub-olmaması barədə informasiyanı MsgBox funksiyası ikinci arqumentin 0 qiymətində OK düyməsi ilə ekrana çıxarır.
Aşağıdakı proqram kodu düzgün cavabları yığır. Yanlış cavabların sayı bytN ədədi dəyişənində yığılır:
strC = İnputBox (―1 bayt neçə bitdir?‖, ―Birinci sual‖)
İf strC = ―8 bit‖ Then MsgBox (―Düzdür!‖, 0, ―Birinci sual‖) Else MsgBox (―Səhvdir!‖, 0, ―Birinci sual‖): bytN = bytN+1
strC = İnputBox (―10-luqdakı 5 ədədini 2-lik say sisteminə çevirin:‖, ―İkinci sual‖)
İf strC = ―101‖ Then MsgBox (―Düzdür!‖, 0, ―İkinci sual‖) Else MsgBox (―Səhvdir!‖, 0, ―İkinci sual‖): bytN = bytN+1
MsgBox (―Hörmətli ― + strA + ‖, ―Siz‖ +str(bytN) + ‖suala səhv cavab verdiniz‖, 0,
―Sorğu bitdi‖
Layihəni icraya buraxmalı. Qeydiyyatdan keçib, suallara cavab verməli. Nəticə MsgBox funksiyasının xəbərlər panelində çap ediləcəkdir.
Bu layihəni \textbook\VB\prjVB8\ adı ilə saxlamalı.
Tarix və vaxt funksiyaları.
Date funksiyası. Bu, cari tarixi Date dəyişəninə mənimsədir. Date dəyişəninin qiyməti
#Ay/Gün/İl# kimi 3 ədəddən ibarətdir.
Date layihəsinin proqram kodu aşağıdakı kimidir:
Dim dtmA, dtmB As Date Sub cmd1_Click()
dtmA = Date
dtmB = #1/1/2007#
Print ―Bu gün ―; dtmA
Print ―Üçüncü minilliyin əvvəlindən ―; dtmA – dtmB; ― gün keçmişdir‖
End Sub
Layihəni icraya buraxıb nəticəni ekranda görmək olar. Bu layihəni \textbook\VB\prjVB9\ adı ilə saxlamalı.
Time$ funksiyası. String (sətri) tipli bu funksiya cari vaxtı mətn sahəsinə çıxarır. Vaxt #Saat: Dəqiqə: Saniyə# formatında verilir. Vaxtın qiymətinin dövri təzələnməsi üçün Timer obyektindən istifadə edilir. Proqramın icrası zamanı Timer obyekti forma üzərində görünmür. Bu, sistem saatının göstəricisini yoxlayır. Timer hadisəsinin dövrülüyü İnterval xassəsi ilə təyin edilir. Bu xassə millisaniyə ölçüsü ilə verilir və 0-dan 65535-dək dəyişə bilir. Timer hadisəsinin hər saniyə baş verməsi üçün İnterval xassəsinə 1000 mənimsədil- məlidir.
İndi ―Saniyəölçən‖ layihəsini yaradaq. Bunun üçün:
1. Timer obyektini forma üzərində yerləşdirib onu tmr1 adlandırmalı. İnterval xassəsinə 1000 ədədini mənimsətməli. Forma üzərində txtTime mətn sahəsi yaratmalı. tmr1_Timer() hadisəvi proseduru aşağıdakı proqram kodu şəklində daxil etməli:
Sub tmr1_Timer() txtTime.Text = Time$ End Sub
2. Layihəni icraya buraxmalı.
Bu layihəni \textbook\VB\prjVB10\ adı ilə saxlamalı.
Visual Basic dilinin qrafik imkanları.
Formalar (Form) və ya qrafik pəncərələr (PictureBox) üzərində müxtəlif qrafik primitivlər114 çəkmək üçün aşağıdakı qrafik metodlardan istifadə etmək olar:
Scale – forma və ya qrafik pəncərəyə koordinat sistemi və miqyas daxil etməyə imkan verir: object.Scale (X1, Y1) – (X2, Y2). Bu metodun X1,Y1 arqumentləri obyektin yuxarı sol, X2,Y2 isə aşağı sağ küncünün koordinatlarıdır.
Pset – verilmiş koordinata verilmiş rəngli nöqtə qoymağa imkan verir: object.Pset (X,Y) [,color]. Bu metodun X,Y arqumentləri nöqtənin koordinatları, color isə xəttin rəngidir. Color arqumentinin qiymətini aşağıdakı üsullarla:
Rəngi təyin edən vbBlack – qara, vbBlue – göy, vbGreen – yaşıl, vbCyan – mavi, vbRed – qırmızı, vbMagenta – çöhrəyi (yasəməni), vbYellow – sarı, vbWhite – ağ kimi 8 sabitdən biri ilə;
Arqumenti 16 əsas rəngi ifadə edən 0-dan 15-dək nömrələrdən ibarət olan QBColor
(number) funksiyasının köməyi ilə;
RGB (bytRed, bytGreen, bytBlue) funksiyasının köməyi ilə vermək olar. Bu funksi- yanın arqumentləri olan hər üç parametr 0-dan 255-dək qiymətlər ala bilir. Bunların
nəticəsi olan funksiyanın qiyməti Long tipli ədəd olmaqla 0-dan 16777215 ( 2563 1)
diapazonunda dəyişə bilir. Yəni, rəng palitrası 16 milyondan artıq çalara malikdir. Hər bir
rəng
bytRe d
256
bytGreen
2562
bytBlue düsturu ilə hesablanan ədəd vasitəsilə verilir.
Color arqumenti verilmədikdə şəkil qara rəngdə çıxır.
Line – müəyyən rənglə rənglənmiş xətt çəkmək üçün istifadə edilir:
Bu metod: object.Line (X1,Y1) – (X2, Y2) [, color] [, B] [F] kimi verilir. X1 və Y1 düzbucaqlının yuxarı sol küncnün, X2 və Y2 aşağı sağ küncünün koordinatlarını, color xəttin rəngini, B bayraqcığı düzbucaqlı çəkməyi, F bayraqcığı rəngləməyi ifadə edir.
Circle – çevrə və oval çəkir.
Bu metod: object.Circle (X, Y), radius [, color, start, end, aspect] kimi verilir. X, Y çevrənin mərkəzinin koordinatlarını, radius çevrənin radiusunu, color çevrənin rəngini, start və end şüa bucağının əvvəlini və sonunu, aspekt sıxma əmsalını göstərir.
Qraf ik met od ―f orma‖ (Form) ob ye kt inə tət biq ed ilə rk ən, ob ye ktin a dın ın yaz ılışında
object sözünü yazmamaq olar.
İndi y=sinx funksiyasınin qrafikini qurmaq üçün layihə yaradaq.
114 primitiv - ibtidai
“Funksiyanın qrafikinin qurulması” layihəsi.
Forma üzərində qrafikin qurulmasının həyata keçirilməsi üçün picGraph qrafik sahəsi yerləşdirməli.
Proqram kodunun aydın olması üçün ona izahlar (şərhlər) daxil etmək məqsədə uyğundur. Şərhlər apostrofla başlanır.
Forma üzərində cmd1 düyməsi yaratmalı və hadisəvi proseduru aşağıdakı kimi yazmalı:
Dim sngX As Single, int As İnteger Sub cmd1_Click()
‗Miqyasın daxil edilməsi
picGraph.Scale (-10, 2)-(10, -2)
‗Qrfikin qurulması
For sngX = -10 To 10 Step 0.01 picGraph.PSet (sngX, Sin(sngX)) Next sngX
‗X oxu
picGraph.Line (-10, 0)-(10, 0)
For intİ = -10 To 10
picGraph.PSet (intİ, 0) picGraph.Print intİ Next intİ
‗Y oxu
picGraph.Line (0,2)-(0, -2)
For intİ = -2 To 2
picGraph.PSet (0, intİ) picGraph.Print intİ Next intİ
End Sub
Layihəni icraya buraxmalı və \textbook\VB\prjVB11\ adı ilə saxlamalı.
Animasiya115. Animasiya, multiplikasiyada olduğu kimi, kadrların (şəkillərin) əvəzlənməsi prinsipi ilə yaradılır. Hərəkəti imitasiya (təqlid) edən proqram aşağıdakı mərhələlərdən ibarət olmalıdır:
ekranda şəklin yaradılması;
şəklin gözlə görünməsi üçün pauza yaradılması;
şəklin korreksiyası (dəyişdirilməsi).
“Dairənin hərəkəti” layihəsi.
Dairənin hərəkət etməsi üçün forma üzərində picAnim adlı mətn sahəsi yaratmalı.
OX oxu üzrə hərəkəti dövrlə reallaşdıraq. Animasiya effektini almaq üçün dairəni göy rənglə rəngləyib silmək lazımdır. Rəngli dairə almaq üçün FillColor xassəsinə qiymət vermək (rəngləyəndə vbBlue, siləndə vbWhite) lazımdır. FillStule xassəsi üçün verilən qiymət Transparent (şəffaf) və Solid (tünd) ola bildiyindən, Solid vermək lazımdır.
Dairənin hərəkət sürətini116 tənzimləmək üçün şəkilçəkmə ilə şəkli silmə arasında boş
dövr yaradıb müvafiq sayda təkrarlamalardan istifadə etmək olar.
Forma üzərində cmdStart düyməsi yaradıb onun üçün aşağıdakı hadisəvi proseduru yazmalı:
Dim intX As Integer, lngI As Long Private Sub cmdStart_Click()
‗Miqyas
picAnim.Scale (-10, 10)-(10, -10)
‗Animasiya
For intX = -10 To 10
‗Şəkilçəkmə picAnim.FillColor = vbBlue
picAnim.Circle (intX, 0), 1, vbBlue
‗Şəkli silmənin yubadılması For lngI = 1 To 10000000 Next lngI
‗Şəklin silinməsi picAnim.FillColor = vbWhite
115 Hər hansı obyektin ekranda hərəkət illüziyası
116 Şəkillərin bir-birini əvəzetmə sürətini
picAnim.Circle(intX, 0),1,vbWhite
Next intX
End Sub
Layihəni Start düyməsi ilə icraya buraxmalı və \textbook\VB\prjVB12\ adı ilə saxlamalı.
Visual Basic dilində ümumi prosedurlar
Prosedurların görünmə oblastı.
Mürəkkəb alqoritmlərin tərtibi zamanı müəyyən alt məsələlərin həllini reallaşdıran əməllər ardıcıllığını seçib ayırmaqla köməkçi alqoritmlər yaratmaq və lazım gəldikcə əsas alqoritmə çağırıb istifadə etmək məqsədəuyğun olur. Prosedur dillərdə buna alt proqram deyilir. Obyekt-istinad dillərində köməkçi alqoritmlər ümumi prosedurların köməyi ilə reallaşdırılır.
Ümumi prosedurun müəyyən edilməsi. Hər bir ümumi prosedura unikal (təkrar olunmaz) ad (prosedurun adı) verilir və prosedurun giriş və çıxış parametrlərinin siyahısı müəyyən edilir.
Giriş parametrlərin siyahısı dəyişənlər yığımından ibarətdir. Bunların qiymətləri prosedurun icrasından əvvəl məlum olmalıdır.
Çıxış parametrlərin siyahısı prosedurun icrasından sonra qiymətləri bəlli olan dəyişənlər yığımından ibarətdir.
Ümumi prosedurun sintaksisi aşağıdakı kimidir: Sub ProsedurAdı (ParametrlərSiyahısı) Proqram kodu
End Sub
Ümumi prosedurun çağırılması. Ümumi prosedur digər prosedur tərəfindən çağırılır.
Ümumi prosedur ya Call operatoru ilə, ya da öz adı ilə çağırılır.
Call operatoru ilə çağırma zamanı sintaksis aşağıdakı kimi olmalıdır:
Call ProsedurAdı (ParametrlərSiyahısı)
Prosedurun öz adı ilə çağırılması zamanı isə sintaksis:
ProsedurAdı ParametrlərSiyahısı kimi, yəni, parametrlərin siyahısı mötərizəsiz yazılmalıdır.
|