Вывод результатов

Ввод из ячейки листа Excel

Присвоение переменной x значения из ячейки листа Excel может осуществляться с помощью методов Range и Cell, которые возвращают ссылку на отдельную ячейку:

x = Worksheets("Лист1").Range("A1")

или

x = Worksheets("Лист1").Cells(1, 1)

 

где – Worksheets("Лист1") – рабочий лист Excel

Range("A1") – ссылка на ячейку A1(абсолютная ссылка)

Cells(1, 1) – для указания адреса ячейки используют номер строки и номер столбца (относительная ссылка)

Пример:

 

Private Sub CommandButton5_Click()

x = Worksheets("Лист1").Range("A1")

MsgBox x

End Sub

 

Для вывода результатов в VBА существуют различные способы.

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

MsgBox(b)

Для продолжения работы программы необходимо нажать клавишу ввода либо щелкнуть мышью на кнопке “Ok”.

 

 

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

MsgBox(«Деление на нуль»)

на экране появится следующее окно сообщений:

 

 

 

 

Число, выводимое в окно можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, “##.##”), где x переменная, ##.## – формат числа.

MsgBox (Format(x, “##.##”))

 

Для вывода нескольких значений в одно окно используется операция конкатенации &, например,

MsgBox ("Значение x=" & x)

MsgBox (("Значение x=" & _ Format(x, “##.##”))

 

Можно осуществлять вывод в ячейку листа Excel используя абсолютную ссылку:

Worksheets("Лист1").Range("A3") = x

или относительную:

Worksheets("Лист1").Cells(5, 1) = x

 

Пример1:

 

Private Sub CommandButton6_Click()

x = 10

Worksheets("Лист1").Range("A3") = x

x = 5

Worksheets("Лист1").Cells(5, 1) = x

End Sub

 

 

 

Пример выполнения контрольной работы Задание №1

Для x=1,5 a=3,75 m=0.5 10-4 вычислить выражения:

 

 

Оформим Лист2 согласно образцу:

 

 

Введем в ячейку G24 следующую формулу (используя функции Excel):

=0,5*КОРЕНЬ((C17*C18)*ABS(1-C19*C19))

А в ячейку H24:

=COS(LN(ABS(G24))/(2+G24))

 

Для кнопки «Вычислить» напишем следующий текст программы:

Private Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single, w As Single, z As Single

x = Worksheets("Лист2").Range("c17")

a = Worksheets("Лист2").Range("c18")

m = Worksheets("Лист2").Range("c19")

w = 0.5 * Sqr(x * a * Abs(1 - m * m))

z = Cos(Log(Abs(w)) / (2 + w))

Worksheets("Лист2").Range("g25") = w

Worksheets("Лист2").Range("h25") = z

End Sub

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

Если использовать относительные ссылки, то текст программы будет следующим:

Private Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single, w As Single, z As Single

x = Worksheets("Лист1").Cells(17, 3)

a = Worksheets("Лист1").Cells(18, 3)

m = Worksheets("Лист1").Cells(19, 3)

w = exp(x) * a * (1 - m ^ 2)

z = Sin(w / (2 + w))

Worksheets("Лист1").Cells(24, 7) = w

Worksheets("Лист1").Cells(24, 8) = z

End Sub

 

Можно организовать ввод и по-другому – с клавиатуры, а вывод – в диалоговое окно. Тогда текст программы будет следующим:

 

Private Sub CommandButton2_Click()

Dim x As Single, a As Single

Dim m As Single, w As Single

Dim z As Single

x = Val(InputBox(“Введите x “))

a = Val(InputBox(“Введите a”))

m= Val(InputBox(“Введите m”))

w = 0.5*Sqr(x*a*abs(1 - m * m))

z = cos(log(w)/( 2 + w))

MsgBox (“w=” & w )

MsgBox (“z=” & z )

End Sub

 

Для очистки ячеек рабочего листа используют метод Clear объектов Cells() и Range().

Для применения метода к объекту нужно записать

Объект.Метод

 

Т.о. программный код кнопки «Очистить» будет следующий:

 

Private Sub CommandButton4_Click()

Worksheets("Лист2").Range("g25").Clear

Worksheets("Лист2").Range("h25").Clear

End Sub

 

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

Private Sub CommandButton4_Click()

Worksheets("Лист2").Сells.Clear ‘очистка всех ячеек

End Sub

 

Свойства ячеек можно менять программно, например, для изменения шрифта, выводимого в ячейки Листа Excel свойства:

 

Worksheets("Лист1").Range("a2").Font.Name = "Times New Roman"

Worksheets("Лист1").Range("a2").Font.Size = 14

 

Отладка программы

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

Для исправления ошибки нужно прервать программу, нажав кнопку Reset на ПИ редактора VBA, исправить ошибку и запустить программу заново. Или исправить ошибку, затем продолжить выполнение программы, нажав кнопку Continue(Run).

 

Сохранение проекта Excel:
Кнопка MS Office\Сохранить как…\Книга Excel с поддержкой макросов

 


 

Лекция № 8
Управление в программе. Условные операторы языка программирования visual basic

 

Очень часто при решении тех или иных задач приходится делать выбор в зависимости от условий на момент принятия решения. Например, человек решает, где ему учится:

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

¨ если я окончу школу на 4 и 5, то пойду учится в Белорусский государственный технологический университет;

¨ если я окончу школу на 3 и 4, то пойду учится в техникум;

¨ а иначе – пойду в армию.

Говорят, что такая задача имеет разветвления и для ее решения необходимо осушествить управление в программе.

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

Его структура, которую поддерживает VBA, может быть следующей:

If … Then …

If … Then … Else …

 

Если при проверке условия должен выполняться только один оператор, запись производится в одну строку (строчный If) в виде:

If <условие> Then <оператор>

условие
оператор 1
 

 

Например:

If Temperatura<10 Then MsgBox”Надеть куртку”

 

 

If <условие> Then <оператор_1> Else <оператор_2>

условие
оператор 1
оператор 2
 

 

 

(если условие выполняется, то выполнить оператор_1, иначе выполнить оператор_2).

Если же при проверке условия должны выполняться сразу несколько операторов, то условный оператор записывается в блочной форме (блочный If) в виде

 

оператор 1
оператор 2
оператор n
условие условие
+

 

If <условие> Then

<операторы>

End If

 

Например:

 

If Temperatura<10 Then

MsgBox”Надеть куртку”

End If

 

 

или при наличии в задаче ветвления в виде

оператор 1
оператор 2
оператор n
условие условие условие
+
оператор 1
оператор 2
оператор n

 

If <условие> Then

<операторы _1>

Else

<операторы_2>

End If

 

Например:

 

If Temperatura<10 Then

MsgBox”Надеть куртку”

Else

MsgBox”Надеть ветровку”

End If

Условный оператор If работает следующим образом: если условие после слова If является истинным, выполняется оператор или группа операторов после слова Then, а если условие является ложным, то выполняется оператор или группа операторов после слова Else. В случае же, когда слово Else отсутствует, происходит переход к следующему оператору по тексту программы.

Если необходимо проверить более одного условия, используют вложение операторов If друг в друга. В этом случае после слова Else в первом операторе If необходимо вставить второй оператор If с проверкой второго условия и т.д.

Например:

If <условие_1> Then <оператор_1> Else

If <условие_2> Then <оператор_2> Else <оператор_3>

 

Для блочных операторов If, то необходимо каждый из них закончить ключевым словом EndIf

 

If <условие_1> Then

<операторы _1>

Else

If <условие_2> Then

<операторы_2>

Else

<операторы_3>

EndIf

EndIf

 

 

При проверке любое условие, в том числе и сложное, может иметь только два значения: True (истина), либо False (ложь).

Для формулировки условия в VB используются следующие логические операции:

> (больше), >= (больше либо равно),

< (меньше), <= (меньше либо равно),

= (равно), <> (не равно)

Например,

a > b

b <= sin(x)

Если необходимо проверить сразу несколько условий, используются операции их объединения:

And (оба условия должны выполняться),

Or (хотя бы одно из условий должно выполняться),

Not (ни одно из условий не должно выполняться)

и некоторые другие. Например, следующее сложное условие

sin(x)>y And a>=5

будет выполнено только тогда, когда выполняются одновременно оба условия sin(x)>y и a>=5. В другом случае следующее сложное условие

cos(x)>y Or x=a

будет выполнено тогда, когда выполняется условие cos(x)>y либо a>=5. Комбинируя условия с операциями and и or, можно составить и более сложные условия.

Пример1: Для x=0,5 n=5,5 y=32 вычислить:

 

 

 

Составим блок-схему алгоритма вычисления задачи.

 

 

Ввод x, n, y  
Вычисление z
Если x > z2
Да
Нет
Вывод z в граф. окно
Вычисляем  
Вычисляем  
Вывод w в граф.окно
Вывод w в граф.окно
Конец
Начало

 

Создадим командную кнопку и напишем для нее текст процедуры:

 

Private Sub Command1_Click()

Dim x As Single, y As Single, w As Single, n As Single

x=Val(InputBox(“Введите значение х”))

n=Val(InputBox(“Введите значение n”))

y=Val(InputBox(“Введите значение y”))

z = Sin(x) / Sqr(Abs(x + 1)) - x

MsgBox (("Значение z=" & _ Format(z, “##.##”))

If x < z ^ 2 Then w = Sqr(Abs(x * y)) Else w = n * Log(Abs(x + 2))

MsgBox (("Значение w=" & _ Format(w, “##.##”))

End Sub

Пример2: Вычислить значение функции Y (сложное условие)

.

Private Sub CommandButton1_Click()

Dim x As Single, n As Single, y As Single

'Ввод исходных данных

x = Val(InputBox("Введите x "))

n = Val(InputBox("Введите n"))

'Проверка условий и расчет значений

If x >= 0 And n >= 0 Then y = Sqr(x)

If x < 0 And n < 0 Then y = n * x + 2

'Вывод результата

MsgBox (y)

End Sub

 

Пример3: Вычислить значение функции Y

.

Private Sub CommandButton1_Click()

Dim x As Single, y As Single

'Ввод исходных данных

x = Val(InputBox("Ввелите x "))

'Проверка условия и расчет значений

If x < 0 Then y = x + 2 Else If x <= 5 Then y = Sqr(5 * x) Else y = x ^ 2

'Вывод результата

MsgBox (y)

End Sub

 

Пример4. Если х < 5, то y=sin2x, z=cosx2, w=ctgx; если х ³ 5, то y=1-sinx, z=1+cosx, w=arctgx.

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, z As Single, w As Single

'Ввод исходных данных

x = Val(InputBox("Введите значение х"))

'Проверка условий и расчет значений

If x > 5 Then

y = Sin(x)^2

z = Cos(x^2)

w = cos(x)/sin(x)

Else

y = 1 - Sin(x)

z = 1 + Cos(x)

w = Atn(x)

End If

'Вывод результатов

MsgBox (y)

MsgBox (z)

MsgBox (w)

End Sub

 


 

Лекция №10

ОПЕРАТОРЫ ЦИКЛОВ

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

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

Блок, ради которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла (рис.1). Один проход цикла называется итерацией.

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

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

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

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

· циклы Do ... Loop

· циклы For ... Next

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

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

 

 

Оператор цикла For ... Next:

For <счетчик>=<Нач Зн> То <КонЗн> Step <Приращение>

<Операторы>

Next <Счетчик>

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

Пример

Написать программу на VBA для вычисления значения функции f(x)=sin x, где x Ì [-3;3], Δx=0.3. Вывод результатов осуществить с помощью окна MsgBox.

For x = -3 To 3 Step 0.3

f = Sin(x)

MsgBox f

Next x

Пример

Написать программу на VBA для вычисления значения функции f(x)=sin x, где x Ì [-3;3], Δx=0.3. Вывод результатов осуществить в ячейки рабочего листа.

i = 1

For x = -3 To 3 Step 0.3

f = Sin(x)

Worksheets(“Лист1").Range("A" & i) = f

i = i + 1

Next x

Пример1: Программа вычисления таблицы значений функции y=aex+lnx, где x = 0,6 ( 0,2 ) 2 , т.е. x изменяется от 0,6 до 2 с шагом 0,2, a= -7,25

 

Private Sub CommandButton1_Click()

Dim x, y, a as single

a= -1.25

For x=0.6 to 2 step 0.2

y=a*exp(-x)+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

Next x

End Sub

Циклы могут быть вложенными, когда внутри одного циклического процесса должен выполняться другой. В этом случае необходимо придерживаться правила - каждый цикл должен иметь как свое начало - слово For, так и свой конец - слово Next, причем каждый раз сначала должен быть закончен внутренний цикл, а затем уже внешний.

Пример 2: Программа вычисления таблицы значений функции y= aex+lnx, где a= -7,25(0,25)9, где x = 0,6 ( 0,2 ) 2

 

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, a As Single

For a= -7.25 to 9 Step 0.25

For x=0.6 to 2 Step 0.2

y=a*exp(-x)+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

Next x

Next a

End Sub

 

Циклы типа Do ... Loop

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

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

Циклы с условием:

1. Do … Loop с условием, вводимым ключевым словом While.

2. Do … Loop с условием, вводимым ключевым словом Until.

Оба они могут быть с постусловием или предусловием

 


 

Цикл с предусловием Do While | Until Выражение Операторы   Loop Цикл с постусловием Do Операторы   Loop While | Until Выражение

 

Do – ключевое слово

While и Until – ключевые слова, которые указывают тип цикла

Выражение – выражение условия (логическое условие)

Loop – ключевое слово, которое указывает на окончание цикла

1) цикл с While продолжает свою работу, пока условие остается истинным, т.е. условие выполняется, и задается в двух вариантах

 

Цикл Do … While с предусловием

Private Sub CommandButton1_Click()

x = 1

Do While x <= 3

MsgBox ("x=" & x)

x = x + 1

Loop

End Sub

Если условие ложно (False) то пропускаются все опера-торы цикла и осуществляется выход из цикла.

Операторы тела цикла не выполняются ни разу, если при первой проверке условия оно оказывается ложным (False).

Цикл Do … While с постусловием

Private Sub CommandButton1_Click()

x = 1

Do

MsgBox ("x=" & x)

x = x + 1

Loop While x <= 3

End Sub

Операторы тела такого цикла выполняются по крайней мере один раз.

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

Для того, чтобы цикл Do…Loop завершился, необходимо, чтобы в теле цикла изменялись значения переменных, входящих в условие.

 

2) цикл с Until продолжает свою работу, пока условие является ложным, т.е. условие не выполняется, и задается в двух вариантах

Цикл Do … Until с предусловием

Private Sub CommandButton1_Click()

x = 1

Do Until x >= 3

MsgBox ("x=" & x)

x = x + 1

Loop

End Sub

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

Цикл Do … Until с постусловием

Private Sub CommandButton1_Click()

x = 1

Do

MsgBox ("x=" & x)

x = x + 1

Loop Until x >= 3

End Sub

Условие проверяется после выполнения тела цикла. Цикл должен повторяться до тех пор, пока не будет выполнено управляющее условие.

Если произошло зацикливание (зависание машины), надо нажать Ctrl + Break

 

Пример 4: Программа вычислений для приведенной выше задачи вычисления таблицы значений функции y=aex+lnx, где x = 0,6 ( 0,2 ) 2 , т.е. x изменяется от 0,6 до 2 с шагом 0,2, a= -7,25с использованием оператора цикла с условием While

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, a As Single

a = - 7.25

x = 0.6

Do While x < 2

y = a * Exp ( - x )+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

x = x + 0.2

Loop

End Sub

 

В этом примере перед началом цикла переменной x присваивается начальное значение 0,6. Затем в начале цикла проверяется условие x< 2, где 2 - конечное значение x. Если это условие верно, то вычисляется значение x, увеличенное на величину шага, и выполняются все операторы, входящие в тело цикла. Как только условие x< 2 станет неверным, циклический процесс и выполнение программы завершается.

Пример 5: Программа решения задачи, приведенной выше, с помощью оператора Until и проверкой условия в конце цикла

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, a As Single

a = - 7.25

x = 0.6

Do

y = a * Exp ( - x )+Log(x)

MsgBox ("при x=” & x & “ y= " & y)

x = x + 0.2

Loop Until x>1.8

End Sub

Приведенные программы могут решаться как с помощью операторов For…Next, так и с помощью операторов Do… Loop. А вот следующую задачу Вы вряд ли сможете решить с помощью оператора For…Next.

 

Пример 6: Грузоподъемность лифта составляет 350 кг. В лифт входят по одному человеку. Введя с клавиатуры вес каждого входящего человека, выдать сообщение о том, когда лифт будет переполнен, а также сообщить, сколько человек может ехать в лифте.

Обозначим через:

S – общий вес людей в лифте,

X – вес входящего человека,

N – количество человек, в лифте.

 

Private Sub CommandButton1_Click()

Dim X As Integer, S As Integer, N As Integer

S = 0

N = 0

Do While S <= 350

X = Val(InputBox("Введите вес человека"))

S = S + X

N = N + 1

Loop

MsgBox ("Лифт переполнен" & " Может поднятся " & N - 1 & "человек")

End Sub

Пример выполнения контрольной работы Задание №2

Вычислить:

где x= -5(0,5)5 либо x = {-0.3; 2.8; -0.2; 4.9}

 

 

 


Интерфейс программы:

 

 

 

 

Для кнопки «Расчет For … Next»

Private Sub CommandButton1_Click()

a = 2

b = 3

For i = 15 To 18

x = Worksheets("Лист5").Cells(i, 2)

If x <= 0 Then y = a + b * x + x ^ 2 Else y = Sqr(x + 1)

Worksheets("Лист5").Cells(i, 3) = y

Next i

End Sub

 

Текст программы для кнопки «Расчет Do … While»

Private Sub CommandButton2_Click()

a = 2

b = 3

i = 15

x = -5

Do While x <= 5

x = Worksheets("Лист5").Cells(i, 7)

If x <= 0 Then y = a + b * x + x ^ 2 Else y = Sqr(x + 1)

Worksheets("Лист5").Cells(i, 8) = y

x = x + 0.5

i = i + 1

Loop

End Sub

 

 

Вычисление сумм, произведений, нахождение минимумов и максимумов

Пример 7: Пусть на складе имеются следующие фрукты.

Найти общее количество условных единиц (кг) товара, находящегося на складе.

 

 

 

Для кнопки «Вычислить»:

Private Sub CommandButton1_Click()

Dim i As Integer

Dim k As Integer

Dim j As Integer

‘Определим, какое количество наименований товара находится на складе.

i = 6

Do Until Worksheets("Товар").Cells(i, 3) = ""

i = i + 1

Loop

j = i - 1

‘Вычисляем сумму

s = 0

For i = 7 To j

r = Worksheets("Товар").Cells(i, 4)

s = s + r

Next i

‘ Выводим результат

Worksheets("Товар").Cells(j + 2, 3) = _ "Общее количество товара"

Worksheets("Товар").Cells(j + 2, 4) = s

End Sub

 

‘Вычисляем произведение:

s = 1

For i = 7 To j

r = Worksheets("Товар").Cells(i, 4)

s = s * r

Next i

 

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

 

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

Учитывая то, что многие переменные могут быть использованы для расчета в разных процедурах, объявим их в разделе Geneal.

В разделе Geneal:

Dim i As Integer, Ndata As Integer

Dim Nplus As Integer, Nminus As Integer

Dim sum As Single, mx As Single, disp As Single

Dim min As Single, max As Single, x As Single

 

Для кнопки «Среднее значение»:

Private Sub CommandButton1_Click()

i = 6

Do Until Worksheets("Лист1").Cells(i, 4) = "" ‘ пока не встретится пустая строка

i = i + 1

Loop

Ndata = i - 1

‘Вычислим суммарную температуру

sum = 0

For i = 7 To Ndata

x = Worksheets("Лист1").Cells(i, 4)

sum = sum + x

Next i

‘Определим среднее значение

mx = sum / (Ndata - 6)

Worksheets("Лист1").Cells(Ndata + 2, 4) = "Средняя температура"

Worksheets("Лист1").Cells(Ndata + 2, 7) = mx

End Sub

 

Для кнопки «min»:

Private Sub CommandButton2_Click()

Dim l as Integer

min = Worksheets("Лист1").Cells(Ndata - 6, 4)

l=7

For i = 7 To Ndata

x = Worksheets("Лист1").Cells(i, 4)

If x < min Then

min = x

l=i

End If

Next i

Worksheets("Лист1").Cells(Ndata + 3, 4) = " Минимальная температура"

Worksheets("Лист1").Cells(Ndata + 3, 7) = min

Worksheets("Лист1").Cells(Ndata + 3, 9) = "Была "

Worksheets("Лист1").Cells(Ndata + 3, 10) = Cells(l, 3)

End Sub

 

Для кнопки «max»:

Private Sub CommandButton3_Click()

max = Worksheets(" Лист1 ").Cells(Ndata - 6, 4)

For i = 7 To Ndata

x = Worksheets(" Лист1 ").Cells(i, 4)

If x > max Then max = x

Next i

Worksheets(" Лист1 ").Cells(Ndata + 4, 4) = «Максимальная температура "

Worksheets(" Лист1 ").Cells(Ndata + 4, 7) = min

End Sub

 

Для кнопки «>0 и <0»:

Nplus = 0: Nminus = 0

For i = 7 To Ndata

x = Worksheets(" Лист1 ").Cells(i, 4)

If x > 0 Then Nplus = Nplus + 1 Else Nminus = Nminus + 1

Next

Worksheets(" Лист1 ").Cells(Ndata + 5, 4) = _ «Кол.дней с плюсовой темп."

Worksheets(" Лист1 ").Cells(Ndata + 5, 7) = Nplus

Worksheets(" Лист1 ").Cells(Ndata + 6, 4) = _

" Кол.дней с минусовой темп."

Worksheets(" Лист1 ").Cells(Ndata + 6, 7) = Nminus

End Sub

 

Пример выполнения контрольной работы Задание №3

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

Интерфейс программы:

 

 

 

Объявление глобальных переменных

Мы уже говорили раньше об уровне объявления переменных.

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

Доступ к ним может происходить только из данной процедуры.

Переменные, объявленные на уровне модуля, являются глобальными.

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

 

 

Для кнопки «Вычислить»:

 

Private Sub CommandButton1_Click()

i = 7

Sum = 0

Do Until Worksheets("Лист1").Cells(i, 3) = ""

x = Worksheets("Лист1").Cells(i, 4)

Sum = Sum + x

i = i + 1

Loop

Ndata = i - 7

mx = Sum / Ndata

Worksheets("Лист1").Cells(Ndata + 19, 6) = "Средняя оценка"

Worksheets("Лист1").Cells(Ndata + 19, 8) = mx

Worksheets("Лист1").Cells(Ndata + 20, 6) = "Количество студентов"

Worksheets("Лист1").Cells(Ndata + 20, 8) = Ndata

End Sub

 

Для кнопки «Очистить»

Private Sub CommandButton2_Click()

i = 7

Sum = 0

Do Until Worksheets("Лист1").Cells(i, 3) = ""

i = i + 1

Loop

Ndata = i - 7

Worksheets("Лист1").Cells(Ndata + 19, 6) = ""

Worksheets("Лист1").Cells(Ndata + 19, 8) = ""

Worksheets("Лист1").Cells(Ndata + 20, 6) = ""

Worksheets("Лист1").Cells(Ndata + 20, 8) = ""

End Sub

Расчет с помощью Excel^

=СРЗНАЧ(D7:D9)

=СЧЁТ(D7:D9)