Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Основные структуры алгоритмического языка VBA

Читайте также:
  1. I ОСНОВНЫЕ ПРИНЦИПЫ
  2. I. Основные положения
  3. II. Основные задачи и их реализация
  4. II. ОСНОВНЫЕ ПОЛОЖЕНИЯ И РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЯ, ВЫНОСИМЫЕ НА ЗАЩИТУ
  5. II. Основные факторы, определяющие состояние и развитие гражданской обороны в современных условиях и на период до 2010 года.
  6. II. Структуры среды
  7. III. ДАННЫЕ О БУДУЩЕМ КУРСЕ ИНОСТРАННОГО ЯЗЫКА

 

  1. Оператор присваивания.

Формат оператора:

А = В

Где А – идентификатор

В – логическое выражение, арифметическое выражение, функция, символьная переменная или константа.

Правило выполнения: определяется значение правой части (В) и присваивается переменной (В), стоящей в левой части оператора присваивания.

Примеры:

· Ist = Asd Or Tr And (A > B)

· F = A * h + В ^ 3

· S = Sin(a)

· I = InputBox(“ ввод индекса“)

· D = "Пример оператора присваивания"

 

Задания для индивидуальной практической работы:

 

А) Формализовать постановку задачи (уяснить, что должна выполнить программа). Составить список используемых переменных. Составить схему и программу. Выполнить программу вручную для различных исходных данных (начиная с конкретных, приведенных в условии).

В) Открыть редактор VBA из приложения OFFICE MS EXCEL.

С) Занести программный код, используя процедуру вывода (для вывода результата в окно), функцию ввода (для ввода конкретных данных), оператор присваивания (для проведения расчетов).

Варианты:

1) Через спираль электроплитки за 2 мин. Прошло 6000 Кл электричества. Какова сила тока в спирали?

2) Две лампы соединены последовательно. Через первую лампу за 1,5 мин прошло 90 Кл электричества. Определите силу тока во второй лампе.

3) При включении лампы накаливания в электрическую сеть через ее нить за 0,5 мин проходит 9 Кл электричества, а после того как накал достигнет максимальной величины – 12 Кл за мин. Как изменяется сила тока в лампе?

4) Через поперечное сечение проводника за 1 секунду проходит 6*1019 электронов. Какова сила тока в проводнике?

5) Сколько времени длится пуск стартера автомобиля, если при силе тока в 200А за это время в цепи стартера протекает 5000 Кл электричества?

6) Наибольшее количество электричества, которое можно получить от аккумулятора при его разрядке, называется емкостью аккумулятора. Емкость аккумулятора обычно измеряют не в кулонах, а в ампер-часах.
1 А*ч – это такой заряд, который проходит за 1 час при силе тока в 1 А. Сколько Кл содержит 1 А*ч?

7) Через сколько времени разрядится аккумуляторная батарея емкостью
60 А*ч, если сила тока при разрядке равна 0,15 А; 3 А; 10 А;

 


  1. Оператор безусловного перехода

Формат оператора:

 

GoTo M где GoTo определяющее слово;

М – метка* или номер строки** на которую осуществляется передача управления.

 

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

* Метка – идентификатор, стоящий перед строкой программного кода, отделенный от нее двоеточием:

Public Sub qq()

a = "!!!"

GoTo mm

a = "@@"

mm: MsgBox a

End Sub

** Для осуществления передачи управления по номеру строки, надо явно пронумеровать строки программного кода

Public Sub qqq()

1 a = "!!!"

2 GoTo 4

3 a = "@@"

4 MsgBox a

End Sub

 


  1. Оператор условного перехода

Оператор условного перехода имеет две формы – полную и сокращенную.

Схема выполнения полной формы оператора условного перехода:

 
 

 

 


Формат полного оператора условного перехода:

 

If A Then B Else C или «блочная форма» If A Then B Else C End If Где А – логическое выражение В – инструкция* или последовательность инструкций

 

* инструкция – оператор, имя вызываемой процедуры

 

 

Правило выполнения: если логическое выражение принимает значение True, то выполняется инструкция В, инструкция С игнорируется, иначе(если А ‑ False) – выполняется С, В – игнорируется

.

 

Пример:

1. Вывести большее из двух чисел

Sub Number()

‘описание переменных

Dim First, Second As Single

‘Ввод значений переменных

Firsta = InputBox("первое число")

Second = InputBox("второе число")

‘Сравнение двух чисел, в случае равенства переменных выводится
‘ вторая.

If First > Second Then MsgBox First Else MsgBox Second

End Sub

 

2. Заданы три числа – длины отрезков. Определить могут ли эти отрезки являться сторонами треугольника?

Если Вам необходимо расположить оператор условного перехода в несколько строк, то необходимо «ЗАКРЫТЬ» его выражением «End If»

 

Sub treug()      
‘ описание типов переменных – длины отрезков Dim a%
Dim t, b As Integer      
‘ Ввод значений a = InputBox("первое число")
b = InputBox("второе число")    
t = InputBox("третье число")    
‘ В треугольнике сумма длин двух сторон больше длины третьей стороны
If (((a + b) > t) Or ((b + t) > a)) Or ((a + t) > b) Then
MsgBox "треугольник существует"  
Else: MsgBox "треугольник не существует"
End If        
End Sub        

!!! Инструкции В записываются с новой строки, инструкции С с новой строки, End If – с новой строки

 

Cхема выполнения сокращенного условного оператора

 
 


Формат сокращенного условного оператора:

If A Then Bили «блочная форма» If A Then B End If Где А, В имеют те же значения, что и выше

Правило выполнения:

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

 

Задания для индивидуальной практической работы:

Формализовать постановку задачи (уяснить, что должна выполнить программа). Составить список используемых переменных. Составить схему и программу. Выполнить программу вручную для различных исходных данных. Проверить работу программы, реализовав ее.

 

Вар№1

1) На плоскости расположена окружность радиуса R с центром в начале координат. Ввести заданные координаты точки и определить, находится ли она на окружности. Результат присвоить символьной переменной. (проверку на равенство осуществлять с точностью е= 10-3).

2). В продаже книг в книжном магазине принимает участие ЭВМ. Составить программу, которая запрашивает стоимость книг, сумму денег, внесенную покупателем, а далее определяет причитающуюся сдачу (если денег внесено больше), печатает СПАСИБО, если сдачи не требуется, или выдает сообщение о недостаточности внесенной суммы.

 


Вар№2

1) Заданы координаты двух точек. Определить, расположены ли они на одной окружности с центром в начале координат. Результат присвоить символьной переменной. (проверку на равенство осуществлять с точностью е= 10-3).

2) В ЭВМ одновременно поступают результаты соревнований по плаванию для трех спортсменов. Выбрать и напечатать лучший результат.

 

 

Вар№3

1) Определить, принадлежит ли точка прямоугольнику (прямоугольник задан координатами главной диагонали).

2) Пассажирский самолет может поднять груз общей массой 30т, составить программу разрешающую (или запрещающую) транспортировку почтового груза с заданной массой, после посадки пассажиров и загрузки их багажа. Во время регистрации пассажиров ЭВМ должна подсчитывать число пассажиров (условная масса 1 человека — 100 кг) и суммировать массу багажа.

 

 

Вар№4

1) Заданы координаты точки. Определить, расположены ли она на окружности с центром в начале координат, лежит ли она внутри окружности или вне ее. Результат присвоить символьной переменной.

2) Написать программу, которая спрашивала бы имя пользователя и печатала приветствие, если оно есть среди трех известных ей. Ввод незнакомого имени должен провоцировать заявление типа «Вы не имеете доступа.»

 

 

Вар №5

1) Заданы координаты двух точек. Одна из них – центр окружности, вторая принадлежит окружности. Определить радиус окружности

2) В киоске продается газета стоимостью 3 руб.. и журнал стоимостью 20 руб. Составить программу, которая спрашивает о желании покупателя (журнал или газета?), принимает деньги (сумма денег вводится с клавиатуры) и печатает причитающуюся сдачу. Покупа­телю нужно задать, по крайней мере, два вопроса:ЧТО ХОТИТЕ КУПИТЬ? ЖУРНАЛ ИЛИ ГАЗЕТУ? После ввода ответа нужно показать стоимость соответствующего издания и задать вопрос: 2. СКОЛЬКО ВЫ ПЛАТИТЕ? Сумма денег покупателя вводится с клавиатуры (в числовую переменную). Далее сравнивается эта сумма со стоимостью покупки и печатается соответствующее итоговое сообщение.

 

 

Вар №6

1) Определить в каком квадранте находится точка с координатами (x,y), и напечатать номер квадранта.

2) В ЭВМ одновременно поступают результаты соревнований по плаванию для трех спортсменов. Выбрать и напечатать лучший результат.

 

 

Вопросы для теоретического опроса:

  1. Переменная логического типа: название, диапазон значений, об’ём памяти. Написать фрагмент программы нахождения максимального из трех чисел.
  2. Перечислить логические операции.
    Написать фрагмент программы определения знака дискриминанта для нахождения корня квадратного уравнения.
  3. Приоритет логических операций.
    Написать фрагмент программы вывода на экран трех введенных символов в порядке убывания их порядковых номеров по кодовой таблице.
  4. Перечислите операции отношений, их обозначения в алгоритмическом языке VBА
    Написать фрагмент программы нахождения суммы натуральных чисел в заданном промежутке.
  5. Определить понятие «логическое выражение»
    Написать фрагмент программы нахождения натуральных чисел кратных трем в заданном промежутке.
  6. Формат условного оператора.
    Написать фрагмент программы вывода на экран четных, натуральных чисел в заданном промежутке.
  7. Формат сокращенного условного оператора.
    Написать фрагмент программы нахождения простых натуральных чисел(верхняя граница поиска задается). Простое число – число, которое делится только на 1-у и само на себя.
  8. Правила выполнения условного оператора.
    Написать фрагмент программы нахождения суммы цифр составляющих натуральное число.
  9. Правила выполнения сокращенной формы условного оператора.
    Написать фрагмент программы нахождения минимальной цифры из цифр составляющих натуральное число.
  10. Особенности «записи» условного оператора в редакторе VBA
    Написать фрагмент программы вывода на экран пяти введенных символов в порядке возрастания их порядковых номеров по кодовой таблице.
  11. Правила написания условного оператора, являющегося частью условного оператора
    Написать фрагмент программы определяющей является ли рассматриваемое число совершенным (сумма цифр, составляющих число, равна их произведению).

4. Оператор выбора (оператор множественного выбора)

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

 


Формат оператора:

Select Case выражение

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

[инструкции - 1]

...

[Case список выражений – N]

[инструкции - N]

[Case Else]

[инструкции Else]

End Select

Где

«выражение» – арифметическое или логическое выражение, строковая переменная, арифметическая или логическая переменная значение которых однозначно определено до оператора выбора;

«список выражений –N» ‑ перечень констант, арифметических или логических выражений, со значениями которых производится сравнение «выражения»

«инструкции-N» ‑ выполняются в случае совпадения значений «выражения» и одного из компонентов «выражения-N»

«инструкции Else» выполняются в случае не совпадения «выражения» ни с одной из «инструкции-N»

Оператор выбора может иметь сокращенную форму – без инструкций Else (см.пример1)

Примеры:

В приведеных примерах следует обратить внимание на разнообразие синтаксиса записи «инструкции-N»

1. Значение функции Х зависит от величины вводимого А: Х=12А+2. Вывести «0», если Х=0, восклицательные знаки, если Х равен 12, 13, 26; «12<x<40», если Х находится в этом промежутке и >40, если Х больше 40. Что будет выведено в окно, если задать А=-2? Каким должно быть значение А, чтобы были выведены восклицательные знаки?

Public Sub qwe()

a = val(InputBox(""))

x=12*а+2
Select Case x

Case 0

MsgBox "=0"

Case 12, 13, 26

MsgBox "!!!"

Case 12 To 40

MsgBox "12<x<40"

Case Is >= 40

MsgBox ">40"

End Select

End Sub

2. Написать программный код вывода количества дней месяца, в зависимости от его названия. Принять следующие обозначения для ввода названия месяца:
Jan – январь; febr – февраль; mart – март; april – апрель; june – июнь. Предусмотреть возможность неверного ввода, високосного года.

 

Public Sub case_simbol() 999: a = InputBox("month") Select Case a Case "febr" 777: g = InputBox("февраль: 1- високосный год, 2 - Не високосный") Select Case g Case Is = 1 MsgBox "29" Case 2 MsgBox "28" Case Else MsgBox "once more ": GoTo 777 End Select Case "Jan", "mart" MsgBox "31" Case Is = "april", "june" MsgBox "30" Case Else: MsgBox "это не месяц": GoTo 999 End Select End Sub

 

 

Задание для реализации:

Определить каким днем недели является N-й день года. Считать год не високосным (365 дней), 1-е января – понедельник, N – порядковый номер дня в году


5. Операторы повтора (операторы цикла)

Алгоритмический язык VBA предлагает пользователям семь различных конструкций организации цикла, которые условно можно разбить на три группы – цикл с параметром, цикл с предусловием, цикл с постусловием(послеусловием).

5.1 оператор цикла с параметром

Формат оператора

 

For А = В То С [Step D] [инструкции] [Exit For] [Инструкции] Next [А] Где А – параметр цикла (числовой тип) В – начальное значение параметра С – конечное значение параметра D – шаг изменения параметра

 

Правила выполнения:

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

Альтернативный способ выхода из цикла предоставляет инструкция Exit For

Пример 1:

Найти сумму чисел на интервале [1,1;2], нацело делящихся на 1,1.

Public Sub qq()

Dim I,S As Single

‘Следующие три строки программного кода – оператор цикла с ‘параметром: 1-я строка заголовое, 2-я строка – тело цикла, 3-я ‘строка – конец цикла

For i = 1.1 To 2.1 Step 0.1

s = s + i

Next i

MsgBox s

End Sub

Оператор цикла читается следующим образом: для I от 1,1 до 2.1 с шагом 0,1... следующее I.

Выполним трассировку(пошаговый результат) данного оператора цикла.

№ шага I S
  1,1 1,1
  1,2 2,3
  1,3 3,6
  1,4 5,0
  1,5 6,5
  1,6 8,1
  1,7 9,8
  1,8 11,6
  1,9 13,5
  2,0 15,5

 

!!! При вещественном значении границ параметра цикла, выход из цикла происходит при конечном значении параметра, тело цикла для него не выполняется (в приведенном примере последнее суммирование выполняется для I = 2.0, после выхода из цикла I имеет значение 2,1)

При целочисленных значениях параметра цикла,выход из цикла происходит при следующем за конечным значении параметра, тело цикла для него выполняется (смотри пример 2)

Пример 2:

Public Sub qq()

Dim i, c As Integer

For i = 1 To 5

s = s + 1

Next i

MsgBox s & " " & i

End Sub

В окне вывода будет напечатано: «5 6»

Трассировку выполнить самостоятельно.

 

Задание для практической работы.

Выделить повторяющиеся действия (цикл). Выбрать управляющую переменную цикла. Определить параметры цикла. Составить список переменных программы. Составить схему и программу для решения задачи. В программе предусмотреть вывод заголовка. Выполнить программу вручную, заполняя таблицу трассировки, затем Проверить работу программы на ЭВМ.

1. Составить таблицу стоимости порций сыра весом 50, 100, 150,..., 1000 г
(цена 1 кг — 110р.).

2. Около стены наклонно стоит палка длиной х. Один ее конец находится на расстоянии у от стены. Определить значение угла а между палкой и полом для значений X==4,5 м и у изменяется от 2 до 3 с шагом, равным 0,2.

3. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.

4. Одноклеточная амеба каждые 3 ч делится на 2 клетки. Определить, сколько клеток образуется через 3, 6, 9, 12,.... 24 ч.

5. Концентрация хлорной извести в бассейне объемом V3) составляет 10 г/л. Через одну трубу в бассейн вливают чистую воду с объемной скоростью Q (м3/ч), через другую трубу с такой же скоростью вода выливается из бассейна. При условии идеального перемешивания концентрация хлорной извести изменяется по закону: С=С0 е -Qt / v где t— время; Со—начальная концентрация.
Определить, через какое время концентрация хлорной извести достигнет безопасной для человека величины 0,1 г/л. Задачу решить при Q=150 м3/ч, V = 10 тыс. л, Со== 10 г/л. Вычислить функцию С= 10 е-Qt/v при измене­нии t с шагом 10 мин до тех пор, пока не будет выполне­но условие С £ 0,1 (согласовать единицы измерения всех величин).

6. Определить суммарный объем (л) 12 вложенных друг в друга шаров со стенками 5 мм. Внутренний диаметр внутреннего шара равен 10см, Считать, что шары вкладываются друг в друга без зазоров

Задание на дом:

Определить, сколько различных сигналов можно подать m флажками различных цветов. Отличие сигналов заключается в порядке расположения разноцветных флажков на мачте. Решить при т == 6

5.1.2. В алгоритмическом языке VBA существует еще одна форма оператора цикла с параметром, выполняющая группы инструкций для каждого элемента массива или семейства. Правила работы с этим оператором цикла рассмотрим в дальнейшем, а здесь приведем только формат этого оператора:

For Each A In B
[инструкции]
[Exit For]
[инструкции]
Next A

 


Дата добавления: 2015-11-14; просмотров: 90 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Операции деления| Операторы цикла с предусловием

mybiblioteka.su - 2015-2024 год. (0.024 сек.)