Private Sub CommandButton2_Click()
Dim i As Integer
Dim j As Integer
Dim x As Double
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 4), Cells(28, 6)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 4)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
x = xn
Do
Cells(i, j) = Format(x, "0.0#")
If x <= 0 Then
Cells(i, j + 1) = Format(g(x), "#0.0###")
Else
Cells(i, j + 2) = Format(g(x), "#0.0###")
End If
x = x + xd: i = i + 1
Loop While x <= xk
End Sub
Private Sub CommandButton3_Click()
Dim i As Integer
Dim j As Integer
Dim x As Double
Dim w As String
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 7), Cells(28, 9)) = Clear
w = InputBox("w =", " очистить диапазон ? - Y/N")
If w = "Y" Then Range(Columns(1), Rows(15)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 7)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
x = xn
Do Until x > xk
Cells(i, j) = Format(x, "0.0#")
|
|
If x <= 0 Then
Cells(i, j + 1) = Format(g(x), "#0.0###")
Else
Cells(i, j + 2) = Format(g(x), "#0.0###")
End If
x = x + xd: i = i + 1
Loop
End Sub
Private Sub CommandButton4_Click()
Dim i As Integer
Dim j As Integer
Dim x As Double
Dim w As String
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 10), Cells(28, 12)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 10)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
x = xn
Do
Cells(i, j) = Format(x, "0.0#")
If x <= 0 Then
Cells(i, j + 1) = Format(g(x), "#0.0###")
Else
Cells(i, j + 2) = Format(g(x), "#0.0###")
End If
x = x + xd: i = i + 1
Loop Until x > xk
End Sub
Private Sub CommandButton5_Click()
Dim i As Integer
Dim j As Integer
Dim x As Double
Dim w As String
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 13), Cells(28, 15)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
|
|
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 13)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
x = xn
While x <= xk
Cells(i, j) = Format(x, "0.0#")
If x <= 0 Then
Cells(i, j + 1) = Format(g(x), "#0.0###")
Else
Cells(i, j + 2) = Format(g(x), "#0.0###")
End If
x = x + xd: i = i + 1
Wend
End Sub
Private Sub CommandButton6_Click()
Dim i As Integer
Dim j As Integer
Dim x As Double
Dim w As String
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 16), Cells(28, 18)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 16)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
For x = xn To xk Step xd
Cells(i, j) = Format(x, "0.0#")
If x <= 0 Then
Cells(i, j + 1) = Format(g(x), "#0.0###")
Else
Cells(i, j + 2) = Format(g(x), "#0.0###")
End If
i = i + 1
Next x
End Sub
Private Sub CommandButton7_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
|
|
Dim x() As Double
Dim y() As Double
Dim w As String
w = InputBox("w =", " очистить диапазон ? - (Y,y, Д , д )/N")
If (w = "Y") Or (w = "y") Or (w = " Д ") Or (w = " д ") Then Range(Cells(7, 19), Cells(28, 21)) = Clear
‘If w = "Y" Then Range(Columns(1), Rows(19)) = Clear
xn = InputBox("xn =", "Введите начало диапазона", -3)
xk = InputBox("xk =", "Введите конец диапазона", 7)
xd = InputBox("xd =", "Введите шаг изменения переменной", 0.5)
i = InputBox("i =", "Введите начало таблицы, строку", 7)
j = InputBox("j =", "Введите начало таблицы, столбец", 19)
Cells(i, j) = "X": Cells(i, j + 1) = "G1": Cells(i, j + 2) = "G2"
i = i + 1
i0 = i
ReDim x((xk - xn) / xd)
ReDim y((xk - xn) / xd)
For k = 0 To (xk - xn) / xd
x(k) = xn + k * xd
y(k) = g(x(k))
Next k
For Each n In x
Cells(i, j) = Format(n, "0.0#")
i = i + 1
Next n
i = i0
k = 0
For Each n In y
If x(k) <= 0 Then Cells(i, j + 1) = Format(n, "#0.0###") Else Cells(i, j + 2) = Format(n, "#0.0###")
i = i + 1
k = k + 1
Next n
End Sub
Некоторые комментарии к программам:
– В программах используется специально созданная пользовательская функция g |( x );
Процесс создания функции пользователя следующий:
– находясь в Excel, включить редактор VBA, нажав ALT - F 11;
– включить режим вставки – insert;
– выбрать – Module;
– в появившемся окне написать текст модуля, соответствующий программируемой функции –
|
|
Function g(x)
If x <= 0 Then g = Sin(x) Else g = Exp(-x)
End Function
– нажать пиктограмму – Run Sub / UserForm;
– в появившемся окне Macros щелкнуть по клавише Cancel , что обеспечивает внесение функции g ( x ) в библиотеку модулей мастера функций f x;
с этого момента функция g ( x ) доступна всем пользователям мастера функций f x в разделах “Полный алфавитный перечень” либо “Определенные пользователем”;
ИМЕНА ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ НЕ ДОЛЖНЫ СОВПАДАТЬ С АДРЕСАМИ ЯЧЕЕК ТАБЛИЦЫ EXCEL .
– В программах используется функция Format ( x , "0.0#"), которая обеспечивает вывод указанной переменной, в данном случае X , в заданном формате "0.0#", в данном случае, один разряд до десятичной точки, два – после;
– В модуле с оператором For Each … next используетсядинамическое объявление массивов
Dim x() As Double
Dim y() As Double
с последующим уточнением мерности массивов
ReDim x (( xk - xn ) / xd )
ReDim y (( xk - xn ) / xd ), которое может размещаться в любом месте программы;
– Так как оператор цикла For Each … next может оперировать только с элементами одного множества, то для вывода спектров значений аргумента X и функции g ( x ) используются два разных оператора
For Each n In x
…
Next n
и
For Each n In y
…
Next n.
8. ИГРА “УГАДАЙ ЧИСЛО”
Целью лабораторной работы является приобретение навыков практического использования функции RND ( Randomize ) для генерирования случайных чисел в заданном диапазоне, функции Round - округлениеи функции Cstr для выполнения операции сцепления (конкатенации) символьных данных.
Сценарий, алгоритм игры следующий: программа “загадывает” целое (для простоты) число в заданном диапазоне и на предлагаемые играющим варианты ответов сообщает – больше или меньше “загаданное” ею число, считая при этом количество попыток. Выводимая информация – Диалог программы с игроком – определяется программистом рис. 8.1.
Программа игры в V ВА
Дата добавления: 2019-03-09; просмотров: 507; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!