Розробка практичного завдання для програмування ня GAMBAS( або VisualBasic) - 3
Про матеріал
Матеріал розроблено для використання при вивченні мови програмування GAMBAS (в операційній системі GNU Linux), або MS Visual Basic. Розглянута тема керування порядком виконання команд за допомогою операторів If...Then.. Else, Case.....Case Else. Надано готові приклади, які учні можуть спочатку повторити, а потім модифікувати за власним розсудом, або згідно вказівок учителя.ПРАКТИЧНА РОБОТА З
ПРОГРАМУВАННЯ АЛГОРИТМІВ РОЗГАЛУЖЕНИХ ОБЧИСЛЮВАЛЬНИХ ПРОЦЕСІВ
1. МЕТА РОБОТИ
Вивчення методики програмування алгоритмів розгалужених обчислювальних процесів. Придбання навиків упорядкування програм із використанням операторів передачі управління різноманітних типів.
2. ЗАВДАННЯ І ПОРЯДОК ВИКОНАННЯ
2.1. Вивчити теоретичний матеріал.
2.2. Скласти схему алгоритму рішення задачі відповідно до варіанта завдання.
2.3. Розробити програму, яка реалізує алгоритм, ввести її в комп’ютер, і отриматирішення задачі.
Теоретичний матеріал.
Оператори керування порядком виконання команд
Оператори керування порядком виконання команд застосовуються в наступних прикладах. Вони дозволяють оцінити реальну ситуацію й адекватно реагувати на неї, приймаючи рішення про подальші дії. GAMBAS та Visual Basic надають для цього ряд функцій і операторів.
Оператор If...Then.. Else.
Оператор If...Then.. Else – це повний умовний оператор. Його скорочена форма оператор If...Then має наступний синтаксис: If умова Then оператор End If
Дія оператора: якщо умова після If істинна, тобто результат дорівнює True, виконується оператор, назначений за Then. Якщо ж результат дорівнює False, то виконується наступний оператор:
If умова Then
Оператор1
Else
Оператор2
End If
Приклад
Private Sub Command1_Click()
a = 6
If a = 7 Then
Print "visual"
Else
Print "basic"
End If
End Sub
Блоковий синтаксис:
If умова1 Then
Оператор 1
ElseIf умова2 Then Оператор 2
Else
Оператор 3
End If
Приклад. Підрахуємо податок залежно від зарплати.
Dim D, n As Integer
D = Val(Text1.Text)
If D <= 200 Then n = D * 0.15
ElseIf D >= 200 And D <= 500 Then n = D * 0.2
Else
n = D * 0.28
End If
Блоковий запис надає такі ж можливості, як і однорядковий, але якщо в залежності від умови необхідно виконати не просту команду, а групу операторів, варто використовувати блоковий синтаксис. При формуванні більш складних умов блоковий запис зручніший. Використання в цьому випадку блокового синтаксису покращує читабельність програми
Контрольні запитання.
1. Дія повного умовного оператора?
2. Що таке Блоковий синтаксис ?
3. Коли можна застосовувати скорочену форму умовного оператора?
Завдання для виконання в класі.
1. Розрахунок пори року за номером місяця
Private Sub Command1_Click()
Dim NM As Integer
NM = InputBox("Введіть цифрами порядковий номер пори року від 1 до
12, щоб дізнатися пору року", "Введення даних")
If (NM >= 3) And (NM <= 5) Then
Print NM; " це - Весна"
ElseIf (NM >= 6) And (NM <= 8) Then Print NM; " це - Літо"
ElseIf (NM >= 9) And (NM <= 11) Then
Print NM; " це - Осінь"
Else
Print NM; " це - Зима"
End If
End Sub
2. Калькулятор на Case
Dim A As Single, B As Single, Vidpovid As Single
Dim D As String
Private Sub Command1_Click()
A = InputBox("Введіть перше число", "Введення даних")
B = InputBox("Введіть друге число", "Введення даних")
D = InputBox("Введіть символ дії: *, /, +, -", "Введення даних")
Select Case D
Case "-"
Vidpovid = A - B
Label1.Caption = Vidpovid
Case "+"
Vidpovid = A + B
Label1.Caption = Vidpovid
Case "*"
Vidpovid = A * B
Label1.Caption = Vidpovid
Case "/"
Vidpovid = A / B
Label1.Caption = Vidpovid End Select
End Sub
3. Калькулятор на Case Else & Label
Dim A As Single, B As Single, Otvet As Single
Dim Z As String
Private Sub Command1_Click()
A = InputBox("Введіть перше число", "Введення даних")
B = InputBox("Введіть друге число", "Введення даних")
Z = InputBox("Введіть символ дії: *, /, +, -", "Введення даних")
Select Case Z
Case "-"
Otvet = A - B
Label1.Caption = Otvet
Case "+"
Otvet = A + B
Label1.Caption = Otvet
Case "*"
Otvet = A * B
Label1.Caption = Otvet
Case "/"
Otvet = A / B
Label1.Caption = Otvet
Case Else
MsgBox ("Ви натиснули не ту кнопку!") End Select End Sub