Мегаобучалка Главная | О нас | Обратная связь


Конструкция выбора Select Case



2020-02-04 220 Обсуждений (0)
Конструкция выбора Select Case 0.00 из 5.00 0 оценок




Лабораторная работа № 10

 

Цель работы:

1. Изучить конструкцию выбора Select Case

2.

 

При составлении вашей программы может так случиться, что потребуется проверять очень много условий. Если для этого использовать рассмотренную выше конструкцию If… Then … Else … EndIf, то можно столкнуться с трудностями при создании кода программы, т.к. в этом случае код может стать громоздким и трудным для понимания и восприятия. В этом случае можно воспользоваться конструкцией выбора Select Case, которая выполняет один из нескольких блоков операторов в зависимости от значения проверяемого выражения.

 

Синтаксис:

 

Select Case выражение

[Case список выражений - 1

   [операторы- 1]] ...

[Case список выражений - 2

   [операторы- 2]] ...

...

[Case список выражений - n

   [операторы- n]] ...

 

[Case Else

   [операторы_else]]

End Select

 

Синтаксис конструкции Select Case содержит следующие элементы:

Выражение (обязательный) - любое числовое или строковое выражение.

Список выражений (обязательный при наличии предложения Case) - список с разделителями, состоящий из одной или нескольких форм следующего вида: выражение; выражение To выражение; Is, оператор сравнения, выражение. Ключевое слово To задает диапазон значений от меньшего до большего. При использовании ключевого слова To перед ним записывается меньшее значение. Ключевое слово Is задает диапазон значений с помощью операторов сравнения.

Операторы (необязательный) - один или несколько операторов, выполняемых в том случае, если выражение совпадает с любым компонентом (условием) списка выражений.

Операторы else (необязательный) - один или несколько операторов, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case.

Если выражение совпадает с любым выражением из списка выражений в предложении Case, выполняются все операторы, следующие за данным предложением Case до следующего предложения Case, или, для последнего предложения, до оператора End Select. Затем управление передается к следующему за End Select оператору. Если выражение совпадает с выражениями из списка в нескольких предложениях Case, выполняется только первый подходящий набор операторов.

Предложение Case Else задает блок операторов else, которые будут выполнены, если не обнаружено ни одно совпадение выражения и компонентов списка выражений ни в одном из остальных предложений Case. Хотя данное предложение не является обязательным, рекомендуется помещать предложение Case Else в блок Select Case, чтобы предусмотреть появление неожиданных значений выражения в ходе выполнения программы. Если ни в одном предложении Case список выражений не содержит компонента, отвечающего аргументу выражение, и отсутствует оператор Case Else, выполнение продолжается с оператора, следующего за оператором End Select.

В каждом предложении Case допускается использование нескольких выражений или диапазонов. Например, допустима следующая строка программного кода:

 

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber

 

Как и для конструкции ветвления If … Then … ElseIf … EndIf допускаются вложенные операторы Select Case. Каждому вложенному оператору Select Case должен соответствовать оператор End Select.

По правилу хорошего стиля программирования операторы внутри конструкций Case должны писаться с отступом вправо. Это улучшает читаемость программы. Далее, в примере, рассмотрено как это делается.

Пример. Составить программу для вычисления функции:

 

Приведем код составленной программы:

 

Sub SelectCaseUse()

'объявляем переменные

Dim a As Single, b As Single, z As Single

Dim n As Integer

 

'вводим данные

a = CSng (InputBox("Введите a"))

b = CSng (InputBox("Введите b"))

 

 

Select Case a + b 'анализируемое выражение

Case 2 'если сумма равна 2

z = Log(Abs(a * b)) / Log(3)

n = 1

Case 3, 4, 5 'если сумма равна 3 или 4 или 5

z = а ^ 2 + 1 / Tan(b)

n = 2

Case 7 To 10 'если сумма лежит в диапазоне от 7 до 10

z = a - Sin(b) ^ 2

n = 3

Case Is > 12 'если сумма больше 12

z = Sqr(а ^ 2 + Ь ^ 2)

n = 4

Case Else 'во всех остальных случаях

z = 1

n = 5

End Select

 

MsgBox "a = " & CStr(a) & Chr(13) & "b = " & CStr(b) _

& Chr(13) & "z = " & CStr(z) & Chr(13) _

& "Вычислено по формуле № " & CStr(n) 

 

End Sub

 

При использовании функции MsgBox, применяется функция Chr(13). Данная функция соответствует коду возврата каретки (перевод строки), равному 13. В результате функция MsgBox работает следующим образом: сначала печатается текст, затем, дойдя до функции Chr(13) осуществляется перевод на новую строку и последующий текст печатается в новой строке. В приведенном примере текст в окне MsgBox печатается в четырех строках.

 

Варианты заданий.

 

Задача. Составьте программу для решения задачи.

Разработанная программа должна быть предоставлена в двух вариантах:

в первом программа должна содержать подробные комментарии, для того чтобы преподаватель мог без труда оценить принятый вами для решения задачи алгоритм;

во втором программа должна быть полностью без комментариев для проведения контроля полученных знаний.

Программа должна содержать форму с текстовыми полями для ввода величин, кнопками для выполнения расчета, формирования отчета, выхода из программы.

В программе нужно предусмотреть защиту от неверного ввода данных.

Сформировать отчет средствами VBA. Отчет должен содержать: условие задачи; формулу расчета с обозначениями и подставленными вместо них числами; полученный результат.

 

Варианты заданий

 

1. Создайте программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата количество уроков в вашем классе в этот день.

2. Создайте программу, позволяющую по последней цифре числа определить последнюю цифру квадрата этого числа.

3. Составьте программу, которая по заданным году и номеру месяца определяет количество дней в этом месяце.

4. Для каждой введенной цифры (0 - 9) выведите соответствующее ей название на английском языке (0 - zero, 1 - one, 2 - two,... ).

5. Составьте программу, которая по данному числу (1-12) выводит название соответствующего ему месяца.

6. Составьте программу, позволяющую получить словесное описание школьных отметок (1 - «плохо», 2 - «неудовлетворительно» , 3 - «удовлетворительно», 4 - «хорошо», 5 - «отлично»).

7. Пусть элементами круга являются радиус (первый элемент), диаметр (второй элемент) и длина окружности (третий элемент), Составьте программу, которая по номеру элемента запрашивала бы его соответствующее значение и вычисляла бы площадь круга.

8. Пусть элементами прямоугольного равнобедренного треугольника являются: катет a, гипотенуза b, высота h, опущенная из вершины прямого угла на гипотенузу, площадь S.

Составьте программу, которая по заданному обозначению и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.

9. Создайте программу, которая по номеру месяца выдает название следующего за ним месяца (при m - 1 получаем февраль, 4 - май и т.д.).

10. Создайте программу, которая бы по введенному номеру времени года (1 - зима, 2 - весна, 3 - лето, 4 - осень) выдавала бы соответствующие этому времени года месяцы и количество дней в каждом из месяцев.

11. В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Создайте программу, которая выводит номер некоторого года и печатает его название по старояпонскому календарю (для справки 1996 г. — год Крысы — начало очередного цикла).

12. Для целого числа k от 1 до 99 напечатайте фразу «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо изменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год.

13. Создайте программу, которая бы по введенному номеру единицы измерения (1 - дециметр, 2 - километр, 3 - метр, 4 -миллиметр, 5 — сантиметр) и длине отрезка L выдавала бы соответствующее значение длины отрезка в метрах.

14. Создайте программу, которая по вводимому числу от 1 до 11 (номеру класса) выдает соответствующее сообщение «Привет, k-классник». Например, если k = 1, «Привет, первоклассник»; если k = 4 «Привет, четвероклассник».

15. Создайте программу, которая по введенному числу от 1 до 12 (номеру месяца) выдает все приходящиеся на этот месяц праздничные дни (например, если введено число 1, то должно получиться 1 января - Новый год, 7 января - Рождество).

16. Дано натуральное число N. Если оно делится на 4, вывести на экран ответ (где k - соответствующее частное); если остаток от деления на 4 равен 1, то ; если остаток от деления на 4 равен 2, то ; если остаток от деления на 4 равен 3, то . Например, , .

17. Имеется пронумерованный список деталей: 1 - шуруп, 2 - гайка, 3 - винт, 4 - гвоздь, 5 - болт. Составьте программу, которая по номеру детали выводит на экран ее название.

18. Составьте программу, позволяющую по последней цифре данного числа определить последнюю цифру куба этого числа.

19. Составьте программу, которая для любого натурального числа печатает количество цифр в записи этого числа.

20. Даны два действительных положительных числа x и у. Арифметические действия над числами пронумерованы (1 - сложение, 2 - вычитание, 3 - умножение, 4 - деление). Составьте программу, которая по введенному номеру выполняет то или иное действие над числами.

21. Создайте программу, которая бы по введенному номеру единицы измерения (1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 -тонна, 5 — центнер) и массе М выдавала бы соответствующее зна­чение массы в килограммах.

22. Пусть элементами равностороннего треугольника являются: сторона а; площадь S; высота h; радиус вписанной окружности r; радиус описанной окружности R.

Составьте программу, которая по заданному обозначению и значе­нию соответствующего элемента вычисляла бы значение всех ос­тальных элементов треугольника.

23. Составьте программу для определения подходящего возраста кандидатуры для вступления в брак, используя следующее со­ображение: возраст девушки равен половине возраста мужчины плюс 7, возраст мужчины определяется соответственно как удвоенный возраст девушки минус 14.

24. Найдите произведение цифр заданного k-значного числа.

25. Создайте программу, которая читает натуральное число в десятичном представлении, а на выходе выдает это же число в десятичном представлении и на естественном языке.

Например,

7 семь

204 двести четыре

52 пятьдесят два

26. Вычислите номер дня в невисокосном году по заданным числу и месяцу.

 



2020-02-04 220 Обсуждений (0)
Конструкция выбора Select Case 0.00 из 5.00 0 оценок









Обсуждение в статье: Конструкция выбора Select Case

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (220)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)