- •Таблица 1
- •Таблица 2
- •Таблица 3
- •Таблица 4
- •Таблица 6
- •Таблица 7
- •10.2. Задание для выполнения на компьютере
- •10.3. Контрольные вопросы
- •11.3. Контрольные вопросы
- •Рис. 12.2. Листы рабочей книги «Товары» и «Заказчики» со списками
- •Range(«a11:e11»).ClearContents
- •12.3. Контрольные вопросы
- •Рис. 13.1. Вид заполненного бланка приложения «Извещение»
- •При создании программы для командной кнопки «Должники» необходимо учитывать, что в ней будут обращения из текстового документа к объектам, принадлежащим табличным документам Excel.
- •Рис. 13.2. Интерфейс диалогового окна проекта «Извещение»
- •Dim tab1 As Worksheet
- •13.3. Контрольные вопросы
- •Анкета «Заказ товара» может быть обработана программой процедуры обработки события OnClick для командной кнопки «Информация о заказе» следующего вида:
- •Рис. 14.6. Окно сообщения с информацией о заказе
- •14.2. Задание для выполнения на компьютере
- •14.3. Контрольные вопросы
- •Рис. А2.1. Примерный интерфейс приложения «Калькулятор»
- •Next
8.Закончить работу с редактором Visual Basic.
9.Запустить на выполнение ехе-файл приложения из Проводника среды Windows и проверить работу разработанного приложения.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3 |
№ |
|
|
Формула для вычислений |
Исходные данные |
|||||||||||||
|
|
|
|
|
|
|
|||||||||||
1 |
y = |
a +m2 x2 |
/(a + x) m |
|
|
a =1.774; |
|||||||||||
|
z = |
y +1, |
|
|
|
|
| y |<1 |
|
|
|
|
|
m =5; x = 3.2 |
||||
|
|
|
2 |
y, |
|
|
|
|
| y |≥1 |
|
|
|
|
|
|||
|
|
sin |
|
|
|
|
|
|
|
|
|
|
|||||
2 |
|
a +bi, |
|
|
|
|
i >3b |
|
|
|
|
|
b = −0.05; a =1.72; |
||||
|
d = |
|
|
|
|
|
|
|
|
i ≤3b |
|
|
|
|
i = 2 |
||
|
z = |
tgb −ai, |
|
|
|
|
|
/100) |
|||||||||
|
(da / 4) /(3ab −ei / 4 |
−e1+d |
|
||||||||||||||
3 |
s = e−a x −ln(i / xm) / ln2 m |
|
|
|
x =1.99; a =105 10−4 ; |
||||||||||||
|
|
|
|
|
|
2 |
, |
|
|
|
s > 2x |
|
|
|
|
m = 4;i = 7 |
|
|
p = (−is) |
|
|
|
|
|
|
|
|
|
|||||||
|
|
sin(−6s), |
|
s ≤ 2x |
|
|
|
|
|||||||||
4 |
x = (ctgy)2 /( j +2ay) |
|
|
|
|
|
y = 2.75; a = −5.5 10−4 ; |
||||||||||
|
|
|
− j |
, |
|
|
|
x ≥ y |
|
|
|
|
|
|
|||
|
z = |
e |
|
|
|
|
|
|
|
|
|
j = 6 |
|||||
|
|
|
|
|
|
|
|
2 |
, |
x |
< y |
|
|
||||
|
|
(0.5y / j) |
|
|
|
|
|||||||||||
5 |
p = esin( j / x) ln(x / y) x |
|
|
|
|
y =1.4 10−3 ; x = 0.2; |
|||||||||||
|
q = |
|
p / m, |
|
|
|
p ≤ y2 |
|
|
|
|
m = 4; j = 5 |
|||||
|
|
2x /( j |
+ p), |
p > y |
2 |
|
|||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
d = i +2 / (t +i) / (1+ |
2a |
2 |
) |
|
|
a = −4.2;t =1.75; |
||||||||||
|
|
|
|
i = 4 |
|||||||||||||
|
|
t i, |
|
|
|
|
d ≥ t(t +i) |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
f = |
|
|
|
|
|
|
|
|
|
d < t(t +i) |
|
|||||
|
|
et −d +9(a +i), |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42
№ |
|
Формула для вычислений |
|
Исходные данные |
||||||||||
|
|
|
|
|
||||||||||
7 |
x = tg(a2 −1) / (d +1) |
|
|
c = 3 .7; |
||||||||||
|
ak +d , |
|
3x < ac |
|
d = 51 .9 10 −5 ; |
|||||||||
|
|
|
a |
= 4; k = 1 |
||||||||||
|
y = |
|
|
|
|
|
|
|
|
+1 , |
3x ≥ ac |
|
|
|
|
cos(ak ) ea |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
8 |
t = ai / (a2 −b) e−a |
|
|
b = 3;i =8 |
||||||||||
|
|
|
|
|
|
|
−3 |
+ia, |
t >5c |
c = 6 10−4 ; a = 6 |
||||
|
x = 4.8 10 |
|
|
|
|
|||||||||
|
a +i2 t, |
|
t ≤5c |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
9 |
s = w / (w2 − j) ln|w| |
|
|
f |
= 2.799; w =5.3; |
|||||||||
|
|
−e |
f /i |
, |
|
s ≥ 3 |
f |
|
j |
= 2 |
||||
|
s |
|
|
|
|
|
|
|
|
|||||
|
y = |
|
|
|
|
|
|
|
|
s < 3 |
f |
|
|
|
|
s2 / (w −1), |
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
0.2x k , |
x < m/ 2 |
a =1.2; k = 3 |
||||||||||
|
|
x |
= −7 10−3 ; |
|||||||||||
|
w = |
−2 x k |
|
|
|
|
|
|
|
|
||||
|
|
, |
|
|
x ≥ m/ 2 |
|
m = 4 |
|||||||
|
e |
|
|
|
|
|
|
|||||||
|
v = w3 +| x −a| / ln(1+a) |
|
|
|
||||||||||
|
|
|
|
|
|
|||||||||
11 |
d = e−x/ j |
+(x −a) / ln x |
|
|
a =1.33 10−3 ; x = 6.8; |
|||||||||
|
|
|
|
|
|
|
|
|
|
d ≥ k |
a |
k |
= 6; j =1 |
|
|
3.6 d x, |
|
|
|||||||||||
|
b = |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d < k a |
|
|
|
|
sin(a / x +1), |
|
|
|||||||||||
12 |
c = 2tg( f / 2) +ln t |
|
|
f |
= −125 10−6 ; |
|||||||||
|
|
|
−2t |
|
|
|
|
|
|
|
|
|
||
|
d = y |
e |
|
|
3 |
|
|
+ f , |
c ≥3 |
|
y =1.711;t =1.1; |
|||
|
y − y |
|
, |
|
c <3 |
|
|
|
|
43
№ |
|
|
Формула для вычислений |
Исходные данные |
||||||||
|
|
|
|
|||||||||
13 |
y = cos2 x2 /| x| |
|
a =1.055; x = 0.6; |
|||||||||
|
|
| y|, |
|
|
|
|
|
|
y < a x n |
n = 6 |
||
|
|
|
|
|
|
|
|
|
||||
|
z = |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
−y |
|
|
|
||
|
|
1+e |
, |
y ≥ a x n |
|
|||||||
|
|
|
|
|
|
|||||||
14 |
w = |
s |
3 |
−e |
−2s |
|
s = 5.2; x = 0.04; |
|||||
|
|
|
|
|
|
j =10.4 104 |
||||||
|
|
|
|
2 |
( jx), |
2s > xj |
||||||
|
|
|
|
|||||||||
|
|
cos |
|
|||||||||
|
v = |
2 tg( jx), |
(2s < xj)и(xj ≤3s) |
|
||||||||
|
|
|
|
|
|
x / 2 |
, |
|
xj > 3s |
|
||
|
|
5 −e |
|
|
|
|
|
|||||
15 |
b =12s −e−s / 2 (x − j) |
x = −4 10−3 ; s =1.1; |
||||||||||
|
z = |
|
|
|
|
|
|
|
|
|
b <1.5 |
j = 4 |
|
−2xj +b, |
|||||||||||
|
|
|13x j | +b, |
b ≥1.5 |
|
3.3.Контрольные вопросы
1.Когда в программе следует использовать условные операторы?
2.Какие логические операции используются в языке VB?
3.Как задать сложное условие в условном операторе?
4.Правила использования ключевых слов And и Or.
5.Типы условных операторов в VB.
6.Структура строчных и блочных условных операторов.
7.Как создать вложенный условный оператор?
44
4. ОПЕРАТОРЫ ЦИКЛОВ
4.1. Общие сведения
Если в программе необходимо повторить один оператор или целую последовательность операторов несколько раз, используются операторы циклов. Операторы циклов заключают такой оператор или группу операторов между ключевыми словами начала и конца цикла и определяют условия повтора выполнения. В системе программирования VB имеется большой выбор средств организации циклов, которые можно разделить на две основные группы:
•For ... Next
•Do ... Loop
Циклы For…Next используются, когда заранее определено, сколько раз должно выполниться повторение.
For <счетчик> = <нач. значение> То <кон. значение> <оператор 1> <оператор 2>
…
Next <счетчик>
В этом случае счетчиком является переменная целого типа, увеличивающаяся на каждом шаге цикла на 1. Например, следующая программа
For i = 1 To 10
Print i^2
Next i
приведет к выводу на форму квадратов целых чисел от 1 до 10.
В общем случае в роли счетчика количества повторений в цикле может выступать любая переменная вещественного типа и тогда оператор цикла For…Next записывается с указанием величины приращения с помощью ключевого слова Step:
For <переменная> = <нач. знач.> То <кон. знач.> Step <приращение> <оператор 1> <оператор 2>
…
Next <счетчик>
Например, чтобы вывести таблицу значений аргумента х и функции Sin(x) на интервале от 0 до 1 с приращением значения ар-
45
гумента 0.1 необходимо записать оператор цикла For…Next следующим образом:
For x = 0 To 1 Step 0.1
Print х, Sin(x)
Next х
Если приращение равно единице, то конструкция Step может быть опущена. Если приращение отрицательно, то начальное значение, естественно, должно быть больше конечного.
Циклы типа Do...Loop используются в тех случаях, когда заранее не известно, сколько раз должно быть повторено выполнение расположенной в теле цикла группы операторов. Такой цикл продолжает работу до тех пор, пока не будет выполнено определенное условие. Существуют 4 типа операторов цикла Do...Loop, которые определяются типом проверяемого условия и местом его расположения:
1) Цикл с ключевым словом While продолжает свою работу, пока условие остается истинным, т.е. условие выполняется, и задается в двух вариантах
Do While <условие> |
Условие проверяется до того, как выпол- |
<операторы > |
няется группа операторов, образующих |
Loop |
тело цикла. |
Do |
Условие проверяется после того, как опе- |
<операторы> |
раторы, составляющие тело цикла, будут |
Loop While <усло- |
выполнены хотя бы один раз. |
вие> |
|
2) Цикл с ключевым словом Until продолжает свою работу, пока условие является ложным, т.е. условие не выполняется, и задается в двух вариантах
Do Until <условие> |
Условие проверяется до того, как выпол- |
<операторы> |
няется группа операторов, образующих |
Loop |
тело цикла. |
Do |
Условие проверяется после того, как опе- |
<операторы> |
раторы, составляющие тело цикла, будут |
Loop Until <условие> |
выполнены хотя бы один раз. |
Операторы циклов часто используются для вычисления сумм или произведений последовательностей некоторых чисел. При этом при вычислении суммы последовательности начальное значение пе-
46
ременной, в которой будет храниться вычисляемое в цикле значение суммы, приравнивается нулю до начала цикла (например, s = 0), а при вычислении произведения – единице (например, p = 1). Внутри цикла должна быть строка, в которой последовательно в ходе работы цикла в сумму включаются все слагаемые (например, s = s + sn) или, соответственно, в произведение – все сомножители (например, p = p*pn).
Пример 4.1. Программа на основе цикла Do…Loop с использованием ключевого слова While для вычисления суммы той части бес-
∞ |
|
n |
|
|
конечного ряда y = ∑ |
|
|
, которая включает все члены ряда, пока |
|
n |
2 |
|||
n=1 |
+1 |
|
они не станут меньше 0,001.
Dim n As Integer, x As Single, s As Single n = 1
y = 0 Do
x = n / (n ^ 2 + 1) s = s + x
n = n + 1
Loop While x >= 0.001 Print «Сумма ряда =»; s
В циклах Do…Loop необходимо организовать изменение значений переменных, входящих в проверяемое условие выхода из цикла, иначе цикл будет бесконечным (для выхода из такого «зацикливания» программы необходимо нажать комбинацию клавиш Ctrl/Break).
Пример 4.2. Программа с использованием ключевого слова Until
∞
для вычисления произведения p = ∏(k 2 +1) до тех пор, пока произве-
k =o
дение из сомножителей ( k 2 +1) не достигнет значения больше 1000
Dim k As Integer, x As Single, y As Single y = 1: k = 0
Do Until y > 1000 x = k ^ 2 + 1
y = y * x k = k + 1 Loop
Print «Произведение =»; y; «и содержит»; k + 1; «сомножителей»
47
В этом примере проверка условия выхода из цикла происходит в начале цикла, в то время, как в предыдущем примере, происходила в конце цикла.
Естественно, что циклы могут быть и вложенными, когда внутри одного циклического процесса выполняется другой. В этом случае необходимо придерживаться правила – сначала должен быть закон-
чен оператором Next внутренний цикл, а затем внешний.
4.2.Задание для выполнения на компьютере
1.Создать на форме пользовательский интерфейс для проекта нового приложения, аналогичный представленному на рис. 4.1.
Рис. 4.1. Примерный интерфейс программы вычислений с циклами
2.Составить текст программного кода для командной кнопки «ПРИМЕРЫ» для рассмотренных выше примеров с выводом результатов непосредственно на форму. Выполнить последовательно программы примеров и проанализировать полученные результаты.
3.Составить текст программы вычислений по формулам по условиям задач, приведенным в табл. 4 в соответствии со своим вариан-
48