9.2. Select Case құрылымы.
Сабақты келесі мысалды шешуден бастау ұсынылады.
1-мысал. Калькулятор бағдарламасы (Сабақ 5.1 з мысалды қараңдар).
Жоба кодын былайша тоықтырыңдар:
А) Мәтіндік өріске басқа символдарды енгізгенде сандардан және Backspace перненсінен басқа пернелерге «Бұл сан емес» деген хабарлама шығару керек.
Ә) Екінші мәтіндік өріске 0 санын енгізгенде және бөлу операциясын таңдағанда және бөлу операциясын таңдағанда «Нөлге бөлу» деген хабарлама шығару керек, бағдарлама фокусты берілген өріске қайтару керек.
Б) Бірінші мәтіндік өріске сан енгізілуі керек, ал екіншісіне сол кезде енгізілетін санның дәрежесін көрсету керек.
Visual Basic жүйесіне MsgBox функциясы қолданушы адрестеген хабарламаны шығару үшін берілген, және қолданушы реакциясын басылатын перненің сандық кодын күтеді.
K= MsgBox(Msg, Button, Caption, Help File, Context)
MsgBox функциясының жалғыз міндеті параметрі Msg мәтін хабарламасы болып табылады. Егер тек қана ол берілсе онда диалогтық терезеге Msg хабарламасымен бірге тек қана ОК батырмасы пайда болады.
Buutons, параметрі бүтін мәндерді ұсынады, диалогтық терезеде қандай батырмалар мен белгішелер орналастырылатынын анықтайды. Ол төрт қосылғыштың қосындысы сияқты қалыптасады:
Бірінші батырмалар жиынтығын анықтайды;
Екінші икондар типін;
Үшінші келісім бойынша батырмалардың реттік нөмірі;
Төртінші – модальдық режим. Соңғы қоыслғышқа шеткісі сирек келеді. Жиі қолданылатын тұрақтылар мен сәйкес сандық мәндер тізімі кестеде көрсетілген.
Сан Тұрақты Түсініктеме
|
Пернелер комбинациясы
0 VbOKOnly Тек қана ОК батырмасы
1 VbOKCancel Ok және Cancel (Отмена/ Болдырмау) батырмалары
2
3VbYesNoCancel Yes (Иә),No (Жоқ), Cancel (болдырмау) батырмалары
4VbYesNo Yes (Иә),No (Жоқ) батырмалары
5 VbRetryCancel Retry (Қайталау), Cancel (Болдырмау) батырмалары
Пиктограмманың түрлері
16 VbCritical Шеңбердегі тоқтату белгісі
32 VbQuestion Шеңбердегі сұрақ белгісі
48 VbExclamation Шеңбердегі леп белгісі
64 VbInformation Шеңбердегі әріп
Алғашқы келісім бойынша жұмыс
істейтін екпінді батырмалар нөмірі
0 VbDefaultButton1 1- нөмерлі батырма
256 VbDefaultButton2 2- нөмірлі батырма
512 VbDefaultButton3 3- нөмірлі батырма
768 VbDefaultButton4 4-нөмірлі батырма, оның рөлін Help (анықтама)
Орындайды
|
MsgBox функциясының беретін сандық мәндерін, қолдануышалр басатын батырмалар анықтайды
1-OK
2- Cancel (Болдырмау)
3-Abort (Тоқтату)
4-Retry (Қайталау)
5-Ignore (Өткізу)
6-Yes (Иә)
7-No (Жоқ)
Ұсынылған мысалда бағдарлама мәтіндік өріске енгізілген ақпаратты өңдеуі керек, ол үшін Select case құрылымын пайдаланған өте ыңғайлы.
Select case конструкциясы бағдарламада бірнеше If…Then…Else… кострукция блогындағыдай шарттарды өңдеуге мүмкіндік береді. Бұл құрылымы өрнектің әр мүмкін жағдайында Сase операторларын таңдаудан және өрнектерді салыстырудан тұрады. Бұл құрылым келесі жолмен жұмыс істейді. Алдымен Visual Basic құрылым өрнегіндегі берілген мәндерді есептейді.
Егер қиылысатын мәндер табылса Сase операторында берілген командалар орындалады. Басқару құрылымы орындалып біткен соң құрылым келесі End Select қызметші сөзіне беріледі.
Select case құрылымның синтаксисі келесі түрде болып келеді:
Select case Салыстыратын мән
Сase
1 құрылым
Сase 2 мән
2 құрылым
...................
End Select
Алғашқы Select Сase қызметші сөзінде орналасқан жанында Салыстыратын мән параметрі орналасқанын көрсететін қрылымдар бірнеше мәндерде тексеріледі. Ары қарай Сase қызметші сөзінен басталатын командалар тобы кездесді. Егер Салыстырмалы мән параметрі ағымдағы Сase операторындағы мәнге тең болса онда келесі Сase қызметші сөздерінің арасында орналасқан командалар орындалады.
Select case онда орналасқан құрылым тізбектірінің біреуін ғана орындайтынына көңіл бөліңдер. Шарттардың біреуінің ғана мәні True болғаннан кейін және сәйкес Select case құрылымы орындалғаннан кейін ол өзінің жұмысын аяқтайды. Қалған шарттарды тексермейді.
Толықтырулар енгізгеннен кейінгі бағдарлама коды:
Private Sub Command1 Click()
Text3.Text=Val(Text1.Text) + Val(Text2.Text)
End Sub
Private Sub Command2 Click()
Text3.Text=Val(Text1.Text) - Val(Text2.Text)
End Sub
Private Sub Command3 Click()
Text3.Text=Val(Text1.Text) * Val(Text2.Text)
End Sub
Private Sub Command4 Click()
If Text2.Text=”” Then
MsgBox (‘Нөлге бөлу’)
Text2.SetFocus
Else
Text3.Text=Val(Text1.Text) / Val(Text2.Text)
End if
End Sub
Private Sub Command5 Click()
Text3.Text=”()”
Text1.Text=””
Text2.Text=””
Text1.SetFocus
End Sub
Private Sub Command6 Click()
Text3.Text=Val(Text1.Text) ^ Val(Text2.Text)
End Sub
Private Sub Command7 Click()
Text3.Text=Sqr(Text1.Text)
End Sub
Private Sub Text1 KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode=8 Then GoTo 1
Select Case KeyCode
Case 96 To 105, 48 To 57
Case Else
MsgBox (‘Бұл сан емес’)
End Select
1:End Sub
Private Sub Text2 KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode=8 Then GoTo 2
Select Case KeyCode
Case 96 To 105, 48 To 57
Case Else
MsgBox (‘Бұл сан емес’)
End Select
2:End Sub
(48-57 және 96-105 аралығындағы сандық пернелер коды, 8 Backspace пернесінің коды)
2-мысал. Студенттердан қай пәннен кім қандай баға алғанын, оған сәйкес мәтінге қандай әсер алатынын сұрайтын бағдарлама жазыңдар.
Dim Otmetka As Long
Private Sub Command1 Clicl()
Otmetka=InputBox(“Сен қандай баға алдың?”)
Select Case Otmetka
Case 1,2
Form1.Print ”Сұмдық”
Case 3
Form1.Print “Онша емес”
Case 4
Form1.Print “Жаман емес”
Case 5
Form1.Print “Сен генисің”
Case Else
Form1.Print “Мұндай баға болмайды”
End Select
End Sub
9.3. Циклдер
Адам өзінің тәжірибелік саласына әрқашан шешілу барысында бір әрекеттің қайталап кездесе беретін есептерге кездеседі. Мұндай есептердің шешілуі циклдік алгоритмдер арқылы ұйымдастырылады.
Берілген тақырыпта циклдің екі түрі қарастырылады: қайталау саны белгілі және белгісіз циклдер. Циклдерді ұйымдастыру үшін қайталау командалары және алгоритмді шағын түрде жазуға мүмкіндік беретін бірнеше әртүрлі әрекеттердің орындалуына сәйкес параметрлі қайталау операторы қолданылады. Бұл компьютерді қолдану барысында өте маңызды. Бір жағынан, компьютер жұмысының жоғары жылдамдығы командалар сериясының бірнеше рет қайталанатын алгоритмдер орындауға мүмкіндік береді. Бір жағынан бұл алгоритмдерді қолдану күшті компьютерлердің әсерлі жұмысын қамтамасыз етеді.
Сабақты Qbasic бағдарламалау тілін оқып-үйрену барысында қарастырған циклдің түрлері мен анықтамасынан бастауға болады (оқулықтағы 2.6. тақырыпты қара).
Қайталау саны белгілі Қайталау саны белгісіз
болған жағдайда болған жағдайда
for I=Iбаст to Iсоңғы [Step Iқадам] While шарт
цикл денесі цикл денесі
Next I Wend
Алдын ала шарт Келесі шарт
бойынша қайталау бойынша қайталау
Do[While/Until условие] Do
цикл денесі цикл денесі
Loop Loop[While/Untilшарт]
Ары қарай келесі мысалды шешуді ұсынуға болады.
1-мысал. Қазына бойынша түсетін пайданы есептеу бағдарламасын жазу. Бағдарлама жай және күрделі пайыздарды есептеуді қамтамасыз етуі қажет. Жай пайыздар салымының аяғында есептелінеді, ал күрделі салымдар – ай сайын есептеледі, және бастапқы қазынаның бастапқы санына қосылып отырады және келесі айда пайызы жаңа күнмен есептелінеді. Пішім ұсынылған түрі суретте келтірілген.
Код:
‘Есептеу батырмасын шерту
Private Sub Command1_Click ()
Dim sum As Single ‘жинақ соммасы
Dim pr As Single ‘пайыздық көрсеткіші
Dim srok As Integer ‘жинақ мерзімі
Dim dohod As Single ‘жинақ бойынша түсетін пайда
Dim buf As Single
Dim i As Integer ‘циклдің айнымалысы
‘алынған бастапқы деректер
sum=Val (Text1.Text)
srok=Val (Text2.Text)
pr= Val (Text3.Text)
If Option1.Value=True Then
‘Жай пайыздарға қосқыш таңдалынды
dohod=sum*(pr/100)*(srok/12)
Else
‘Күрделі пайыздарға қосқыш таңдалынады
buf=sum
For i=1 To srok
buf=buf+buf*(pr/100)
‘уақыт соңында барлық жинақ buf-ге жазылады
dohod= buf –sum
Next i
End If
sum=sum+dohod
Label4.Caption= “Пайда:”+Str(dohod)+Chr(13)+ 'уақыт соңында барлық жинақ:”+Str(sum)
End Sub
‘Жай пайыздарға қосқыш таңдалынады
Private Sub Option1_Click()
Label2.Caption= “Срок (дней):”
Label4.Caption= “ ”
End Sub
‘Күрделі пайыздарға қосқыш таңдалынады
Private Sub Option1_Click()
Label2.Caption= “Мерзім (ай):”
Label4.Caption= “ ”
End Sub
2-мысал. Шарлар үшбұрыш пішімінде былай бірінші қатарда бір шар, екіншіде екеу, үшіншіде –үшеу және т.б. етіп орналасқан. Егер N шар бар болса, онда, қанша қатар тұрғызуға болады? Бағдарлама құрыңдар. Пішімнің және бағдарламаның түрі мен үлгісі төменде көрсетілген.
Dim n As Long, p As Long, k As Long
Private Sub Command1_Click ()
n=Val(Text1.Text)
p=0
k=0
Do While p
k=k=+1
p=p+k
Loop
Text2.Text=Str(k)
End Sub
Private Sub Command2_Click ()
If MsgBox(“Қайта есептегін келе ме?”,4+32+0, “ ” )=6 Then
Text1.Text= “ ”
Text2.Text= “ ”
Text1.SetFocus
Else: End
End If
End Sub
10-дәріс. Базалық Image және PictureBox
компоненттері (1-сағат)
Негізгі мақсаты: Студенттерді Image және PictureBox базалық компоненттерінің тәсілдері оқиғалары, қасиеттері, ұсыныстарымен таныстыру: Нақты есептерді шешу барысында ол компоненттерді қолдану мүмкіндіктерін көрсету.
Білім мен білікке қойылатын талаптар: Студенттер Image және PictureBox базалық компоненттерінің әдістерін, тағайындалуын қасиеттерін білу керек; берілген компоненттерді қойылған есептерді шешуде қолдану білу керек.
Image және PictureBox базалық компоненттері. Тағайындалуы, қасиеттері, оқиғалары, тәсілдері.
Image және PictureBox-тің базалық компоненттері пішіннің белгілі жеріне графикалық ақпараттарды орналастыруға мүмкіндік береді (оқулық, 2.4 тақырыпты қара.)
PictureBox элементі өте тиімді, бірақ көп орынды және өндеу уақытын алады. Олар көбіне динамикалық объектілерге сай келеді: мысал, суреттер мен белгілерді орналастырғанда.
Image элементі –статикалық ортада құрылған суреттер мен белгішелерді өзгертпеу керек болған жағдайда пайдалануға ыңғайлы.
Қасиеттері:
Enabled, Height, Left, Name, Picture,Top, Visible, Width өздерін көбіне пішіннің балама қасиеттері сияқты көрсетеді. Бірақ та Height, Left, Top
Width объектінің координаталары жағдайында экранның басынан бастап жылжып өзгермей пішіннің бастапқы координатасынан бастап орнын ауыстырады.
Picture қасиеті элементте расторлық суретті (bitmap), немесе белгішені (icon) шығаруға мүмкіндік береді.
PictureBox элементі көбнесе негізгі пішіннің ішіндегі керек пішіндерге ұқсас болып келеді. Олар Image элементінде болмайтын қасиеттер қатары болады, мысалы, Font қасиеті.
Image элементінің суреттер терезесінде Stretch (қиыстыру) болмайтын өте маңызды қасиеті бар. Алғашқы келісім бойынша False мәніне теңеседі. Stretch қасиетінің мәні True-ға тең болса, сурет басқару элементі көлеміне жетеді.
Оқиғалар, элементтер тәсілдері:
Сипатталған басқару элементтері Click және DblClick оқиғаларына әсер етеді. Бұл оқиғаларды қарапайым және ең кең тарағандар қатарына жатқызуға болады.
Picture қасиеті PictureBox және Image басқару элементтерінде LoadPicture функциясын шақыру арқылы орнатылады.
Сонымен қатар, графикалық терезе Cls және Print тәсілдерімен сүйемелдейді.
Мысалы 1. Drag & Drop оқиғасы
Пішінге 1 Image объектісін орнатындар және келесі әрекеттерді көрсетіңдер:
Drag Icon –ico, bmp, cur, gif, jpg кеңейтілулі файлдарына жол көрсету (тышқан манипуляторы арқылы жылжытқанда Image объектісінде пайда болатын сурет);
Drag Mode -1 Авто;
Picture- ico, bmp, cur, gif, jpg кеңейтілулі файлдарына жол көрсету (Image объектісінде қозғалмаған күйде пайда болатын сурет);
Stretch- True
Код:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Image1.Left=X
Image1.Top=Y
End Sub
Бағдарлама орындалуы кезеңнің түрі.
2-мысал. Бірінші пернені басқан кезде сурет мөлшері пропорционал түрде үлкейетіндей етіп, ал екінші батырманы басқан кезде пропарционал түрде кішірейетіндей етіп бағдарлама жазу керек.
Пішінге 2 батырма және бір Image (Picturе қасиетінде сурет файлына жол көрсетіңдер Stretch қасиетіне – True) объектісін орнату қажет.
Код:
Private Sub Command1_Click()
‘Үлкейтеміз
Image1.Width=Image1.Width+100
Image1.Height=image1.Height+100
End Sub
Private Sub Command2_Click()
‘Масштаб кішірейтеміз
Image1.Width=Image1Width-100
Image1.Height=image1.Height-100
End Sub
Drag & Drop және DragOver оқиғалары
Мысал. Суретті берілген аймаққа бір мезгілде оның өсуін көру үшін жылжытуға мүмкіндік беретін бағдарлама жазыңдар.
Қойылған есепті шығару үшін Drag & Drop және DragOver оқиғаларын пайдалану қажет.
Тасымалдау процесін бастау үшін, Drag & Drop тасымалдау режиміне көшу керек. Бұл оқиғанын Source – объект орнын анықтайтын, X пен Y-тышқан көрсеткіші координаталары параметрлері бар.
Тасымалданатын объект қабылдаушы – объектіге түссе, онда оны сол жерге қалдыруға тура келеді. Бұл тышқан батырмаларын жібергеннен кейін орындалуы керек (DragOver оқиғасы).
Жазуы бар суреттерді құру үшін пішін құрайық. Алгоритмге алып бару көмегімен суретті үлкейтіп көру мүмкіндігін еңгіземіз.
Пішінге Image 18 объектіден тұратын жиымын орнатындар. Барлық Image 1 объектісіне DragMode=Auto қасиетін тағайындаңдар.
Объектілер жиымын құру үшін пішінге бір объектіні орналастыру жеткілікті, содан кейін оны көшіріп қою қажет. Қою барысын жиым элементтерін тарату хабарламасы шығады, барлығына «иә» деп жауап беру керек. Жиым элементтерінің барлығының атауы бірдей (name), бірақ индекстері әр түрлі. Индекстерді номерлеу 0-ден басталады.
Image 1(i) объектілерінің суреттері пішінді жүктеу барысында жүктейміз (біздің мысалда суреттер жұмыс үстелінде орналасқан Пример қапшығында сақталған).
(“C:\Windows\Рабочий стол \ пример \ vb.bmp”)
Бір мезгілде Tag қасиетіне Осы объектілердің атын еңгіземіз.
Image1(0).Tag= “000”
Image 2 объектісіне Image2 терезесін сурет мөлшеріне сәйкестеңдіріп өзгертуге мүмкіндік беретін Source=False қасиетін орналасытрамыз.
Label 1 объектісіне орналастыратын суреттің атын еңгіземіз, суреттің атының ұзындығы әр түрлі болғандықтан Caption қасиетінде орналасқан мәтіннің мөлшеріне байланысты Label 1 объектісінің мөлшерін өзгертуге мүмкіндік беретін AutoSize=true қасиетін орналастырамыз.
Суретте пішіннің үлгісі көрсетілген.
Код:
Private Sub Form _DragDrop (Source As Control, X As Single,
Y As Single)
Sourse. Move X, Y. ‘объектінің жоғарғы бұрышын тышқан
артына жылжытамыз’
End Sub
Private Sub Form_ Load ()
Image1 (0). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \ лес.bmp”)
Image1 (0). Tag = “000”
Image1 (1). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \ vb.bmp”)
Image1 (1). Tag = “111”
Image1 (2). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \ Unicode.bmp”)
Image1 (2). Tag = “222”
Image1 (3). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \ Unicode1.bmp”)
Image1 (3). Tag = “333”
Image1 (4). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \ Unicode2.bmp”)
Image1 (4). Tag = “444”
Image1 (5). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \. Unicode3.bmp”)
Image1 (5). Tag = “555”
Image1 (6). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \. Unicode4.bmp”)
Image1 (6). Tag = “666”
Image1 (7). Picture = LoadPicture (“c:\Windows\ Рабочий стол \
пример \. Unicode5.bmp”)
Image1 (7). Tag = “777”
End Sub
Private Sub Image2_ DragOver (Source As Control, X As
Single, Y As Single, State As Integer)
Image2.Picture = Source. Picture
Label1.Caption = Source. Tag
End Sub
11-дәріс. Анимация (1 сағат)
Негізгі мақсат: Анимация түсінігін қалыптастыру, Студенттерге Visual Basic ортасының анимацияланған объектілерді құру мүмкіндіктерін көрсету.
Білім мен білікке қойылатын талаптар: Студенттер қойылған есептерді шешу барысында анимацияланған объектілерді құруда Visual Basic ортасының мүмкіншілігін пайдалана білу.
Анимация деп әдетте суреттің өзгерлуі (кескін) түсіндіріледі. Анимация эффектісі сурет элементтерінің объектілерінің жылжуынан қалыптасады. Бұл бағдарламалау ортасында анимацияларды іске асырудың екі түрлі жолы бар.
Біріншісі (классикалық) алдын ала даярлап қойлған суреттер (кадрлар) сериясын ұсынады.. Бұл әдіс мультфильмдерді құруға қолданылады. Классикалық анимациялардың көрсетілуін анимацияланған gif-файлдар арқылы ұсынылуды Animation Gif Control компоненті қамтамасыз етеді.
Екінші жолы компьютерлік ойындарды жасақтамағанда кадрлық анимацияларды құруды ұсынады. Осы жолды іске асыру кішірек суреттердің фондық суреттері ретінде пайдаланатын кадрлар экранның әр түрлі аймақтарында шығару жолымен құрылады.
Келесі мысалдар Visual Basic ортасында екінші жолмен анимация құру көрсетеді.
1-мысал. Объектіні қозғалу бағдарламасын жазу: «Іске қосу» батырмасын басқан кезде объект пішінде солдан оңға қарай жылжиды. Пішіннің шетіне жетіп, секіріс жасаса қозғалуды керісінше бағытта жалғастырады.
Пішінге мына объектілерді орындаймыз.
Толтырма Caption Іске қосу қасиетімен,
1 Shape(фигура) Shape қасиеті 3-ке тең – Circle (Шеңбер) және қасиеті Back Style 1-ге тең - Opaque (фигураны бояуға арналған);
3 Timer объектісін 1-ге тең Interval қасиетімен (бұл уақыт өткеннен кейін, Timer жаңарып тұрады (мл)) және Timer–ді өшіру үшін Enabled қасиеті Fals–ке тең болуы керек, ал қосу үшін Enabled True–ге тең болу керек.
Сендерде келесі пішін шығуы керек:
Код:
Private Sub Command1_Click()
‘Батырманы басқанда Timer 1 және Timer 3 батырмалары
қосылады’
Timer1.Enabled = True
Timer1.Enabled = True
End Sub
Private Sub Timer 1_ Timer()
Shape1.Left = Shape 1. Left + 25 ‘Әрбір Shape1 25 мл-ге оңға
жылжиды’
End Sub
Private Sub Timer 2_ Timer()
Shape1.Left = Shape 1. Left – 25 ‘Әрбір Shape1 25 мл-ге солға
жылжиды’
End Sub
Private Sub Timer 3_ Timer()
If Shape1.Left <= -400 Then
‘Егер Shape1.Left <= -400 (ол жақ қабырғадан ыршып түсу)
Timer1.Enabled = False Timer2 өшеді
End If
If Shape1.Left <= -4000 Then
Shape1.Left <= -4000
‘Егер Shape1.Left <= -400 (сол жақ қабырғадан ыршып түсу)
Timer2.Enabled = True ‘Timer2 қосылады’
Timer1.Enabled = False ‘Timer1 қосылады’
End If
End Sub
Мысал 2. Суреттері бар анимация
Формаға 1 батырма Caption – шығу, қасиетімен 1 Timer Interval> 0 қасиетімен 5 image 1 объекті – index, қасиетімен 0, 1, 2, 3, 4-ке сәйкесінше орнатыңдар. Picture қасиетінде суретті файлға жол көрсетіңіз; 1 объект image 2.
Код:
Dim a As Integer
‘Айнымалыны жариялаймыз
Private Sub Command1_Click()
‘бағдарламаны қосқан кезде суреттер басынан жүруі үшін
a = -1
‘a>4 шарты бойынша, суреттерді басынан көрсете бастау.
If a = 5 Then a = 0
‘Суретті қай орынға шығару керек.
Image2.Picture = Image1(a).Picture
End Sub
Классикалық анимацияны ойнату, анимацияланған gif-файлмен ұсынылған Animation Gif Control компонентінің көмегімен орындалады, ол келесі сабақта қарастырылады.
Достарыңызбен бөлісу: |