VISUAL ВАSІС программалау жүйесі



КІРІСПЕ
1 БЕЙНЕЛЕРДІ САҚТАУ ЖӘНЕ ӨҢДЕУ ҮШІН ЕКІӨЛШЕМДІ ЖИЫМДЫ ПАЙДАЛАНУ
2 ЕСЕПТЕР ШЫҒАРУ
ПРАКТИКАЛЫҚ ЖҰМЫС
XXI ғасыр - ақпараттық технологиялар ғасыры. Сондықтан да біздің өмірімізбен байланысты кез келген оқиға, кез келген дүние автоматтандырылып, құнды ақпарат көзіне айналып, компьютер деген машинаның өңделуіне түсіп, жік-жікке бөлінуде. Қазіргі кезеңнің ерекшелігі үлкен көлемдегі материалдық және шикізат ресурстарын пайдалануға негізделген индустриалды экономикадан, негізгі ресурсы ақпарат болып табылатын информациялық экономикаға өту. Информатика мамандары қоғамдағы информация рөлінің күшеюін бір ауыздан мойындап отыр. Ақпарат бара-бара қоғамдық әл-ауқат деңгейін анықтайтын шешуші факторға айналуда. Ол бизнестің стратегиялық ресурсы болып қалыптасып келеді.
ВАSІС қазіргі уақытта программалаудың ең танымал тілдерінің бірі болып саналады. Q Ваsіс-тің ең күшті мүмкіндіктерін, оның ең негізгі алгоритмдік құрылымдарын және жаңаша ақпараттық-технологиялық амалды — Мs Оffiсе немесе Іnternet Ехрlоrer сияқты ресурстарды бірлесіп пайдалану идеологиясын бойына жинақтаған, ол кәсіби программист үшін де, жаңадан үйренушіге де бірдей тартымды.
1.Кошкарев А.В. Картография и геоинформатика: пути взаимодействия. Изв. АН СССР, сер. геогр., 1990, N 1, с. 32
2. Сербенюк С.Н. Картография и геоинформатика - их взаимодействие. М., 1990, 159 с.
3. Трофимов А.М., Панасюк М.В. Геоинформационные системы и проблемы управления окружающей средой. Казань, изд-во Казанского ун-та, 1984, 142 с.
4. Майминас Е.З., Лавров С.С. Проектирование информационных систем. М.: Наука, 1998, 355 с.
5. Кошкарев А.В. , Тикунов В.С. Геоинформатика. Новосибирск 1993г.
6. В.Я. Цветков Геинформационные системы и технологии Москва «Финансы и статистика» 1998г.
7. Б.З. Мильнер Теория организаций. – М.: ИНФРА-М, 2000
8. Холмс Я.Г. Роль информатизации в развитии общества. М.: Питер-Пресс,
2001, 805 с.
9. Савельев А.М., Петерсон Э.Дж. Представление об информационном обществе и этапы развития информационных технологий. Казань: Мир, 2002, 403 с.
10. Игнатьева А.В. Исследование геоинформационных систем: Учебное пособие для вузов. – М.: ЮНИТИ-ДАНА, 2000. – 258 с.
11. Сейітқұлов О. «Программалау» Шымкент 2006

КІРІСПЕ

XXI ғасыр - ақпараттық технологиялар ғасыры. Сондықтан да біздің өмірімізбен байланысты кез келген оқиға, кез келген дүние автоматтандырылып, құнды ақпарат көзіне айналып, компьютер деген машинаның өңделуіне түсіп, жік-жікке бөлінуде. Қазіргі кезеңнің ерекшелігі үлкен көлемдегі материалдық және шикізат ресурстарын пайдалануға негізделген индустриалды экономикадан, негізгі ресурсы ақпарат болып табылатын информациялық экономикаға өту. Информатика мамандары қоғамдағы информация рөлінің күшеюін бір ауыздан мойындап отыр. Ақпарат бара-бара қоғамдық әл-ауқат деңгейін анықтайтын шешуші факторға айналуда. Ол бизнестің стратегиялық ресурсы болып қалыптасып келеді.

ВАSІС қазіргі уақытта программалаудың ең танымал тілдерінің бірі болып саналады. Q Ваsіс-тің ең күшті мүмкіндіктерін, оның ең негізгі алгоритмдік құрылымдарын және жаңаша ақпараттық-технологиялық амалды — Мs Оffiсе немесе Іnternet Ехрlоrer сияқты ресурстарды бірлесіп пайдалану идеологиясын бойына жинақтаған, ол кәсіби программист үшін де, жаңадан үйренушіге де бірдей тартымды.

VISUAL ВАSІС-тің арқасында, соңғы кезде ойыншық саналған Бейсик тілі программалау тілдерінің ең қарапайымы жөне ең күштісі болды. VISUAL ВАSІС қысқа мерзімде Windows-қа кәсіби деңгейлі интерфейсі бар қолданбалар жасауға мүмкіндік береді, бұл жағдай кәсіби программистердің оны пайдалануын жиілетіп, оның позициясын құрастырушылар бәсекесінде күшейте түседі.

VISUAL ВАSІС программалауда алғашқы қадамдар жасап жүргендер үшін ерекше тартымды. Бірнеше түйінді сөз үйреніп, Windows -та жұмыс істеу дағдылары болса жеткілікті. Қолданбаның сыртқы көрінісін жасау үшін, Раіпі сияқты дайын объектілерді экранның қажетті орнына жай ғана тасымалдап отыруға болады. VISUAL ВАSІС программалау жүйесі Windows -тың барлық офистік қолданбаларына енгізілген, бұл жағдай ақпараттық технологияға ойшыл, шығармашылық тұрғыдан қарауға мүмкіндік береді.

БЕЙНЕЛЕРДІ САҚТАУ ЖӘНЕ ӨҢДЕУ ҮШІН ЕКІӨЛШЕМДІ ЖИЫМДЫ ПАЙДАЛАНУ

Алдымен Visual Basic тілінің Пішін және Графикалық терезе объектілеріне қолданылатын графикалық әдістерінің бар екендігін естеріңізге саламыз.

Графикалық әдістердің, сондай-ақ басқа тәсілдердің көмегімен көрсетілген объектілерді әр түрлі бейнелермен толтыруға болады. Бұдан басқа бұл объектілерді "баспаға шығаруға", яғни оларға Print әдісін қолдануға болады.

Графикалық әдіс және Print әдісі пішінде немесе графикалық терезеде пиксельдер жиынын, яғни түсті дақтарды салады. Пиксельдің кішкентайлығы сонша, ол адам көзіне нүкте болып көрінеді, яғни узындығы және ені жоқ объект. (Пиксельдің өлшемін, яғни оның узындығын және енін, қысқаша айтқанда, оларды да пиксель деп атайды).

Сіз өзініздің қосымшаңыздың интерфейісін жобалауды бастағанда, пішін және ондағы барлық объектілер үнсіз келісім бойынша твиппен өлшенеді. (твиптің оте кішкентай шама екендігін Сіздерге ескертеміз, ол пиксельден 15 есе кіші). Іс жүзінде твиппен өлшеу бейнені тек принтерден шығаруда ғана пайдалы болады, ал экранда сызғанда қағида бойынша твиптер емес пиксельдер пайдаланылады.

Егер Сіз өз программаңызда графикалық әдістерді пайдаланғыңыз келсе, онда твиптен пиксельге оту орынды болады. Өйткені Сіз сызғыңыз келіп жатқан объектіңізді масштабтауыңыз қажет. Мұны екі тәсілмен жасауға болады:

Интерфейсті жасақтау кезеңінде объектінің ScaleMode қасиетінің мәнін Ріхеl’кe тең етіп (үнсіз келісім бойынша ол твипке тең) орнату керек, ал содан соң ScaleWidth және ScaleHeight қасиеттерінің мәндерін орнату керек.
Мысалы, 150 және 150 (Твипте өлшемдері 2250 және 2250 болған болар еді).

Сіздің программаңыздың жұмысы басталғаннан кейін бірден онда жазылған түрі: Объект Аты.Sсalе(х1,у1)-(х2,у2) операторы жұмыс істеуі тиіс. Бұл операторда осы атпен берілген объектіге қолданылатын Scale графикалық әдісі бар.
Екінші тәсіл жақсы, өйткені ол Сіз үшін масштабты өзгертуге ыңғайлы координат жүйесінде сызуға мүмкіндік береді. Егер xl=0 және у1=0 координаттары Сізді қанағаттандыратын болса, онда бірінші тәсілмен шектелуге болады.

Ал енді екі өлшемді жиым үғымын программадағы бейнені сақтау үшін және осы бейнені өндеу (түрлендіру) үшін қалай пайдалануға болатыңдығын қарастырайық.

2.10-мысал. Айтайық, Сізге графикалық терезенің сол жақтағы жоғарғы бүрышында Print және Line әдістерінің көмегімен "Б" әршінің, боялған тікбұрыштың фонында, сұлу бейнесін салудың соп түсті дейік. Мейлі Сіздің бірінші бейнеге симметриялы тағы 3 бейнені (2.7-сурет) салғыңыз келсін.

Графикалық, терезенің өлшемдері 150x150 пиксель болсын дейік. Ал сол жақтағы жоғарғы бұрыштағы бейне - 50x70 пиксель болсын.

2 7-сурет. Бастапқы және оған симметриялы бейнелер.

Бейненің әрбір пикселі графикалық терезенің координаттар жүйесінде екі координатымен және түсімен - Long типті бүтін санмен сипатталады. Бұл информацияны программада Соlоr (50,70) As Long түріндегі екі өлшемді жиымды файлда сақтауға болады. Бұл жиымда деректерді сақтау үшін жадтан 14 килобайт орын бөлінетіндігін үғыну қиын емес.

Long тинті бір жиымның орнына Byte типті үш жиымды пайдалануға — оларда әрбір пиксель үшін RGB функциясының үш аргументін (Red, Green және Blue аргументтерін) сақтауға болады. Бұл жағдайда біздер жадты үнемдейміз, өйткені барлық үш жиым үшін бар болтаны 10.5 килобайт орын керек болады.

Бастапқы бейненің әрбір пикселінің түсі 3 көрсетілген жиымғa орналасатын, содан соң қалған картиналар салынатын программаны қарастырайық.

Бастапқы бейненің әрбір пикселінің түсін оқу үшін жаңа Pоіnt(x,y) графикалық әдісі пайдаланылады. Функциялар сияқты ол координаттары х, у нүктенің түсінің мәнін қайтарады.

Ұзын бүтін санды (пиксельдердің түстері) Byte (RGB функциясының аргументтеріне бұл түсті қайтарады) типті 3 санға түрлендіру үшін мына төмендегі жалпы процедураны пайдалануға болады:

Sub Separate( Color As Long, R AS Byte, GAS Byte, В AS Byte)

R = Color Mod 256: Color = Color \256

G = Color Mod 256: Color = Color \256

В = Color End Sub

Программаның барлық қалған бөлігі мына төмендегі кодта берілген:

Dim с As Long, R AS Byte, GAS Byte, В AS Byte)

Dim Red(50, 70) AS Byte, Green(50, 70) AS Byte _

Blue(50, 70) AS Byte
'(3*50*70 = 10,500 байт).

Private Sub Picturel_Clkk()
Picture1.ScsAe (0, 0)-(150, 150)
Picture1.Refresh ' "Б" әріпін сызамыз:

Picturel.Lme (10, 10)-(47, 61), RGB(100, 100, 100), B

For y% = 13 To 58 ' Тікбурышты бояймыз.

Picture1.Line (13, y)-(44, y), RGB(255-4 * y, 4 *y,255)

Next у

Picturel.PSet (0, 0), RGB(790, 190, 190)

' Баспаға шығару ушін санақ нуктесі.

Picture 1.Print "Б"

' Әрбір пиксельдің түсін құраушыларға жіктеу және осы

' құраушыларды уш жиымда сақтау:

For х% = 7 To 50

For y% = 1 To 70

с= PictureLPoint(x, y)

Separate с, R, G, В

Redfx, y)=R: Green(x, y) = G : Blue(x, у) = В

Next у

Next x

' Вертикаль және горизонталь осьтерге салыстырғанда

' бурылған бастапқы бейненің "көшірмесін " салу:

For x = 1 То 50

For у = 1 То 70

Picturel.PSet (150-х, у), RGK(Red(x,y), Green(x, y), Blue(x, у))

' Вертикаль осъпен салыстыргандагы симметрия.

Picturel.PSet (x, 150-у), HGK(Red(x,y), Green(x, y), Blue(x, у))

' Горизонталь осъпен салыстыргандагы симметрия.

Picturel.PSet (150-х, 150-у), RGK(Red(x,y), Green(x, y),_

Blue(x, у))

' Екі осьпенен салыстыргандагы симметрия.

Next у

Next x

End Sub

Барлық қажетті түсініктемелер программаның өзінде берілген.

ЕСЕПТЕР ШЫҒАРУ

Eceптep шығаруға нусқау

Бұл тарауда жиымдар деп аталатын деректер құрылымы пайдаланылатын есептер келтірілген. Бұл құрылымсыз оларды игергеннен кейін Сіз программалаушы ретінде оларсыз жұмыс істей алмайсыз, өйткені олар салыстырмалы біртекті информациялардың үлкен көлемін, мысалы, қандай да бір элементтердің тізімдерін және кестелерін көрсетуде өте ыңғайлы.

Тізім — бұл элементтердің тізбегі. Кесте — бұл әрқайсысы бірнеше элементтерден тұратын қатарлар тізбегі. Тізім Ұзындығымен, яғни элементтер санымен, ал кесте қатарларының және бағандарының санымен сипатталады. Кестсдегі элементгер саны осы сандардың көбеитіндісіне тең екендігі даусыз.

Тізімді корсетуші жиым бірөлшемді деп, ал кестені көрсетуші жиым - екіөлшемді деп аталады. Бірінші жағдайда жиымның өлшемділігі1, ал екінші жағдайда - өлшемділігі2 болып көрсетіледі. Үлкен өлшемді жиымдар да болады, бірақ олар бірөлшемді және екіөлшемді жиымдарға қарағанда айтарлықтай сирек қолданылады, сондықтан біз оларды қарастырмаймыз.

Әңгіме жиымдар туралы болғанда, элементтер тізімдерде де, сондай-ақ кестелерде де бір типті болуы керек. Элементтерінің тіптері әр түрлі болатын кестелер — бұл жиым емес, деректер қоры деп аталады. Деректер қорын және файлдарды кейшірек қарастырамыз. Мектептің бір сыныбындағы оқушылардың тегін бірөлшемді жиым деп, немесе мектеп журналының бетінен алынған қандай да бір пән бойынша оқушылардың бағаларын бүтін сандардың екіөлшемді жиымы деп айтуға болады.

Жиымдармен жұмыс істеу үшін индекстелген айнымалылар пайдаланылады. Индекстелген айнымалылардың кәдімгі айнымалылардан, оның атынан кейін жақша ішінде бір немесе бірнеше индекстердің көрсетілуімен ажыратылады. Индекстердің саны — бұл жиымның өлшемділігі болып табылады. Индекстелген айнымалының мәні — бұл жиымның бір элемент). Бірөлшемді жиымдағы индекс — тізімдегі элементтің нөмірі. Екіөлшемді жиымдағы индекстер — бұл элемент тұрған кестенің қатарының және бағанының нөмірі.

Программалауда индекстелген айнымалылардың озін жиым деп атайды, Мысалы, Тегі (Нөмірі) - бұл қатарлардың бірөлшемді жиымы, Бағасы(ОқушыНөмірі, сабақНөмірі) - бұл бүтін сандардың екіөлшемді жиымы. Тегі және Бағасы — жиымдардың аттары, ал Нөмірі, ОқушыНөмірі, СабақНөмірі — жиымдардың индекстері.

Жиымдар (Индекстелген айнымалылар) дәл кәдімгі айнымалылар сияқты, мысалы, Dim операторының комегімен хабарланады.

Айнымалыларды хабарлағанда оның атының ізінше жақша ішінде олардың индекстерінің өзгеру диапазоны көрсетіледі. Егер нөмірлеу нөлден басталатын болса, онда диапазон бір ғана N санының (индекстің ең үлкен мәні) көмегінен, ал егер нөмірлеу N1 санынан басталатын болса, онда N1 То N2 өрнегінің көмегімен көрсетіледі.

Жиымдарды өндеу үшін санауышты циклді пайдалану ыңғайлы. Санауыштың рөлін жиым индексі атқарады.

2.11-мысал. Тегі(Нөмірі) жиымындағы ұзындығы ең үлкен қатарды іздеу үшін мына төмеңцегі программаны пайдалануға болады:

' Кәдімгі айнымалыларды хабарлау:

Dim Нөмірі As Integer ТегіЕңҮлкҰзын As String

Dim Тегі(24) As String ' Бірөлшемді жиымды хабарлау.

' (Сыныпта 25 оқушы бар.)

ТегіЕңҮлкҰзын = Тегі(0)

For Нөмірі = 0 То 24

If Lеn(Тегі(Нөмірі)) Len(ТегіЕңҮлкҰзын) Then

ТегіЕңҮлкҰзын = Тегі(Нөмірі)

End Lf

Next Нөмірі

2.12-мысал. Баға (ОқушыНөмірі, СабақНөмірі) екіөлшемді жиымындағы санның орташа мәнін есептеу үшін мына төмендегі программаны пайдалануға болады:

' Кәдімгі айнымалыларды хабарлау:

Dim ОқушыНөмірі As Integer, СабақНөмірі As Integer

Dim БағаСаны As Integer, Қосынды As Integer, _

ОрташаБаға As Single

' Екіөлшемді жиымды хабарлау:

Dim Баға(1 То 25, 1 To 30) As Integer

' (Сыныпта 25 оқушы, Кестеде 30 баған бар.)

БағаСаны = 0 : Қосынды = 0

For ОқушыНөмірі — 1 То 25

For СабақНөмірі = 1 То 30

If Баға(ОқушыНөмірі, СабақНөмірі) 0 Then

БағаСаны = БағаСаны + 1

Қосынды =Қосынды +Баға(ОқушыНөмірі, СабақНөмірі)

End If

Next СабақНөмірі

Next ОқушыНөмірі

ОрташаБаға = Қосынды БағаСаны

Жоғарыда келтірілген программаларды іске қосудың қажетті шарты, ондағы анықталған жиымдардың нақтылы мәндермен толтырылуы болып табылады. Жиымдарды мәндермен толтыру үшін де жоғарыда 2.11 және 2.12-мысалдарда қолданылғандарға ұқсас санауышты циклдерді пайдалануға болады. Мысалы былай:

For ОқушыНөмірі = 1 To 25

For СабақНөмірі = 7 To 30

Баға(ОқушыНөмірі, СабақНөмірі = _

ІnputBox("ОқушыНөмірі:" & ОқушыНөмірі & _

" СабақНөмірі:" & СабақНөмірі, "Кезекті бағаны ендіру ")

Next СабақНөмірі

Next ОқушыНөмірі

2.13-мысал. Пішінде 10 цифры және мәтін өрісі бар 10 командалық батырма орналастырылған. N батырмасын шерту мәтіндік өрісте 2N-re тең санды (2 8-сурет) шақыруы тиіс.

Командалық батырмалар — объектілер жиымын пайдаланып берілген есепті шешу үшін он процедура-оқиғаның орнына тек бір ғана процедураны пайдалануға болады:

Private Sub Command_CHck(lndex As Integer,)

Textl. Text = Str(2" Index)

End Sub

2.8-cypeт. Командалық батырмалардың - объектілерді

басқару жиымының жұмысын демонстрациялау.

2,1 есеп. Пайдаланушы іске қосқанда жуйелік ендіру терезесінің көмегімен тегі жиымы (мысалы, өзінің сыныбындағы оқушылардың тектерін) толтырылатын қосымшаны жобалаңыздар.

Командалық батырманы шерткеннен кейін пішінде барлық ендірілген оқушылардың, тектері "баған турінде" басылып шығуы тиіс. Ал екі мәтін өрісінде ең үлкен және ең кіші символдардан тұратын 2 тегі (2.9 сурет) пайда болуы тиіс.

Нусқау: Жоғарыда және 2.13 - мысалдарда келтірілген кодтарды үлгі ретінде пайдаланыңыздар. (Қарапайым болу үшін жиым ұзындығы 4 элементке дейін қысқартылған.)

Шешімі. Бұл есепті шешетін программа мына төмендегідей болады:

2.9-сурет. Программа жұмысының мумкін болатын нәтижесі.

Dim Нөмірі As Integer ' Кәдімгі айнымалыларды хабарлау.

Dim Тегі(24) As String ' Бірөлшемді жиымды хабарлау.

' (Сыныпта 25 оқушы бар.)

Private Sub Form_Load()

For Нөмірі = 0 To 24

Тегі(Нөмірі) =_

InputBox(ОқушыНөмірі: "& Нөмірі + 1, _

"Кезекті тегін ендіру " )

Next Нөмірі End Sub

Private Sub Command4_Click()

Dim ТегіЕңҮлкҰзын As String ТегіЕңКішіҰзын As String

ТегіЕцҮлкҰзын = Тегі(0)

ТегіЕңКішіҰзын = Тегі(0)

For Нөмірі = 0 To 24 Print Тегі(Нөмірі)

If Len (Тегі(Нөмірі)) Lеп(ТегіЕң Үлк Ұзын) Then

ТегіЕңҮлкҰзын = Тегі(Нөмірі)

End If

If Len (Тегі(Нөмірі)) Len (ТегіЕцКішіҰзын) Then

ТегіЕңҮлкҰзын = Тегі(Нөмірі)

End If

Next Нөмірі

Textl.ТехІ=ТегіЕңҮлкҰзын: Техі2.ТехІ=ТегіЕңКІшіҰзын

End Sub

2.2-ecen. Алдыңғы есептің шешімін ендірілген тізімдегі тегi орташа ұзындығын есептеумен толықтырыңыздар. Командалық батырманы шерткеннен кейін төменгі мәтіндік өрісте (2.10-сурет) пайдаланушы ендірген тегі орташа ұзындығының саны пайда болуы тиіс

Нусқау: Жоғарыда келтірілген 2 12-мысалдың кодын үлгі ретінде пайдаланыңыздар.

Шешімі. Commandl_Click процедура-оқиғасына КосындыҮзындық және ОрташаҰзындық сандық айнымалылардың анықтамасын ендіріңіздер, ал санауышты циклге мына қатарды қосыңыздар:

ҚосындыҰзындық = Қосынды Ұзындық + Lenf Тегі(Нөмірі))

2.10-сурет Программа жұмысының мумкін болатын нәтижесі.

Цикл аяқталғаннан кейін бірден тегі ұзындығының орташа мәні есептелетін болады:

ОрташаҰзындық = ҚосындыҰзындық 25

Техt3.Text = Str (ОрташаҰзындық)

2.3-есеп 2 12-мысалдағы жиымды толтыру үшін пайдаланушыға жұйелік Ендіру терезесінің мәтіндік өрісіне 750 рет санды ендіру керек болатындығын Сіздер мүмкін байқаған боларсыздар. (Олай болатыны кестеде 25 қатар және 30 баған бар) Бұл не оқушының сабақта алған бағасы, не егер оқушы баға алмаған болса, онда 0 болады.

Бірақ мектепте мұғалімдер қағида бойынша көп баға коя бермейді. Сондықтан пайдаланушыға өте көп нөлдерді ендіруге тура келеді! Мұны болдырмау үшін, Баға(ОқушыНөмірі, СабақНөмірі) екіолшемді жиымын толтырудың басқа программасын ойлап табыңыздар. Ол программада пайдаланушы тек нөл емес бағаларды ендіретін болсын

Нұсқау: Мына келесі идеяны пайдалауға болады. Санауышты циклдің комегімен барлық сабақтарды "аралап өтуге"болады.

Әрбір сабақ үшін осы сабақта тек нөл емес баға алған оқушылардың нөмірлерін ғана ендіру керек. Мұндай әрбір оқушы үшін оның алған бағасын ендіру керек. Бір сабақтағы бағаларды ендіру үшін шартты циклді пайдаланыңыздар.

Шешімі. Жиымды мәндермен толтыратын процедура коды мынадай болуы тиіс:

Private Sub Form_Load()

For СабақНөмірі = 0 To 30

ОқушыНөмІрі=Val(InputВох("СабақНөмі рі:"&_ СабақНөмірі & _

" ОқушыНөмірін ендіріңдер:"," ОқушыНөмірін ендіру"))

Do While ОқушыНөмірi 0

Баға(ОқушыНөмірі, СабақНөмірі) = _

InputВох("СабақНөмірі:" & СабақНөмірі & _

" ОқушыИөмірі:"& ОқушыНөмірі, _

''Кезекті Бағаны ендіру ")

ОқушыНөмірі= Val(InputВох("СабақНөмірі:''&_

СабақНөмірі & _

"ОқушыНөмірін ендіріңдер:", "ОқушыНөмірін ендіру"))

Loop

Next СабақНөмірі

End Sub

2.4-есеп. Алдыңғы есепті баламалы идеяның көмегімен шығарыңыздар. Санауышты циклдің көмегімен сабақтарды емес, оқушыларды "аралап өтіңіздер". Әрбір оқушы үшін оның нөлдік емес баға алған сабақтарының нөмірлерін және осы бағаларды ендіріңіздер. Бір оқушының бағасын ендіру үшін шартты циклді пайдаланыңыздар. Сіз қалай ойлайсыз қандай жағдайда 2.3-есепті шешу, 2.4-есепті шешуге қарағанда пайдаланушыға ендірудің жақсы тәсілі береді, ал қандай жағдайда керісінше болады?

Шешімі. Жиымды мәндермен толтыратын процедура коды мына төмендепдей болуы мүмкін:

Private Sub Form_Load()

For ОқушыНөмірі — 0 To 25

ОқушыНөмірі=Val(InputВох( "ОқушыНөмірі: "&_

ОқушыНөмірі & _

" СабақНөмірін ендіріңдер:"," СабақНөмірІн ендіру"))

Do While СабақНөмірі 0

Баға(ОқушыНөмірі, СабақНөмірі) =_

InputВох("ОқушыНөмірі:" & ОқушыНөмірі & _

" СабақНөмірі: "& СабақНөмірі, _

"Кезекті Бағаны ендіру ")

СабақНөмірі =Val(InputВох("ОқушыНөмірі: "&_

ОқушыНөмірі & _

" СабақНөмірін ендіріңдер.", " СабақНөмірІн ендіру"))

Loop

Next ОқушыНөмірі

End Sub

2.5-eceп. Сіздің компьютеріңізде пернетақта істен шығып қалды деп есептеңіз. Ал тышқан дұрыс жұмыс істейді. Тышқанды Сіздің қосымшаңыздың мәтін өрісінде кез келген мәтінді ендіру үшін пайдалануға бола ма? Ойланып қарасақ пайдалануға болады екен! Ол үшін шамамен пішіні мына төмендегідей (2.11-сурет) болатын "Тышқанның пернетақтасы" деп аталатын қосымшаны жобалауға тура келеді.

2.11-сурет. Тышқанның пернетақтасы қосымшанының пішіні.

Бұл жерде пернелер командалық батырмалармен ауыстырылған, ал сол немесе басқа пернені басу тышқанның соған сәйкес батырмасын шертумен ұқсатылады.

Мұнда әріптер, цифрлар және арнайы таңбалар жазылған 47 пернеден басқа, басқарушы батырмалардың бар екендігіне назар аударыңыздар! Олардың қандай қызмет атқаратынын Сіз өзіңіз оңай аңғара аласыз.

Алдымен жоғарыда көрсетілген "Пернетақтаны " жасау есебінің бір бөлігін шығарыңыздар. Айтайық, Сіздің пішініңізде 6 символ және бір Бос орын үшін барлығы 7 перне және әрине, Сіз өзіңіздің қолыңыз жететін символдардан тұратын қатарды ендіруге арналған мәтшдік өріс бар екен дейік.

Сенімді болу үшін латынның Е, R, I, S, F және Н немесе дәл сол сияқты орыстың У, К, Ш, Ы, А және Р әріптері бар "реальды пернелерді" алыңыздар. Пішінге екі "басқарушы пернені" орналастырыңыздар:

томенгі регистрден жоғарғы регистрге және керісінше өтетін;
пернетақтаны Жайластыруды (Раскладка) өзгертетін, яғни орыс алфавитінен латын алфавитіне және керісінше өтетін.
Мына төменде берілген есеп үшін пішіннің шамамен алғандағы түрі (2.12-сурет) корсетілген.

Нусқау: Өзіңіздің программаңызда кейбір символдың ASCII коды болып табылатын бүтін санды, яғни жалғыз ғана параметр: Form_KeyPress жүйелік процедура-оқиғасын пайдаланыңыз.

2.12-сурет. Тышқанның пернетақтасынан алынған "реальды" пернелер.

Бұл процедураны шақыруды Әріп-Click процедурасынан программалық жолмен жүзеге асыруға болады. Әріп-бұл командалық батырмалар жиымының аты (Берілген жағдайда бұл жиымда 6 элемент бар.)

Символды ASCII кодына және керісінше ASCII кодынан символға түрлендіру үшін Asc және Сһг функцияларын пайдаланыңыздар.

Әрбір әріп жазылған пернені басу 4 әріптің бірін — латынның бас әріпін, латынның кіші әріпін, орыстың бас әріпін және орыстың кіші әріпін ендіруді біддіреді.

Осы нүсқалардың бірін тандау үшін екі айнымалыны, мысалы, Регистр және Жайластыру пернелерін пайдаланыңыздар. Осы айнымалылардың аттарының басқарушы командалық батырмалардың аттарымен бірдей болып қалмауы үшін қам жеңіздер. Кері жағдайда Сіздің программаңызды компиляциялағанда қате кеткендігі туралы хабар шығады.

Шешімі. Есепті шешетін программа мынадай болады:

Dim s As String, As Integer, As Integer

Private Sub Form_Paint()

Textl.Text = ""; TexrlSetFocus

Регистр.Caption = "Тем."': Жайластыру. Caption = "Лат."'

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer )

s = s & Chr(KeyAscii)

Textl. Text = s

Бос opbtH.SeiFocus

End Sub

Private Sub Әріп_СНсһ(Index As Integer )

Select Case index

Case 0: hi = "e": b2 = "E": b3 = "y": Ь4 = "У"

Case 1: bJ ="r": Һ2 = "R": ЬЗ = "к": Ь4 = "К"

Case 2 : Ы ="i": Ь2 = "I": ЬЗ = "ш": Ь4 = "Ш"

Case 3 : Ы -"s": Ь2 = "S": ЬЗ = "ы ": Ь4 = "Ы"

Case 4 : Ы ='": Ь2 = "F" : ЬЗ = "а": Ь4 = "А"

Case 5: Ы ="һ": Ъ2 = "Н": ЬЗ = "р": Ь4 = "Р"

End Select

If Жайлас = 0 Then

If Рег. = 0 Then Form_Key'Press Asc(bl) Else Fom_KeyPress _

Asc(b2)

Else

If Pee. = 0 Then Form_KeyPress Asc(b3) Else Form_Key'Press_

Asc(b4)

End If

End Sub

Private Sub Регистр_Click()

If Рег. = О Then

Рег =7 . Регистр. Caption = "Жог "

Else

Рег -1: Регистр Caption = "Төм "

End If

Бос opын.SetFocns

End Sub

Private Sub Жайластыру_Сһсһ()

If Жайлас. = О Then

Жайлас =1 : Жайластыру. Caption = "Рус."

Else

Жайлас. = ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
VISUAL ВАSІС-ТЕ ПРОГРАММАЛАУ НЕГІЗДЕРІ
Орта мектепте информатика пәнін оқытудың негіздері
Ақпараттық (информациялық) қызмет көрсету жүйелері мен компьютерлік технологияны білім беруде қолдану мәселесі
Ms access-ті үйренуде компьютерді пайдаланудың алғышарттары
Delphi ортасында «Кітапхана» ақпараттық жүйесін құру
Visual Basic 6 ортасында программалық код
Қасиеттер тізімі
Файлдар және файлдық жүйе
Visual Basic 6 жобалау ортасы
Оқу үрдісіндегі компьютерлік технология
Пәндер