- •VbCrLf)
- •Imports System.Math
- •Imports System.Math
- •InputVector(a, "a")
- •InputVector(b, "b")
- •Imports System.Math
- •InputVector(a, "a")
- •InputVector(b, "b")
- •InputVector(b, "b")
- •VbCrLf)
- •InputVector(a, "a")
- •VbCrLf)
- •VbCrLf)
- •InputVector(a, "a")
- •InputVector(b, "b")
- •InputVector(a, "a")
- •InputVector(b, "b")
- •InputVector(a, "a")
- •InputVector(b, "b")
Imports System.Math
Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click
Dim A(), B() As Single
Dim n1, n2, i, z1 As Integer
Dim P, L, Разница, arifm1, arifm2 As Single
txtЖурнал.Clear()
n1 = InputBox("Введите n1")
n2 = InputBox("Введите n2")
z1 = InputBox("Введите z1")
txtЖурнал.AppendText("Разница средних значений = " & z1 & vbCrLf)
ReDim A(n1), B(n2)
InputVector(a, "a")
txtЖурнал.AppendText("Вектор A" & vbCrLf)
OutputVector(A, txtЖурнал)
InputVector(b, "b")
txtЖурнал.AppendText("Вектор b" & vbCrLf)
OutputVector(B, txtЖурнал)
Среднее(A, arifm1)
Среднее(B, arifm2)
Разница = arifm1 - arifm2
If Abs(Разница) < z1 Then
txtЖурнал.AppendText("Вектора А и B равнозначны :)" & vbCrLf)
Else
txtЖурнал.AppendText("Среднее для А = " & arifm1 & vbCrLf)
txtЖурнал.AppendText("Среднее для B = " & arifm2 & vbCrLf)
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Label1.Click
End
End Sub
Private Sub InputVector(ByRef x() As Single, _
Optional ByVal ArrayName As String = "элемент")
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
x(i) = InputBox(ArrayName & _
"(" & i & ") = ?")
Next
End Sub
Private Sub OutputVector(ByRef x() _
As Single, ByVal txtBx As TextBox)
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
txtBx.AppendText(" " & x(i))
Next
txtBx.AppendText(vbCrLf)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Sub Среднее(ByVal x() As Single, ByRef arifm As Single)
Dim S As Single
Dim G As Integer
S = 0
G = 0
For i = 1 To x.GetUpperBound(0)
S = S + x(i)
G = G + 1
Next
arifm = S / G
End Sub
End Class
Задача 20
Imports System.Math
Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click
Dim A(,), B(,) As Single
Dim n1, n2, m1, m2, H As Integer
Dim P, L As Single
txtЖурнал.Clear()
n1 = InputBox("Введите n1")
n2 = InputBox("Введите n2")
m1 = InputBox("Введите m1")
m2 = InputBox("Введите m2")
H = InputBox("Введите H")
txtЖурнал.AppendText("Граница = " & H & vbCrLf)
ReDim A(n1, m1), B(n2, m2)
InputMatrix(A, "A")
txtЖурнал.AppendText("Matrix A" & vbCrLf)
OutputMatrix(A, txtЖурнал)
InputMatrix(B, "B")
txtЖурнал.AppendText("Matrix b" & vbCrLf)
OutputMatrix(B, txtЖурнал)
P = Max(A)
L = Max(B)
txtЖурнал.AppendText("Максимальный А = " & P & vbCrLf)
txtЖурнал.AppendText("Максимальный B = " & L & vbCrLf)
If P > H Then
For j = 1 To m1
A(1, j) = Sqrt(A(1, j))
Next
Else
txtЖурнал.AppendText("Значение не предельно" & vbCrLf)
End If
OutputMatrix(A, txtЖурнал)
If L > H Then
For j = 1 To m2
B(1, j) = Sqrt(B(1, j))
Next
Else
txtЖурнал.AppendText("Значение не предельно" & vbCrLf)
End If
OutputMatrix(B, txtЖурнал)
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Label1.Click
End
End Sub
Private Sub InputMatrix(ByRef x(,) As Single, Optional ByVal ArrayName As String = "элемент")
Dim i, j As Integer
For i = 1 To x.GetUpperBound(0)
For j = 1 To x.GetUpperBound(1)
x(i, j) = InputBox(ArrayName & "(" & i & "," & j & ") = ?")
Next
Next
End Sub
Private Sub OutputMatrix(ByVal x(,) As Single, ByVal y As TextBox)
Dim i, j As Integer
For i = 1 To x.GetUpperBound(0)
For j = 1 To x.GetUpperBound(1)
y.AppendText(x(i, j) & vbTab)
Next
y.AppendText(vbCrLf)
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Function Max(ByVal x(,) As Single) As Single
Dim S As Single
S = 0
For i = 1 To x.GetUpperBound(0)
For j = 1 To x.GetUpperBound(1)
If x(i, j) > S Then
S = x(i, j)
Else
j = j + 1
End If
Next
Next
Return (S)
End Function
End Class
Задача 25
Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnПуск.Click
Dim P(), C() As Single
Dim n1, n2, H, k, k1, k2 As Integer
txtЖурнал.Clear()
n1 = InputBox("Введите n1")
n2 = InputBox("Введите n2")
H = InputBox("Введите H")
txtЖурнал.AppendText("Граница = " & H & vbCrLf)
ReDim P(n1), C(n2)
InputVector(P, "P")
txtЖурнал.AppendText("Vector P" & vbCrLf)
OutputVector(P, txtЖурнал)
InputVector(C, "C")
txtЖурнал.AppendText("Vector C" & vbCrLf)
OutputVector(C, txtЖурнал)
Min(P, H, k1)
Min(C, H, k2)
If k1 > k2 Then
txtЖурнал.AppendText("Число замен в векторе P больше, вектор P:" & vbCrLf)
OutputVector(P, txtЖурнал)
Else
txtЖурнал.AppendText("Число замен в векторе С больше, вектор С:" & vbCrLf)
OutputVector(C, txtЖурнал)
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Label1.Click
End
End Sub
Private Sub InputVector(ByRef x() As Single, _
Optional ByVal ArrayName As String = "элемент")
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
x(i) = InputBox(ArrayName & _
"(" & i & ") = ?")
Next
End Sub
Private Sub OutputVector(ByRef x() _
As Single, ByVal txtBx As TextBox)
Dim i As Integer
For i = 1 To x.GetUpperBound(0)
txtBx.AppendText(" " & x(i))
Next
txtBx.AppendText(vbCrLf)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Public Sub Min(ByVal x() As Single, ByVal H As Single, ByRef k As Integer) 'Обращение будет выглядеть Min(A,H) или Min(B,H)
k = 0
For i = 1 To x.GetUpperBound(0) ' Проходим по всему массиву, от 1 элемента до последнего
If x(i) < H Then
x(i) = 0
k = k + 1
Else
i = i + 1 ' Переходим сразу к следующему элементу
End If
Next
End Sub
End Class
БИЛЕТ №30 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n, za, zb As Integer Dim a() As Single, b() As Single txtЖурнал.Clear() n = InputBox _ ("Задайте количество ячеек векторов а и б") txtЖурнал.AppendText("n = " & n & vbCrLf) ReDim a(n), b(n) InputVector(a, "a") txtЖурнал.AppendText("Вектор a" & vbCrLf) OutputVector(a, txtЖурнал) InputVector(b, "b") txtЖурнал.AppendText("Вектор b" & vbCrLf) OutputVector(b, txtЖурнал) 'анализ колва положит и отриц элементов в массивах za = PosVsNeg(a) zb = PosVsNeg(b) 'вывод результата в текстовой удобной форме If (za = 1) And (zb = 1) Then txtЖурнал.AppendText("Показатели в норме") Else If za < 1 Then txtЖурнал.AppendText("Обратите внимание на А") End If If zb < 1 Then txtЖурнал.AppendText("Обратите внимание на B") End If End If End Sub '1 - положительных больше, -1 - отриц больше, 0 - поровну Private Function PosVsNeg(ByVal x() As Single) As Integer Dim i As Integer 'счетчик номеров элементов Dim pos As Integer 'количество положительных Dim neg As Integer 'количество отрицательных pos = 0 neg = 0 For i = 1 To x.GetUpperBound(0) 'анализируем каждый элемент If x(i) > 0 Then pos = pos + 1 'если положительный If x(i) < 0 Then neg = neg + 1 'если отрицательный Next If pos > neg Then PosVsNeg = 1 ElseIf neg > pos Then PosVsNeg = -1 Else : PosVsNeg = 0 End If End Function 'процедура ввода вектора Private Sub InputVector(ByRef x() As Single, Optional _ ByVal ArrayName As String = "элемент") Dim i As Integer For i = 1 To x.GetUpperBound(0) x(i) = InputBox(ArrayName & "(" & i & ") = ?") Next End Sub 'процедура вывода вектора Private Sub OutputVector(ByVal x() As Single, _ ByVal y As TextBox) Dim i As Integer For i = 1 To x.GetUpperBound(0) y.AppendText(x(i) & vbTab) Next y.AppendText(vbCrLf) End Sub End Class
Задача 1
Составьте процедуру, изменяющую одномерный массив чисел делением его положительных элементов на свои индексы и определяющую число таких замен. Используя эту процедуру, определите, в каком из двух заданных одномерных массивов А или В больше измененных элементов, а также выведите измененные массивы А и В. Если же число измененных элементов одинаково, то выведите соответствующее сообщение.
1.Public Class Form1
Private Sub btnПуск_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnПуск.Click
Dim n, i, za, zb As Integer
Dim a() As Single, b() As Single
txtЖурнал.Clear()
n = InputBox _
("Задайте количество ячеек векторов а и б")
txtЖурнал.AppendText("n = " & n & vbCrLf)
ReDim a(n), b(n)
