Цель:
Цели урока: Образовательная: Познакомить учащихся с применением логических операций AND (И) и OR (ИЛИ) в Visual Basic. Научить учащихся составлять программы с использованием этих операций. Развивающая: Развивать у учащихся навыки работы с ПЭВМ, память, внимание, мышление, речь, кругозор. Воспитательная : Воспитывать у учащихся интерес к предмету, бережное отношение к учебной технике. Обеспечение занятия: 1). ПК – ЭВМ – 12 шт. 2). Раздаточный материал Литература: Н.Г. Волченков «Программирование на Visual Basic 6.0 » С.Н Лукин «Самоучитель работы на Visual Basic 6.0» Вид занятия: комбинированное – 1ч. План занятия: 1. Организационный момент – 2 2. Опрос по домашнему заданию – 10 3. Изложение новой темы – 15 4. Практическая работа – 15 5. Д/з – 3 ХОД УРОКА.
1. Организационный момент – 2 (Приветствие, проверка посещаемости, объявление целей и задач урока) 2. Опрос по домашнему заданию – 10
Задача №1: Компьютер спрашивает школьника, какую он получил отметку по физике, и реагирует на нее подходящим текстом. Заполните пропуски в коде процедуры. Dim Otmetka As Integer Private Sub Command1_Click() Otmetka = InputBox("Какую отметку ты получил по физике?") If Otmetka = 1 …. Otmetka = 2 …. ….."Кошмар!" ……Otmetka = 3 ….. …… "Неважно" …….Otmetka = 4 …. ……."Неплохо" ……Otmetka = 5 …. ……"Молодец!" …… ……"Таких отметок не бывает" End
Задача №2: После старта программы цвет фона у формы серый, объясните, что произойдет при нажатии кнопки Command1…
Private Sub Command1_Click() If Form1.BackColor = vbRed Then Form1.BackColor = vbBlue Else Form1.BackColor = vbRed End If End Sub 3.Изложение новой темы – 15
На предыдущем занятии было показано, как использовать инструкцию If...Then для выполнения различных блоков кода при различных условиях. Хотя в операторе If...Then при помощи ключевого слова ElseIf возможно проверить более двух условий, оператор Select Case обеспечивает гораздо более хороший способ проверки нескольких условий. Оператор Select Case позволяет использовать столько условий (или случаев), сколько требуется, делая удобным написание кода для ситуаций, в которых имеется множество вариантов. Вот синтаксис оператора Select Case: Select Case проверяемое выражение [Case значение, значение…… [операторы операторы ……………...]] [Case значение, значение…… [операторы операторы ……………...]] …………………….………………. [Case Else [операторы операторы ……………...]] End Select Здесь значение - это: - выражение - выражение To выражение - Is знак сравнения выражение
Например, предположим, что программа использует переменную String для хранения выбора цвета и требуется получить значение цвета. Код оператора Select Case может выглядеть следующим образом: VB Select Case Color Case "red" MsgBox("КРАСНЫЙ - red") Case "blue" MsgBox("ГОЛУБОЙ - blue") Case "green" MsgBox("ЗЕЛЕНЫЙ - green") End Select Возьмем, например, такую задачу: Компьютер спрашивает школьника, какую он получил отметку по физике, и реагирует на нее подходящим текстом. Вот программа без нововведений, использующая If: Dim Otmetka As Integer Private Sub Command1_Click() Otmetka = InputBox("Какую отметку ты получил по физике?") If Otmetka = 1 Or Otmetka = 2 Then Print "Кошмар!" ElseIf Otmetka = 3 Then Print "Неважно" ElseIf Otmetka = 4 Then Print "Неплохо" ElseIf Otmetka = 5 Then Print "Молодец!" Else Print "Таких отметок не бывает" End If End Sub Здесь может вызвать раздражение слишком часто встречающееся имя Otmetka, а также то, что и в такой простой задаче не обошлось без логических операций. Хорошо бы программу можно было писать попроще, например, так (по-русски): Выбери вариант отметки Вариант 1, 2 печатай "Кошмар!" Вариант 3 печатай "Неважно" Вариант 4 печатай "Неплохо" Вариант 5 печатай "Молодец!" Вариант остальное печатай "Таких отметок не бывает" Конец выбора И такой оператор варианта был придуман и назван Select Case, что и означает в переводе ВЫБЕРИ ВАРИАНТ. Русский вариант программы по-английски: Dim Otmetka As Integer Private Sub Command1_Click() Otmetka = InputBox("Какую отметку ты получил по физике?") Select Case Otmetka Case 1, 2 Print "Кошмар!" Case 3 Print "Неважно" Case 4 Print "Неплохо" Case 5 Print "Молодец!" Case Else Print "Таких отметок не бывает" End Select End Sub Логика работы Select Case абсолютно такая же, как и у блочного If. В процессе исполнения оператора компьютер сравнивает значение переменной Otmetka по очереди со всеми значениями, перечисленными в вариантах. Наткнувшись на совпадающее значение, он выполняет операторы, стоящие в этом варианте. На этом исполнение оператора Select Case завершается. Если же совпадающего значения так и не нашлось, то выполняются операторы, стоящие в варианте Else (в нашей программе он полезен на тот случай, если ученик болен манией величия и вводит число 6). Оператор Select Case предоставляет более широкие возможности, чем в только что рассмотренном примере. Проиллюстрируем их на другом примере: Private Sub Command1_Click() a = 3 Select Case a * a + 1 Case 8, 4 * a, 26 k = 0 Print k Print a Case 7, 10, 84 To 90 k = 1 Print k Case Is < 0, 2, 4, 12 To 18 + a, 44, 68, Is > 100 + a k = 3 End Select End Sub Эта программа напечатает 1. Здесь мы видим несколько новых для нас элементов: Во-первых, после слов Select Case стоит не переменная, а выражение, поэтому с перечисленными в вариантах значениями будет сравниваться число 10, полученное как 3*3+1. В качестве значений вариантов тоже могут быть выражения, как, например, у нас - 4 * a. Во-вторых, здесь у нас в двух вариантах не по одному, а по нескольку выполняющихся операторов. В-третьих - конструкция 84 To 90. Она обозначает то же, что и 84,85,86,87,88,89,90, и служит в нашем случае для сокращения записи. В-четвертых - конструкция Is < 0. Слово Is служит заменителем выражения a*a+1 и тоже используется для сокращения. Таким образом, Select Case не только сравнивает значения на равенство, но и проверяет неравенства. В-пятых, здесь отсутствует вариант Else. Это значит, что если бы в нашей программе мы вместо a=3 написали a=0, то оператор Select Case, не найдя совпадения, не выбрал бы ни один из своих вариантов и, не найдя также Else, завершил бы свою работу, так ничего и не сделав. Чем платим за удобство Select Case по сравнению с If? Что может If такого, чего не может Select Case? Самое главное - условия в If могут быть совершенно произвольны, а в Select Case мы привязаны к a*a+1. Выражения могут быть не только числовые, но и строковые. Пример: Private Sub Command1_Click() a = "Дом" Select Case a Case "Домик" k = 3 Print a Case "Дом" k = 0 Print k End Select End Sub Здесь будет напечатан 0. 4. Практическая работа – 15 Задание 1: Ученик вводит с клавиатуры букву русского алфавита. Компьютер должен сказать, какой звук обозначает это буква - гласный, согласный звонкий, согласный глухой или какой-нибудь другой (можно и НЕ ЗНАЮ). 6. Задание на дом Задание 2: Запрограммируйте приложение, с помощью которого можно определить день недели по известной дате. Примечание: при изучении нового материала учащиеся делают в тетрадь необходимые записи под руководством учителя.
|