Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Оператор выбора Select Case




Методические указания к лабораторным работам по теме

«Основы языка Visual Basic for Applications. Разработка программ с разветвляющимися и циклическими алгоритмами».

Семестр 2. Часть 2

Дисциплина: «Компьютерные информационные технологии»

Специальность: «Экономика и управление на предприятии»

Форма обучения:для студентов-заочников

Преподаватель: к.т.н., доцент каф. ЭИ Венберг Андрей Викторович

 

СОДЕРЖАНИЕ

 

1. Введение. 1

2. Реализация разветвляющихся алгоритмов. 1

2.1. Условный оператор If. 2

2.2. Многозначные ветвления If. 3

2.3. Оператор выбора Select Case. 4

3. Циклические алгоритмы For 5

3.1. Цикл For … Next 5

3.2. Вложенные циклы For … Next 6

4. Циклические алгоритмы While и Do. 7

4.1. Цикл While … Wend (цикл с предусловием) 8

4.2. Цикл Do While … Loop (цикл с предусловием) 9

4.3. Цикл Do … While Loop (цикл с постусловием) 9

5. Массивы.. 10

6. Использование подпрограмм (процедуры и функции) 11

6.1. Использование подпрограмм, не возвращающих значения (процедуры) 11

6.2. Использование подпрограмм, возвращающих значения (функции) 12

6.3. Назначение значений по умолчанию необязательным параметрам.. 13

6.4. Вызов подпрограмм с указанием фактических параметров по имени. 13

 

Требования к разработке программ

 

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

1) разработку программ выполнять с инструкцией Option Explicit;

2) все переменные объявлять с указанием типа данных;

3) каждое новое практическое задание выполнять в новой процедуре.

 

Реализация разветвляющихся алгоритмов

Алгоритм называется разветвляющимся, если последовательность выполнения шагов алгоритма изменяется в зависимости от выполнения некоторых условий. Условие – это логическое выражение, которое может принимать одно из двух значений: “ДА” – если условие верно (истинно, TRUE), и “НЕТ” – если условие неверно (ложно, FALSE).

Условный оператор If

 

 

    Да                                   Нет                

 

 

                        

 

                          

 

 

Синтаксис составного условного оператора, если Вы пишите программу структурно, следующий:

                           

If <логическое выражение> Then

P1

P2

.

.

PN

Else

M1

M2

.

.

MN

End If     

 

Возможна и другая запись:

 

If <лог. выраж.> Then P1 : P2 : ... : PN    Else  M1 : M2 : ... MN

 

где If, Then, Else, End If – зарезервированные слова, а P1, P2,PN, M1, M2,MN – операторы.

 

Практическое задание

1. Запросить у пользователя ввод числа.

2. Сравнить введенное число с другим, заданным числом, например 20.

3. По результатам сравнения вывести соответствующее сообщение:

25 > 20                             или

15 < 20,

где 25, 15 – введенные пользователем числа.

 

Многозначные ветвления If

          Да                                 Нет 

 

 

                                                  Да                                Нет 

 

                                                                                              Да                               Нет 

Синтаксис многозначных ветвлений, если Вы пишите программу структурно, следующий:

 

If <лог. выражение1> Then

P1

ElseIf <лог. выражение2> Then

P2

ElseIf <лог. выражение3> Then

P3

Else

P4

End If

 

Возможна и другая запись – в одну строку:

 

If <лог. выражение1> Then P1 ElseIf <лог. выражение2> Then P2 ElseIf <лог. выражение3> Then P3 Else P4  

 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,P3 P4,- операторы

Алгоритм работы такой конструкции следующий:

– если логическое выражение 1 истинно, то выполняется оператор P1 (или блок операторов), следующий за конструкцией Then, а остальные операторы пропускаются;

– если логическое выражение 1 ложно, то оператор P1 пропускается и анализируется логическое выражение 2, следующее за ElseIf. Если оно истинно, то выполняется оператор P2 (или блок операторов), следующий за Then, а остальные операторы пропускаются;

– оператор P4 (или блок операторов), следующий за последним Else, выполняются лишь в том случае, если ложны все логические выражения в конструкциях If.

 

Практическое задание

1. Запросить у пользователя ввод целого числа от 0 до 100 включительно – оценка по стобалльной системе.

2. Осуществить преобразование введенной оценки по стобалльной системе в пятибалльную по следующей шкале:

 

Значение оценки по стобалльной системе Значение оценки по пятибалльной системе
< 0 Ошибка ввода данных
от 0 до 20 Оценка 1
от 20 до 40 Оценка 2
от 40 до 60 Оценка 3
от 60 до 80 Оценка 4
от 80 до 100 включительно Оценка 5
> 100 Ошибка ввода данных

 

3. По результатам вывести сообщение с введенной оценкой по стобалльной системе и полученной оценкой по пятибалльной системе, либо сообщение об ошибке.

 

Оператор выбора Select Case

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

 

Синтаксис оператора Select Case:   Select Case КлючВыбора Case Is выражение     оператор Case диапазон значений     оператор Case диапазон значений     оператор Case диапазон значений     оператор Case Else     оператор       End Select Например:   Select Case vozrast Case Is <=7     Msgbox ”Ты дошкольник” Case 8 to 16     Msgbox ”Ты учишься в школе” Case 17 to 30     Msgbox ”Тебе пора заняться делом” Case 31 to 60     Msgbox ”Кто не работает, тот не ест” Case Else     Msgbox ”Вы заслужили отдых” End Select

 

Если значение переменной vozrast меньше или равно 7, отображается сообщение ”Ты дошкольник”. Если значение переменной vozrast находится в диапазоне от 8 до 16, отображается сообщение ”Ты учишься в школе”. Если значение переменной vozrast находится в диапазоне от 17 до 30, отображается сообщение ”Тебе пора заняться делом”. Если значение переменной vozrast находится в диапазоне от 31 до 60, отображается сообщение ”Кто не работает, тот не ест”. Если значение возраста не равно ни одному из предложенных диапазонов значений, выводится сообщение ”Заслуженный отдых”.

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

 

Практическое задание

Выполнить предыдущее практическое задание с применением оператора Select Case.

 

Циклические алгоритмы For

Очень часто в программах надо выполнить определённые операторы несколько раз. Не логично записывать эту последовательность действий 20 или 50 раз подряд. В этих случаях организуют циклические вычисления. Алгоритм называется циклическим, если определенная последовательность шагов выполняется несколько раз в зависимости от заданной величины, которая называется параметром цикла.

3.1. Цикл For … Next

Общий вид алгоритма конструкции оператора For…Next, который позволяет выполнить группу операторов или один оператор заданное количество раз, следующий (см. рисунок):

i = N1 , N2

 

P1

 

 

P2

 

                       

 

PN

 

 

 

 

Синтаксис для цикла For…Next следующий:

 

                      For i = N1 To N2 [Step h]

                            

                                      P1

                                      .

                                      .                      Тело цикла

                                     [Exit For]

                                                PN

                                   Next

 

где For (для), To (до), Step (шаг), Exit For (выход из For), Next (следующий) – служебные слова VBA, а P1, PN - операторы. Step является необязательным параметром. Если он опущен в программе, то значение параметра i увеличивается на 1. Параметр Step может быть любым действительным числом, как целым, так и дробным, как положительным, так и отрицательным. Оператор Exit For позволяет выйти из цикла For…Next до его завершения. Тем самым программа сможет среагировать на определённое событие, не выполняя цикл заданное число раз.

Работает оператор For следующим образом: при первом вхождении в цикл, параметр цикла i принимает значение, равное величине нижней границы N1 , и выполняется оператор или операторы в теле цикла. Затем значение параметра увеличивается на величину шага и вновь выполняется тело цикла. Подобные действия будут повторяться до тех пор, пока значение параметра цикла не станет больше величины N2, после чего осуществляется выход из цикла.

Практическое задание

1. Запросить у пользователя ввод целого числа больше 0.

2. Определить произведение последовательности чисел от 1 до n включительно (n! – «n факториал»).

3. Результат вычисления вывести в виде сообщения.

Пример: 10! = 1 × 2 × 3 × 4 × 5 ×6 × 7 × 8 × 9 × 10 = 3 628 800.

 

3.2. Вложенные циклы For … Next

Если телом цикла является циклическая структура, то такие циклы называются вложенными. Цикл, содержащий в себе другой цикл, называют внешним, а цикл, содержащийся в теле другого цикла, называют внутренним.

Общий вид алгоритма конструкции сложного цикла For…Next следующий:

 

 


Синтаксис операторов вложенного цикла:

 

For i = N1 To N2
               For j = M1 To M2 

                   P1

                                     теловнутреннего            теловнешнего

                              .   цикла                                цикла

                              PN

                Next

        Next

 

При первом вхождении в цикл параметр внешнего цикла i принимает значение, равное N1 , и управление передаётся во внутренний цикл, в котором параметр цикла j принимает значение, равное M1 , и выполняется оператор (операторы), которые записаны во внутреннем цикле. Затем параметр внутреннего цикла j увеличивается на 1, и вновь выполняется тело цикла. Операторы P1, PN будут выполняться до тех пор, пока параметр цикла j не станет больше величины М2. Затем параметр внешнего цикла i увеличивается на 1, и вновь начинает свою работу внутренний цикл, в котором параметр цикла j будет изменяться от М1 до М2, и при каждом прохождении цикла будут выполняться операторы P1 и PN. Внешний цикл закончит свою работу, когда параметр цикла i станет больше величины N2.



Практическое задание

Реализовать двойной вложенный цикл For, в процессе выполнения которого необходимо сформировать на рабочем листе Excel матрицу размерностью n * n (значение числа n запросить у пользователя), элементы которой должны являться произведением номера строки на номер колонки (таблица умножения):

 

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 188.

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