Статья отправлена lamed (Профессор)
дата отправки: 31.03.2011, 17:27
Лабораторные работы по информатике. VBA. Select..Case
Добрый день, уважаемые читатели. Продолжаем выполнение лабораторных работ по программированию на VBA. Тема сегодняшней работы - Использование конструкции Select..Case. Как и в предыдущей работе, предлагается рассмотреть примеры программ, скопировать их в созданный модуль, запустить; выполнить задания.
Задание 1. По цвету светофора определить действия пешехода. Версия с использованием If
Код:
Sub p21() \' Светофор Dim цвет As String \'цепочка символов переменной длины \' может быть нулевой длины, то есть не содержащей ни одного символа Dim указание As String * 20 \'или 20 байт
цвет = InputBox("Какой цвет у св
етофора?") If цвет = "красный" Then указание = "стойте" ElseIf цвет = "желтый" Then указание = "ждите" ElseIf цвет = "зеленый" Then указание = "идите" Else указание = "светофор неисправен" End Select
MsgBox (указание) End Sub
Теперь версия с использованием Select..Case
Код:
Sub p22() \' Светофор Dim цвет As String \'цепочка символов переменной длины \' может быть нулевой длины, то есть не содержащей ни одного символа Dim указание As String * 20 \'или 20 байт
цвет = InputBox("Какой цвет у светофора?") Select Case цв
ет Case "красный" указание = "стойте" Case "желтый" указание = "ждите" Case "зеленый" указание = "идите" Case Else указание = "светофор неисправен" End Select
MsgBox (указание) End Sub
Дополнительное задание: введено слово "Красный". Что выдаст программа?, почему?
Задание 2. Определить число дней в месяце (год невисокосный). Версия с использованием If
Код:
Sub p23() \'Количество дней в месяце, год - невисокосный Dim мес As Integer, дни As Integer
\' вводим номер месяца и присваиваем его переменной мес
мес = InputBox("Введите № месяца") \' анализируем переменную (содержимое ячейки) мес If (мес = 1) Or (мес = 3) Or (мес = 5) Or (мес = 7) Or (мес = 8) Or (мес = 10) Then дни = 31 ElseIf (мес = 4) Or (мес = 6) Or (мес = 9) Or (мес = 11) Then дни = 30 ElseIf (мес = 2) Then дни = 28 Else дни = -1 \'ввод ошибочного значения End If
\' если дни=-1, считаем ошибкой If дни > 0 Then MsgBox (дни) Else MsgBox ("ошибка, неверный ввод!") End If End Sub
Теперь версия с использованием Select..Case
Код:
Sub p24() \'Количество дней
в месяце, год - невисокосный Dim мес As Integer, дни As Integer
\' вводим номер месяца и присваиваем его переменной ме
с мес = InputBox("Введите № месяца") \' анализируем переменную (содержимое ячейки) мес Select Case мес Case 1, 3, 5, 7, 8, 10, 12 дни = 31 Case 4, 6, 9, 11 дни = 30 Case 2 дни = 28 Case Else дни = -1 \'ввод ошибочного значения End Select
\' если дни=-1, считаем ошибкой If дни > 0 Then MsgBox (дни) Else MsgBox ("ошибка, неверный ввод!") End If
End Sub
Задания для самостоятельной работы: 1. Программа запрашивает у студента баллы, полученные на экзамене по информатике и печатает: «отлично», «хорошо», «удовлетворительно», «неудовлетворительно» 2. Программа запрашивает оценки у студента по всем предметам в сессию и печатает средний балл, а также: «отлично», «хорошо», «удовлетворительно», «неудовлетворительно» 3. Программа запрашивает у студента процент выполнения
заданий на экзамене и печатает: от 90 до 100 - «отлично», не менее 80 - «хорошо», не менее 60 - «удовлетворительно», меньше 60 (но не меньше нуля) - «неудовлетворительно», во всех остальных случаях – ошибка. 4. Программа запрашивает у студента номер дня и выдает количество уроков.
С замечаниями, пожеланиями и вопросами обращайтесь в личную почту. Удачи!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.