Графикалық әдістер мен процедуралар
Сабақтың тақырыбы: Графикалық әдістер мен процедуралар (2 сағат
Сабақтың мақсаты: VisualBasic те графикалық файлдарды қолдануға, әдістерді пайдалана білуге, процедураларды жаза үйрету.
Ә) есте сақтау, ойлау, шығармашылық қабілетін дамыту
Б) әдістердің атауын сауатты жазуға, жоба құруда бағдарламаны дұрыс пайдалануға тәрбиелеу
Сабақтың түрі: дәстүрлі
Сабақтың типі: аралас
Сабақтың барысы:
І. Ұйымдастыру
ІІ. Өткен сабақты қорытындылау мақсатында сұрақтар қою:
- Қарапайым программалардың қатесін қалай тексеруге болады ?
- Қатені тексеру мен қадамдық әдіспен тексерудің қандай айырмашылықтары бар ?
- Программада қандай қателер болады ?
- Программада қатенің неше түрі болады ?
ІІІ. Жаңа сабақ
VisualBasic тілі графикалық файлдарды қолданудың 3 тәсілін ұсынады:
- Кез келген графикалық редакторда салынған суреттердә және компьютердің жадында
сақталған графикалық файлдарды көшіріп немесе адресі бойынша сілтеме жасау арқылы пішінге PictureBox графикалық терезесіне файлдарды кірістіруімізге болады.
- ToolBox құрал – саймандар тақтасынан Line(сызық) және Shape (фигура) басқару элементтерін кірістіру арқылы.
- Пішін мен PictureBox нысандарына графикалық әдістер арқылы нүкте, сызық, төртбұрыш, шеңбер, эллипс, бұрыш, доғалар салуға болады. Графикалық пішіндерді салу үшін графикалық әдістер қолданып, процедура жазамыз.
Scale әдісі жаңа координаталарды ұсынады. Scale әдісін қолданғанда PictureBox пен пішін абсолютті координатаға ие болады, олардың өлшемі (ені мен биіктігі) арнайы тип өлшем бірлігіміен өлшенеді.
Scale әдісінің жазылуы
[нысанның аты] Scale (Х1, Ү1) – (Х2, Ү2)
Scale әдісіндегі Scale әдісіндегі жылжыған
координаталар жүйесі нысанның координаталар жүйесі
Х1, Ү1 – нысанның сол жақ жоғары бұрышының координатасы, Х2, Ү2 – нысанның оң жақ төменгі бұрышының координатасы. Мысалы: Picture1.Scale(-10,5) – (10,5)
Pset әдісі нысанға нүкте салуға мүмкіндік береді, Pset әдісінің жазылуы
[нысанның аты]. Pset(Х, Ү) [, түсі]
Мұнда нысанның аты көрсетілмегендіктен Pset әдісі пішінге қолданылады, (Х, Ү) нысанға орналасатын нүктелер координатасы, түсі Long типімен кодталады.Егер түс берілмесе, ForeColor қасиеттер мәнімен сәйкестендіріледі, нысанның DrawWidth қасиеті арқылы нүктенің өлшемін өзгертуге болады. DrawWidth қасиетінің мәні бүтін сандар бола алады 1, 2, 3 үнсіз келісім бойынша 1 – ге тең. Мысалы, Picture1. DrawWidth=2
Line әдісі нысанға түзу сызықтар және іші боялған немесе боялмаған төртбұрыштар салады.
Line әдісінің жазылуы:
[нысанның аты] .Line (Х1, Ү1)-(Х2, Ү2) [ , түсі] [, белгі]
Мұнда бірінші төртбұрыш, екінші іші боялған төртбұрыш салынады. Егер В белгісі қолданса, төртбұрыштың іші болямаған, қасиетті автоматты түрде FillStyle=1 (transparent) қабылдайды. Егер бұл қасиетті өзгертетін болсақ, онда төртбұрыштың іші боялады, қасиеті
FillStyle=0 [, ][, белгі ] ,белгі болып түсі болмаса, үтірді алып тастауға болсайды, онда белгі түс ретінде қабылданады. Сызықтың немесе төртбұрыштың контурларының қалыңдығын DrawWidth қасиеті арқылы өзгертуге болады.
Белгі дегеніміз – B немесе BF символдары.
Сircle әдісі нысанға шеңбер, доға, эллипс, сектор салу үшін Сircle әдісін қолданамыз.
Сircle әдісінің жазылуы:
[нысанның аты] Сircle (Х, Ү), радиус [, түсі ] [, 1 – ші бұрыш, 2 – ші бұрыш ]
[, сығу коэффиценті ]]]
Мұнда нысанның аты көрсетілмегендіктен пішінге Сircle әдісін қолданады., мұндағы (Х, Ү)- шеңбердің немесе эллипстің центрлік нүктесі, түсі Long саны бойынша кодталады, егер түс берілмесе ForeColor қасиетімен сәйкестендіріледі, 1 – ші бұрыш, 2 – ші бұрыш дегеніміз – доға мен шеңбердің бастапқы және соңғы бұрыштары, өлшем бірліктері 0 – ден 2 – ге дейінгі интервалда радианмен өлшенеді. Егер бұрыштың мәні 0 – ге тең емес және алодында минус таңбасы тұрса, онда доға емес сектор сызылады. Доға немесе сектор сызғанда қозғалыс сағат тіліне қарсы бағытта жүреді, сонымен бірге шеңбер немесе эллипс сызылғанда бұрыштар мәні жазылмайды.
Сығу коэффиценті дегеніміз – ол таңба.
Егер берілген мән 1 – ден үлкен болса, онда вертикаль бойынша сыозылған эллипс сызылады, берілген мән 1 – ден кіші болса , горизонталь созылған эллипс сызылады, яғни созу дәрежесі сығу коэффицентімен анықталады. Сығу коэффиценті болмаса, онда шеңбер сызылады.
Түс беру
VisualBasic программасында 8 тұрақты сандар арқылы түс беруге болады.
Түсі | Тұрақтылар | Сандық мәні |
Қара | vbBlack | 0 |
Қызыл | vbRed | 255 |
Жасыл | vbGreen | 65280 |
Сары | vbYellow | 65535 |
Көк | vbBlue | 16611680 |
Көкшіл күлгін | vbMagneta | 16611935 |
Ашық көк | vbCyan | 16666960 |
Ақ | vbWhite | 16666215 |
QBCOLOR функциясы арқылы түс беру
QBCOLOR функциясы 0 – ден 15 – ке дейінгі диапазонды қамтитын бүтін сандар С аргументінен тұрады. Берілген сандық мәнді түстер (сандық типті Long болатын) кодын қайтарады.
Мысалы: QBCOLOR (13) – Күлгін (vbMagneta)
Компьютердегі тәжірибелік жұмыс.
- Пішінге Command Button батырмасы мен PictureBox батырмасын кірістіріңдер, төмендегі процедураны теріңдер.
Private Sub Command1_Click()
Picture1.Scale(-15,15)-(15, -15)
Picture1.DrawWidth=15
Picture1.Pset(0, 0), vbRed
Picture1.Pset(-8,8)
Picture1.Pset(8, -8)
End Sub
- Private Sub Command1_Click()
Picture1.Scale(-15,15)-(15, -15)
Picture1.DrawWidth=3
Picture1.Line (-10, 10) – (10, -10)
Picture1.Line (0, 0) – (10, 10), , B
Picture1.FillStyle=0
Picture1.FillColor=vbGreen
Picture1.Line (-8, -5) – (8, — 8), vbWhite, B
End Sub
- Private Sub Command1_Click()
Picture1.BackColor=vbWhite
Picture1.DrawWidth=3
Picture1.Scale (-50, 50) – (50, -50)
Picture1.Circle (-30, 30) , 15, vbRed
Picture1.FillStyle=0
Picture1.FillColor=vbGreen
Picture1.Circle (-30, 0) , 13, vbRed
Picture1.Circle(-30, -30), 15, vbBlack, , , 2.
Picture1.Circle(30, 30), 15, vbYellow, , , 0.5
Picture1.Circle (30, 5) , 10, vbBcyan, 2, 5
Picture1.FillStyle=1
Picture1.Circle (30, -30) , 15, vbBcyan,-1, -5
End Sub
Бақылау сұрақтары:
- VisualBasic тілі графикалық файлдарды қолданудың қанша тәсілін ұсынады ?
- Графикалық әдістің графикалық файлдардан қандай айырмашылығы бар ?
- PictureBox және Image элементтерінің айырмашылығы неде ?
- Қандай графикалық әдістерді білесіңдер ?
- Графиканың процедурасын жазғанда қандай функциялар қолданылады ?
Өзіңді тексер !
- Line әдісінің қызметі қандай ?
А) нысанғы түзу сызықтар және іші боялған немесе боялмаған төртбұрыштар салады.
Ә) берілген елементтер файлға үтір арқылы тізбектеліп жазылады
Б) тырнақша белгісіне алынып жазылады
В) print әдісімен жазылған мәліметтер
Г) элементтер “ ; ” немесе “ : “ белгісімен бөлінеді
- Белгі дегеніміз —
А) жарлықтар
Ә) мәтіндер
Б) файлдар
В) b немесе bf символдары
Г) сандар
- Нысанға шеңбер, доға, эллипс, сектор салу үшін қандай әдісті қолданамыз ?
А) Сircle әдісі
Ә) Line әдісі
Б) ForeColor әдісі
В) DrawWidth әдісі
Г) BackColor әдісі
- Сығу коэффиценті дегеніміз —
А) теріс таңба
Ә) оң таңба
Б) мәліметтер
В) файлдар
Г) жарлықтар
- VisualBasic тілі графикалық файлдарды қолданудың неше тәсілін ұсынады ?
А) 4
Ә) 2
Б) 3
В) 5
Г) 1
Үйге тапсырма:
- § 19 тақырыптың теориялық түсінігін айту.
- Графикалық әдістерді қолданып, үйдің суретін салу.
Бағалау.
Сабақтың тақырыбы: Қадамдап бөлу әдісі
Сабақтың мақсаты: оқушыларға VisualBasic тілінде үлкен және күрделі процедура кезінде кездесетін қатені түзетуді үйрету
Дамытушылығы: Оқушының әрбір сабаққа ынтасы мен қабілетін біріктіріп, пәнге деген қызығушылығын арттыру.
Тәрбиелігі: Әр оқушыны іскерлікке, нақтылыққа, ынтымақтылыққа тәрбиелеу.
Сабақтың түрі: дәстүрлі
Сабақтың типі: жаңа білім
Сабақтың барысы:
І. Ұйымдастыру
ІІ. Жаңа сабақ
VisualBasic тілінде үлкен және күрделі процедурасы бар жоба құрғанда, жоба қатесіз болуы мүмкін емес. Сондықтан VisualBasic тілі қадам арқылы қатені тексеру тәсілін ұсынады. Қатені тексеру 4 кезеңнен тұрады:
- Ақиқатты қателікке тексеру
- Қатені іздеу
- Қатенің себебін іздеу
- Қатені түзету.
Программада қатенің 2 түрі болады: синтаксистік, логикалық. Егер VisualBasic тілін қолдансақ, осы қателер кездесу мүмкін:
Жоба: «Санның орташа арифметикалық ортасын табу»
- Жобаны «Қатені іздеу» деген атпен сақтаймыз.
- Пішінге бұйрықтық батырма CommandButton, екі мәтіндік TextBox және жазу Label батырмаларын енгіземіз.
- Пішінге frtцикл, cmdцикл, txtсан, txtорташа деп батырмаларының Name қасиеттеріне жазыңдар.
- Бірінші мәтіндік батырмаға (txtсан), Multiline қасиетіне True мәнін, ScrollBars қасиетіне – 2 (Vertical ) мәтін беріңдер.
- Бұйрықтық батырманың Name қасиетіне «Енгізуді баста» деп жазыңдар. Бірінші жазу батырмасына «Енгізілетін сандар», екінші жазу батырмасына «Орташа мән» деп жазыңдар.
Төмендегі процедураны теріңдер:
Private Sub cmdЦикл _Click()
Dim N As Integer
Dim kos as single, or As Single
Dim P As String
Txtсан.text=” “
Kos=0: N=0
P=InputBox(“санды енгізгеннен кейін ‘OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)
Do until P=” “ ‘ “Cancel” батырмасын басқанша цикл орындала береді.
N=N+1
Txtсан.txt=Txt.сан.text+P+” “Kos=kos+Val(P)
P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)
Loop
If N=0 Then
MsgBox “ ”
Else
Or=kos/N
Txtорташа.Text=Str(or)
End If
EndSub
Программаға арнайы қате енгіземіз:
- Do until P=” ” жолды Do untile P=” “ деп өзгертеміз.
- Экранда диалогтық терезе пайда болады.
- Егер қатені түзету керек болса, ОК батырмасын шертеміз, қате түсініксіз болса, Анықтама батырмасын немесе F1 батырмасын шертіңдер.
- Қатені түзетіңдер. Бұл қате ішкі оқиғада мысалы файлдың аты дұрыс көрсетілмегендіктен болады.
- Loop сөзін алып тастаңдар, қатенің хабарламасы шығады.
- Қатені тексеріп, программаның орындалуын көріңдер. Ол үшін F5 батырмасын шертіңдер.
- End if сөзін алып тастаңдар. Қатені хабарлау терезесі пайда болады.
- Қатені түзетіңдер.
Осындай қателердің күрделісі логикалық қате. Логикалық қате алгоритмнің дұрыс құрылмағандығынан немесе енгізілген параметрдің дұрыс берілмегендігінен болады.
Қарапайым программалардың қатесін «қадамдық әдіс» арқылы тексеруге болады.
Тапсырма:
- N=N+1 жолын ұмытып кеткендей программадан алып тастаңдар, программаны іске қосыңдар да, үш сан енгізіңдер, Cancel батырмасын шертіңдер. Жүйе қатені хабарлайды.
- Debug мәзірінен , Step Into немесе F8 батырмасын шерту арқылы программаны іске қосыңдар.
- Жоба бірінші жолды сары түспен көрсетеді.
- Private Sub Command1_Click()
- Программадағы айнымалылардың мәні неге тең екендігін көру үшін тінтуірді айнымалыға апарсаңдар болғаны
- Программаның F8 батырмасы арқылы іске қосыңдар.
- P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)ерекшеленеді, F8 батырмасын шертіңдер.
- Экранда санды енгізу терезесі пайда болады. «10» санын енгізіп ОК батырмасын шертіңдер.
- F8 батырмасын шертіп, P айнымалысының мәнін тексеріңдер.
- Р айнымалысына 10 – ды көрсету керек.
- P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)ерекшеленгенше , F8 батырмасын шерте беріңдер.
- Kos айнымалысын тексеріңдер, 10 – ға тең болу керек.
- F8 батырмасын шертіңдер, нәтижесінде Санды енгізу терезесі пайда болады, Cancel батырмасын шертіңдер, Loop жолы белгіленеді.
- F8 батырмасын шертіңдер.
- «Do until P=” “ ‘ “Cancel” батырмасын басқанша цикл орындала береді.» жолы ерекшеленеді, осы жолды өзгертіңдер. Do until P=” “ ‘ “Cancel” батырмасын басқанда цикл тоқтатылады.
- F8 батырмасын шертіңдер.
- If N=0 жолы ерекшеленеді, N=0 екенін тексереміз, келесі F8 басқанда «ешқандай сан енгізілген жоқ» деген хабарлама шығады.
- F8 батырмасын шертеміз, End If келесі EndSub жолдары ерекшеленеді.
- Қатені тексереміз, мүмкін программада кідіріс болуы.
- Онда Do until P=” “ жолын Do жолына ауыстырамыз.
- Программаны іске қосыңдар, санды енгізіп Cancel батырмасын шертіңдер, тағы да осынықайталаңдар, программада кідіріс пайда болады, Ctrl +Break батырмасы арқылы программаның орындалуын үзіңдер. Осыдан кейін Loop жолы ерекшеленеді. Программада тағы да қадамдық тексеру пайдалансақ, онда Loop тан кейінгі жолдың ерекшеленгенін көреміз.
Бақылау сұрақтары:
- Қарапайым программалардың қатесін қалай тексеруге болады ?
- Қатені тексеру мен қадамдық әдіспен тексерудің қандай айырмашылықтары бар ?
- Программада қандай қателер болады ?
- Программада қатенің неше түрі болады ?
Үйге тапсырма: теориялық түсінікке дайындалу
Бағалау.
Жоба: «Санның орташа арифметикалық ортасын табу»
- Жобаны «Қатені іздеу» деген атпен сақтаймыз.
- Пішінге бұйрықтық батырма CommandButton, екі мәтіндік TextBox және жазу Label батырмаларын енгіземіз.
- Пішінге frtцикл, cmdцикл, txtсан, txtорташа деп батырмаларының Name қасиеттеріне жазыңдар.
- Бірінші мәтіндік батырмаға (txtсан), Multiline қасиетіне True мәнін, ScrollBars қасиетіне – 2 (Vertical ) мәтін беріңдер.
- Бұйрықтық батырманың Name қасиетіне «Енгізуді баста» деп жазыңдар. Бірінші жазу батырмасына «Енгізілетін сандар», екінші жазу батырмасына «Орташа мән» деп жазыңдар.
Төмендегі процедураны теріңдер:
Private Sub cmdЦикл _Click()
Dim N As Integer
Dim kos as single, or As Single
Dim P As String
Txtсан.text=” “
Kos=0: N=0
P=InputBox(“санды енгізгеннен кейін ‘OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)
Do until P=” “ ‘ “Cancel” батырмасын басқанша цикл орындала береді.
N=N+1
Txtсан.txt=Txt.сан.text+P+” “Kos=kos+Val(P)
P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)
Loop
If N=0 Then
MsgBox “ ”
Else
Or=kos/N
Txtорташа.Text=Str(or)
End If
EndSub
Программаға арнайы қате енгіземіз:
- Do until P=” ” жолды Do untile P=” “ деп өзгертеміз.
- Экранда диалогтық терезе пайда болады.
- Егер қатені түзету керек болса, ОК батырмасын шертеміз, қате түсініксіз болса, Анықтама батырмасын немесе F1 батырмасын шертіңдер.
- Қатені түзетіңдер. Бұл қате ішкі оқиғада мысалы файлдың аты дұрыс көрсетілмегендіктен болады.
- Loop сөзін алып тастаңдар, қатенің хабарламасы шығады.
- Қатені тексеріп, программаның орындалуын көріңдер. Ол үшін F5 батырмасын шертіңдер.
- End if сөзін алып тастаңдар. Қатені хабарлау терезесі пайда болады.
- Қатені түзетіңдер.
Қарапайым программалардың қатесін «қадамдық әдіс» арқылы тексеруге болады.
Тапсырма:
- N=N+1 жолын ұмытып кеткендей программадан алып тастаңдар, программаны іске қосыңдар да, үш сан енгізіңдер, Cancel батырмасын шертіңдер. Жүйе қатені хабарлайды.
- Debug мәзірінен , Step Into немесе F8 батырмасын шерту арқылы программаны іске қосыңдар.
- Жоба бірінші жолды сары түспен көрсетеді.
- Private Sub Command1_Click()
- Программадағы айнымалылардың мәні неге тең екендігін көру үшін тінтуірді айнымалыға апарсаңдар болғаны
- Программаның F8 батырмасы арқылы іске қосыңдар.
- P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)ерекшеленеді, F8 батырмасын шертіңдер.
- Экранда санды енгізу терезесі пайда болады. «10» санын енгізіп ОК батырмасын шертіңдер.
- F8 батырмасын шертіп, P айнымалысының мәнін тексеріңдер.
- Р айнымалысына 10 – ды көрсету керек.
- P=InputBox (“санды енгізгеннен кейін ’OK’ батырмасын шертіңдер, енгізуді аяқтағанда ‘Cancel’ батырмасын шертіңдер, “кезекті санды енгізу”)ерекшеленгенше , F8 батырмасын шерте беріңдер.
- Kos айнымалысын тексеріңдер, 10 – ға тең болу керек.
- F8 батырмасын шертіңдер, нәтижесінде Санды енгізу терезесі пайда болады, Cancel батырмасын шертіңдер, Loop жолы белгіленеді.
- F8 батырмасын шертіңдер.
- «Do until P=” “ ‘ “Cancel” батырмасын басқанша цикл орындала береді.» жолы ерекшеленеді, осы жолды өзгертіңдер. Do until P=” “ ‘ “Cancel” батырмасын басқанда цикл тоқтатылады.
- F8 батырмасын шертіңдер.
- If N=0 жолы ерекшеленеді, N=0 екенін тексереміз, келесі F8 басқанда «ешқандай сан енгізілген жоқ» деген хабарлама шығады.
- F8 батырмасын шертеміз, End If келесі EndSub жолдары ерекшеленеді.
- Қатені тексереміз, мүмкін программада кідіріс болуы.
- Онда Do until P=” “ жолын Do жолына ауыстырамыз.
- Программаны іске қосыңдар, санды енгізіп Cancel батырмасын шертіңдер, тағы да осынықайталаңдар, программада кідіріс пайда болады, Ctrl +Break батырмасы арқылы программаның орындалуын үзіңдер. Осыдан кейін Loop жолы ерекшеленеді. Программада тағы да қадамдық тексеру пайдалансақ, онда Loop тан кейінгі жолдың ерекшеленгенін көреміз.