Читайте также:
|
|
Формат оператора:
А = В
Где А – идентификатор
В – логическое выражение, арифметическое выражение, функция, символьная переменная или константа.
Правило выполнения: определяется значение правой части (В) и присваивается переменной (В), стоящей в левой части оператора присваивания.
Примеры:
· 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 А;
Формат оператора:
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
Оператор условного перехода имеет две формы – полную и сокращенную.
Схема выполнения полной формы оператора условного перехода:
Формат полного оператора условного перехода:
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) В ЭВМ одновременно поступают результаты соревнований по плаванию для трех спортсменов. Выбрать и напечатать лучший результат.
Вопросы для теоретического опроса:
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. Концентрация хлорной извести в бассейне объемом V (м3) составляет 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Операции деления | | | Операторы цикла с предусловием |