Лекция: Приклад застосування оператора Select Case
Щоб розглянути використання оператора Select Case на прикладі потрібно доробити програму, створену в п.1 Після редагування програма повинна включати засоби аналізу клавіші, натиснутої при введенні даних у полях txta, txtb, txtx, txty. Припустимим вважається натискання спеціальних клавіш (наприклад, клавіш керування курсором, Del, Home), клавіші Backspace, десяткової крапки, цифр від 0 до 9. У форму необхідно помістити ще один елемент — етикетку lblMesKey для виведення повідомлення у випадку натискання неприпустимої клавіші. Після натискання будь-якої клавіші в текстовому полі, якому відповідає подія KeyPress, потрібно виконати аналіз натиснутої клавіші. Якщо натиснута неприпустима клавіша, то видається повідомлення про помилку і вміст текстового поля знищується, у противному випадку ніяких дій не виконується. Аналіз натиснутої клавіші виконується за допомогою цілої числової змінної KeyAscii. Через цю змінну в момент натискання (подія KeyPress) процедурі, яка відповідає події, передається значення ASCII-коду натиснутої клавіші. Процедура повинна перевіряти символ, що вводиться, на припустимість. Список припустимих у процедурах кодів наведено в таблиці:
| Значення змінної KeyAscii | Пояснення |
| Спеціальні клавіші | |
| Backspace | |
| Десяткова крапка | |
| 48. .57 | Цифри від 0 до 9 |
Рисунок 3 — Вікно програми -приклада використання оператора Select Case
До коду програми потрібно додати процедуру, яка подана в таблиці.
| Дані в рядку коду | Коментар |
| Private Sub txta_KeyPress (KeyAscii As Integer) | Процедура, що виконується у випадку натискання будь-якої клавіші в полі txta для введення перемінної а. Для створення процедури потрібно виконати подвійне клацання лівою кнопкою миші на текстовому полі. |
| lblMesKey.Caption = " " | Властивості Caption етикетки lblMesKey (для виведення повідомлення про помилку) привласнюється значення “ëû“ (порожній рядок). |
| Select Case KeyAscii | Початок оператора Select Case, що реалізує розгалуження виконання програми в залежності від значення стандартної змінної KeyAscii |
| Case 0, 8, 46, 48 To 57 | У тому випадку, якщо змінна KeyAscii дорівнює 0, 8 або 46, або знаходиться в діапазоні від 48 до 57 ніяких дій не виконується. |
| 'Припустиме значення | Рядок коментарю, який введено для зручності читання коду програми. |
| Case Else | інакше, коли жодна з умов не відповідає значенню змінної KeyAscii виконуються такі дії |
| 'Неприпустиме значення | |
| lblMesKey.Caption = «Натиснута неприпустима клавіша» | Властивості Caption етикетки lblMesKey привласнюється значення "Натиснута неприпустима клавіша". |
| txtа.Text = " " | Властивості Text текстового поля txtа привласнюється значення “ëû“ (порожній рядок). |
| KeyAscii = 0 | Змінної KeyAscii присвоюється значення 0. |
| End Select | Завершення оператора Select Case. |
| End Sub | Завершення процедури txtа_KeyPress |
| Private Sub txtb_KeyPress (KeyAscii As Integer) | Процедура, що виконується у випадку натискання будь-якої клавіші в полі txtb для введення перемінної b. Для створення процедури потрібно виконати подвійне клацання лівою кнопкою миші на текстовому полі. |
| lblMesKey.Caption = " " | Властивості Caption етикетки lblMesKey (для виведення повідомлення про помилку) привласнюється значення “ëû“ (порожній рядок). |
| Select Case KeyAscii | Початок оператора Select Case, що реалізує розгалуження виконання програми в залежності від значення стандартної змінної KeyAscii |
| Case 0, 8, 46, 48 To 57 | У тому випадку, якщо змінна KeyAscii дорівнює 0, 8 або 46, або знаходиться в діапазоні від 48 до 57 ніяких дій не виконується. |
| 'Припустиме значення | Рядок коментарю, який введено для зручності читання коду програми. |
| Case Else | інакше, коли жодна з умов не відповідає значенню змінної KeyAscii виконуються такі дії |
| 'Неприпустиме значення | |
| lblMesKey.Caption = «Натиснута неприпустима клавіша» | Властивості Caption етикетки lblMesKey привласнюється значення "Натиснута неприпустима клавіша". |
| txtb.Text = " " | Властивості Text текстового поля txtb привласнюється значення “ëû“ (порожній рядок). |
| KeyAscii = 0 | Змінної KeyAscii присвоюється значення 0. |
| End Select | Завершення оператора Select Case. |
| End Sub | Завершення процедури txtb_KeyPress |
| Private Sub txtx_KeyPress (KeyAscii As Integer) | Процедура, що виконується у випадку натискання будь-якої клавіші в полі txtx для введення перемінної x. Для створення процедури потрібно виконати подвійне клацання лівою кнопкою миші на текстовому полі. |
| lblMesKey.Caption = " " | Властивості Caption етикетки lblMesKey (для виведення повідомлення про помилку) привласнюється значення “ëû“ (порожній рядок). |
| Select Case KeyAscii | Початок оператора Select Case, що реалізує розгалуження виконання програми в залежності від значення стандартної змінної KeyAscii |
| Case 0, 8, 46, 48 To 57 | У тому випадку, якщо змінна KeyAscii дорівнює 0, 8 або 46, або знаходиться в діапазоні від 48 до 57 ніяких дій не виконується. |
| 'Припустиме значення | Рядок коментарю, який введено для зручності читання коду програми. |
| Case Else | інакше, коли жодна з умов не відповідає значенню змінної KeyAscii виконуються такі дії |
| 'Неприпустиме значення | |
| lblMesKey.Caption = «Натиснута неприпустима клавіша» | Властивості Caption етикетки lblMesKey привласнюється значення "Натиснута неприпустима клавіша". |
| txtx.Text = " " | Властивості Text текстового поля txtx привласнюється значення “ëû“ (порожній рядок). |
| KeyAscii = 0 | Змінної KeyAscii присвоюється значення 0. |
| End Select | Завершення оператора Select Case. |
| End Sub | Завершення процедури txtx_KeyPress |
7. Програмування циклічних обчислювальних процесів.
Циклічними є алгоритмічні процеси, які дозволяють повторювати частину програми декілька разів. Кожне повторювання операторів всередині циклу називають ітерацією. Кількість повторювань (ітерацій) може бути відомою заздалегідь або залежати від істинності деякої логічної умови.