150 пунктов за два задания в Basic
1.Составьте функцию, проверяющую упорядоченность всех элементов одномерного массива целых чисел по убыванию их значений. Используя эту функцию, выведите каждый из двух заданных одномерных массивов А и В, если его элементы не упорядочены в порядке убывания их значений. В противном случае выведите сообщение "Массив А ( или В) упорядочен".
2. Составьте функцию проверяющую, что все элементы одномерного массива имеют значения, больше заданной величины. Используя эту функцию, определите для двух заданных одномерных массивов А и В, у скольких из них значение всех элементов больше заданной величины h
Answers & Comments
Dim A() As Integer
Dim B() As Integer
Randomize()
Dim k As Integer
Dim i As Integer
i = Rnd() * 100 + 1
ReDim A(i)
For k = 0 To i
A(k) = Rnd() * -1000 + 500
Next
i = Rnd() * 100 + 1
ReDim B(i)
For k = 0 To i
B(k) = Rnd() * -1000 + 500
Next
''''1.
Dim msg_A As String
msg_A = VerifySort(A)
If msg_A <> CStr(A.Length) Then
MsgBox(msg_A)
Else
MsgBox("Массив А упорядочен")
End If
Dim msg_B As String
msg_B = VerifySort(B)
If msg_B <> CStr(A.Length) Then
MsgBox(msg_B)
Else
MsgBox("Массив B упорядочен")
End If
sort(A)
msg_A = VerifySort(A)
If msg_A <> CStr(A.Length) Then
MsgBox(msg_A)
Else
MsgBox("Массив А упорядочен")
End If
''''' 2.
Dim h As Integer
h = InputBox("Введите h")
i = CompareValue(A, h)
If i <> UBound(A) Then
MsgBox("У массива не все элементы больше h. Значений больше h " & i & " шт.")
Else
MsgBox("У массива все элементы больше h.")
End If
i = CompareValue(B, h)
If i <> UBound(B) Then
MsgBox("У массива не все элементы больше h. Значений больше h " & i & " шт.")
Else
MsgBox("У массива все элементы больше h.")
End If
End Sub
Private Function VerifySort(ByRef Massiv() As Integer) As String
Dim i, j, k As Integer
Dim msg As String
For i = Massiv.Length To 0 Step -1
For j = Massiv.Length - 1 To 1 Step -1
If Massiv(j) < Massiv(j - 1) Then
For k = 0 To Massiv.Length - 1
msg = msg & Massiv(k) & vbCrLf
Next
Return msg
End If
Next j
Next i
Return Massiv.Length
End Function
Private Function sort(ByRef Massiv() As Integer) As Integer
Dim i, j, Dump As Integer
For i = Massiv.Length To 0 Step -1
For j = Massiv.Length - 1 To 1 Step -1
If Massiv(j) < Massiv(j - 1) Then
Dump = Massiv(j)
Massiv(j) = Massiv(j - 1)
' c2fbefeeebede8eb3a20caf3eff0e8ffedeee220c42ec52e2028632920442d6d6f6e3535
Massiv(j - 1) = Dump
End If
Next j
Next i
Return Massiv.Length
End Function
Private Function CompareValue(ByRef Massiv() As Integer, ByVal h As Integer) As Integer
Dim count As Integer
Dim i As Integer
For i = 0 To UBound(Massiv) - 1
If Massiv(i) > h Then count = count + 1
' c2fbefeeebede8eb3a20caf3eff0e8ffedeee220c42ec52e2028632920442d6d6f6e3535
Next
Return count
End Function