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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!