Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Візуал Бейсік 2010 Глінський.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.12 Mб
Скачать

§ 15. Алгоритмічна конструкція вибір

Алгоритмічна конструкція «вибір» — різновид конструкції роз­галуження. «Вибір» зручно використовувати, коли є декілька умов, від яких залежить виконання тої чи іншої дії, а також то­ді, якщо умови можна подати за допомогою набору значень.

1. Команда Select Case. Вибір реалізують у кодах за допомогою оманди вибору Select Case, що має такий загальний вигляд:

Select Case <вираз>

Case «набір значень 1>

«серія команд 1>

Case <набір значень 2>

«серія команд 2>

Case Else

«серія команд>

End Select

Дія команди. Якщо значення виразу збігається із деяким зна­ченням з набору, то виконується серія команд, записана під цим набором, інакше виконується серія, зазначена після службових слів Case Else. Частини команди Case Else «серія команд> може і не бути.

Набори значень після службового слова Case можна задати де­кількома способами. Вони наведені нижче на прикладах:

Case 4, 5, 6, 7

'список цілих значень від 4 до 7

Case 4 To 7

'дійсні значення від 4 до 7

Case is > 0

'значення, більші від 0

Case "A" To "Z"

'("А", "В", "С" "Z").

Задача 1. Ввести номер місяця року. Вивести назву пори року.

Dim k As Integer, p As String

k = InputВох("Введіть k") 'k - номер місяця

Select Case k

Case 1,2,12

p = "Зима"

Case 3, 4, 5

p = "Весна"

Case 6, 7, 8

p = "Літо"

Case Else

p = "Осінь"

End Select

<вивести p>

Якщо k = 3, to p = "Весна", якщо k = 12, то p = "Зима".

2. Задача про країни. Продемонструємо використання команди ви­бору для розв’язування задачі про країни, яку ми розглядали в § 13.

Задача 2. Надати довідку про задану країну (назву столиці та кількості населення), застосувавши команду Select Case.

’ Задача про країни із Select Case

Dim kr As String, st As String, nas As Integer

10: kr = ІпріЛВох("Введіть назву країни")

Select Case kr

Case "Угорщина"

st = "Будапешт": nas = 11

Case "Італія"

st = "Рим": nas = 60

Case "Греція"

st = "Афіни": nas = 10

Case "Туреччина"

st = "Анкара": nas = 55

Case "Єгипет"

st = "Каїр": nas = 53

Case"Непал"

st = "Катманду": nas = 18

Case "Бельгія"

st = "Брюссель": nas = 10

Case Else

<вивести "Цієї країни немає у списку"> : GoTo 10

End Select

<вивести "столиця -" + St +", населення -" + Str(Nas) + _

"млн осіб">

Якщо користувач неправильно введе вхідні дані, то отримає по­відомлення «Цієї країни немає у списку».

Правило. В алгоритмі треба передбачати реакції на можливі не­правильні дії користувача.

Завдання 1. Виконайте програму в консольному режимі. Вве­діть на запит комп’ютера слово Італія й отримайте таку довідку про цю країну: столиця - Рим, населення - 60 млн осіб.

Завдання 2. Введіть під час діалогу як назву країни слово Ук­раїна. Отримаєте повідомлення «Цієї країни немає у списку» і за­прошення продовжити роботу: «Введіть назву країни». Тепер вве­діть назву країни, яка зазначена в коді. Отримаєте відповідь.

Завдання 3. Додайте до коду дані ще про дві країни, які візь­міть у мережі.

Завдання 4. Задачу 2 реалізуйте як проект. Виведіть дані (kr, st, nas) у три підписані текстові поля. Застосуйте кнопку «Обчислити», код для неї наведено вище. В код вставте додатково такі команди присвоєння:

TextBox1.Text = kr: TextBox2.Text = st: TextBox3.Text = nas

Завдання 5*. Дослідіть, яка орієнтовно відстань від Києва до цих країн, наприклад, з метою визначення часу авіаперельоту. Мо­дифікуйте алгоритм і код так, щоб отримати відомості про цю від­стань і час авіаперельоту. Швидкість літака 1000 км/год.

3. Задача про квитки. Розглянемо задачу про квитки в театр (подібні задачі — облік продукції на складі, купівля товарів, замов­лення квитків на потяг чи літак).

Задача 3. Ціна квитка в театр залежить від ряду. Нехай рядів є 16. Вартість одного квитка в ряді з номером k визначається так:

Скільки коштуватимуть п квитків у ряді з номером k? Вхідні дані (п і k) ввести з клавіатури?

Розгляньте код розв’язування задачі.

' Квитки

Dim k, n, Сіnа As Integer

n = InputBox(“Введіть кількість квитків”)

k = InputВох(“Введіть номер ряду”)

Select Case k

Case 1, 2, 3

Сіnа = 60

Case 4 To 10

Cina = 40

Case 11,12, 13,14,15

Cina = 30

Case 16

Cina = 20

Case Else

<вивести повідомлення "Такого ряду немає">

End Select

<вивести Str(n) + " квитків у ряді" + Str(k) + _

" коштують" + Str(n * Сіnа) + " грн">

Завдання 1. Виконайте програму і введіть дані так: 5 (квитків) і 3 (ряд). Переконайтеся, що відповідь буде така: 5 квитків у ряді З коштують 300 грн.

Завдання 2. Модифікуйте програму на випадок іншої кількості рядів і цін у театрі (кінотеатрі, цирку).

Завдання 3*. Застосувавши команду переходу, організуйте цикл з метою виведення на екран довідки про ціни в усіх рядах (у вигля­ді таблиці з двома стовпцями: ряд, ціна).

Вправи

  1. Замініть команду If х > 0 Then у = 1 Else у = 2 конструкцією Select Case.

  2. Розв’яжіть задачу № 6 свого варіанта з розділу «Задачі».

  3. Розв’яжіть задачу № 6 наступного варіанта з розділу «Задачі».