Input #номер, m(I)
Print m(i);
Next i
Close номер
Call obrabotka(m())
End Sub
Sub obrabotka(m1() As Integer)
For i = 1 To 9
For j = i + 1 To 10
If m1(i) > 0 And m1(i) Mod 2 <> 0 Then
If m1(j) > 0 And m1(j) Mod 2 <> 0 Then
If m1(j) < m1(i) Then
a = m1(i)
m1(i) = m1(j)
m1(j) = a
End If
End If
End If
Next j
Next i
For i = 1 To 10
t = ""
t = t & Str(m1(i)) & " "
List1.List(i - 1) = t
Next i
End Sub
15. В одномерном массиве из положительных и отрицательных чисел найти максимальное четное число и его место в массиве. Ввести с клавиатуры, вывести в объект надпись(label)
Private Sub Command1_Click()
zadacha15
End Sub
Sub zadacha15()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = InputBox("введите " & i & "число")
Next i
Debug.Print " Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
rez = ""
rez = rez + "Исходный массив" + vbCrLf
For i = 1 To 10
rez = rez + Str(m(i))
Next i
Print rez
Call cv15(m())
End Sub
Sub cv15(m1() As Integer)
Max = -10000
For i = 1 To 10
If m1(i) Mod 2 = 0 And m1(i) > Max Then Max = m1(i): k = i
Next i
Label1.Caption = "k=" & Str(k)
If Max = -10000 Then Label2.Caption = "нету четных чисел" Else Label2.Caption = " максимальное четное=" & Str(Max)
End Sub
16. В одномерном массиве из положительных и отрицательных чисел найти произведение максимального четного и максимального нечетного числа.Ввод инпут,вывод лабель
Sub zadacha16()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = InputBox("Введите " & i & "Число")
Next i
Debug.Print "Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
rez = ""
rez = rez + "Исходный массив" + vbCrLf
For i = 1 To 10
rez = rez + Str(m(i))
Next i
Print rez
Call cv16(m())
End Sub
Sub cv16(m1() As Integer)
Max = -10000
maxi = -10000
For i = 1 To 10
If m1(i) Mod 2 = 0 And m1(i) > Max Then Max = m1(i)
If m1(i) Mod 2 <> 0 And m1(i) > maxi Then maxi = m1(i)
Next i
If Max = -10000 Or Max = -10000 Then Label1.Caption = "Нету требуемых" Else p = Max * maxi: Label1.Caption = "Произведение" & Str(p)
End Sub
Private Sub Command1_Click()
zadacha16
End Sub
17. В одномерном массиве из положительных и отрицательных чисел максимальное четное и максимальное нечетное число поменять местами.
Ввод с клавы, вывод на форму.
Private Sub Command1_Click()
zadacha17
End Sub
Sub zadacha17()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = InputBox("Введите " & i & "Число")
Next i
Debug.Print "Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
rez = ""
rez = rez + "Исходный массив" + vbCrLf
For i = 1 To 10
rez = rez + Str(m(i))
Next i
Print rez
Call cv17(m())
End Sub
Sub cv17(m1() As Integer)
Max = -10000
maxi = -10000
For i = 1 To 10
If m1(i) Mod 2 = 0 And m1(i) > Max Then Max = m1(i): k = i
If m1(i) Mod 2 <> 0 And m1(i) > maxi Then maxi = m1(i): Z = i
Next i
If Max = -10000 Or maxi = -10000 Then Debug.Print "нету требуемых чисел" Else
d = m1(k): m1(k) = m1(Z): m1(Z) = d
Print " массив"
For i = 1 To 10
Print m1(i);
Next i: Debug.Print: Debug.Print
End Sub
18. В одномерном массиве из положительных и отрицательных чисел найти произведение максимального нечетного отрицательного числа и минимального положительного числа.Ввод рандом ,вывод текст бокс.
Sub zadacha18()
Dim m(1 To 8) As Integer
Randomize Timer
For i = 1 To 8
m(i) = Int(Rnd() * 100) + 1 - 50
Next i
Debug.Print "Исходный массив"
For i = 1 To 8
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
Call cv18(m())
End Sub
Sub cv18(m1() As Integer)
Max = 10000
maxi = -10000
For i = 1 To 8
If m1(i) > 0 And m1(i) < Max Then Max = m1(i)
If m1(i) Mod 2 <> 0 And m1(i) > maxi And m1(i) < 0 Then maxi = m1(i)
Next i
If Max = -10000 Or maxi = -10000 Then Text1.Text = "нет требуемых чисел" Else p = Max * maxi: Text1.Text = Str(Max) & Str(Maxi) & "Произведение" & Str(p)
End Sub
Private Sub Command1_Click()
zadacha18
End Sub
19. В одномерном массиве из положительных и отрицательных чисел найти сумму каждого второго отрицательного числа и каждого второго положительного числа.
Ввод рандом, вывод label
Private Sub Command1_Click()
zadacha19
End Sub
Sub zadacha19()
Dim m(1 To 8) As Integer
Randomize Timer
For i = 1 To 8
m(i) = Int(Rnd() * 100) + 1 - 50
Next i
Debug.Print "Исходный массив"
For i = 1 To 8
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
Call cv19(m())
End Sub
Sub cv19(m1() As Integer)
k = 0
y = 0
p = 0
h = 0
For i = 1 To 8
If m1(i) < 0 Then k = k + 1
If m1(i) < 0 And k = 2 Then p = p + m1(i): k = 0
If m1(i) > 0 Then y = y + 1
If m1(i) > 0 And y = 2 Then h = h + m1(i): y = 0
Next i
Label1.Caption = "сумма отрицательных " & Str(p)
Label2.Caption = "сумма положительных" & Str(h)
End Sub
Private Sub Form_Load()
End Sub
20.В одномерном массиве из положительных и отрицательных чисел найти сумму каждого второго четного числа и каждого второго нечетного числа. Ввод листбокс вывод обично(на отладку).
Private Sub Command1_Click()
