
-
В одномерном массиве из положительных и отрицательных чисел найти максимальное отрицательное число (ближайшее к нулю) и его место в массиве.
Исходные данные ввести с клавиатуры. Вывод данных в объект “Надпись(label)”
Private Sub Command1_Click()
odnomerniy1
End Sub
Sub odnomerniy1()
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 odnomerniyodin(m())
End Sub
Sub odnomerniyodin(m1() As Integer)
Max = -10000000
For i = 1 To 10
If m1(i) < 0 And m1(i) > Max Then Max = m1(i): k = i
Next i
If Max = -10000000 Then Debug.Print "отрицательных чисел нет" Else Debug.Print "наибольшее отрицательное число "; Max, "место в массиве "; k
Label1.Caption = "k=" & Str(k)
If Max = -10000000 Then Label2.Caption = "Отрицательных чисел нет" Else: Label2.Caption = "max=" & Str(Max)
End Sub
2.В одномерном массиве из положительных и отрицательных чисел найти отрицательные числа и их сумму и вывести на экран. Исходные данные прочитать из файла на диске. Вывод данных в текстовое поле “(TextBox)”
Sub vvod()
Dim m(1 To 10) As Integer
номер = FreeFile
Open "D:\a1.txt" For Input As номер
Print "Исходный массив"
For i = 1 To 10
Input #номер, m(i)
Print m(i);
Next i
Close номер
Call odnomerniydva(m())
End Sub
Sub odnomerniydva(m1() As Integer)
Sum = 0
rez = ""
For i = 1 To 10
If m1(i) < 0 Then Sum = Sum + m1(i): rez = rez + Str(m1(i)) + vbCrLf
Next i
If Sum = 0 Then Text1.Text = "нет отрицательных чисел " Else Text1.Text = rez + " результат" + Str(Sum)
End Sub
Private Sub Command1_Click()
vvod
End Sub
3.В одномерном массиве из положительных и отрицательных чисел найти четные положительные числа и их сумму. Ввод из списка (ListBox). Вывод на диск.
Private Sub Command1_Click()
VvodDannih
End Sub
Private Sub Form_Load()
List2.AddItem 1
List2.AddItem -4
List2.AddItem 2
List2.AddItem -5
List2.AddItem -2
List2.AddItem 5
List2.AddItem 7
List2.AddItem 8
List2.AddItem 3
List2.AddItem 1
End Sub
Sub VvodDannih()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = List2.List(i - 1)
Next i
Debug.Print "Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
Call odnomerniytri(m())
End Sub
Sub odnomerniytri(m1() As Integer)
Sum = 0
For i = 1 To 10
If m1(i) > 0 And m1(i) Mod 2 = 0 Then Sum = Sum + m1(i)
Next i
Dim path As String
path = "F:\govno.txt"
rez = ""
rez = rez + Str(sum) + vbCrLf
Open path For Append As #1
Print #1, rez
Close #1
End Sub
4.В одномерном массиве из положительных и отрицательных чисел упорядочить по возрастанию нечетные отрицательные числа. Ввод рандомом. Вывод в textBox
Private Sub Command1_Click()
zadacha4
End Sub
Sub zadacha4()
Dim m(1 To 10) As Integer
Randomize Timer
For i = 1 To 10
m(i) = Int(Rnd() * 100) + 1 - 50
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 cv4(m())
End Sub
Sub cv4(m1() As Integer)
For i = 1 To 10
For j = 1 To 10
If (m1(i) / 2) <> Int(m1(i) / 2) And (m1(j) / 2) <> Int(m1(j) / 2) Then
If m1(i) < 0 And m1(j) < 0 And m1(i) < m1(j) Then
x = m1(i)
m1(i) = m1(j)
m1(j) = x
End If
End If
Next j
Next i
Text1.Text = "Новый массив" + vbCrLf
For i = 1 To 10
Text1.Text = Text1.Text & Str(m1(i)) & " "
Next i
Text1.Text = Text1.Text + vbCrLf
End Sub
5. В одномерном массиве из положительных и отрицательных чисел найти числа, попадающие в указанный диапазон и их сумму.Ввод с клавиатуры, вывод на форму.
Private Sub Command1_Click()
zadacha5
End Sub
Sub zadacha5()
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 cv5(m())
End Sub
Sub cv5(m1() As Integer)
s = 0
a = InputBox("Задайте диапазон [a;b] Введите a-")
b = InputBox("Задайте диапазон [a;b] Введите b-")
Debug.Print "a="; a, "b="; b
For i = 1 To 10
If m1(i) >= a And m1(i) <= b Then
d = m1(i)
s = s + d
Debug.Print "Число из диапазона [a;b] - "; d
End If
Next i
Print "сумма "; s
End Sub
6. В одномерном массиве из положительных и отрицательных чисел найти четные числа, попадающие в указанный диапазон и их произведение. Ввод с listBox. Вывод на диск.
Private Sub Command1_Click()
VvodDannih
End Sub
Private Sub Form_Load()
List2.AddItem 1
List2.AddItem -4
List2.AddItem 2
List2.AddItem -5
List2.AddItem -2
List2.AddItem 5
List2.AddItem 7
List2.AddItem 8
List2.AddItem 3
List2.AddItem 1
End Sub
Sub VvodDannih()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = List2.List(i - 1)
Next i
Debug.Print "Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
Call cv6(m())
End Sub
Sub cv6(m1() As Integer)
p = 1
a = InputBox("Задайте диапазон [a;b] Введите a-")
b = InputBox("Задайте диапазон [a;b] Введите b-")
Print "a="; a, "b="; b
For i = 1 To 10
If m1(i) >= a And m1(i) <= b And m1(i) Mod 2 = 0 Then
d = m1(i)
p = p * d
Print "Число из диапазона [a;b] - "; d
End If
Next i
Dim path As String
path = "F:\govno.txt"
rez = ""
rez = rez + Str(p) + vbCrLf
Open path For Append As #1
Print #1, rez
Close #1
End Sub
7. В одномерном массиве из положительных и отрицательных чисел каждое второе нечетное число умножить на 2.Ввод из диска. Вывод данных в список Listbox
Private Sub Command1_Click()
zadacha7
End Sub
Sub zadacha7()
Dim m(1 To 10) As Integer
номер = FreeFile
Open "F:\soft\infa\a1.txt" For Input As номер
Print "Исходный массив"
For i = 1 To 10
Input #номер, m(I)
Print m(i);
Next i
Close номер
Call cv7(m())
End Sub
Sub cv7(m1() As Integer)
k = 0
For i = 1 To 10
If m1(i) Mod 2 <> 0 Then k = k + 1
If m1(i) Mod 2 <> 0 And k = 2 Then m1(i) = m1(i) * 2: k = 0
Next i
Debug.Print "Получившийся массив"
For i = 1 To 10
Debug.Print m1(i);
Next i: Debug.Print: Debug.Print
For i = 1 To 10
t = ""
t = t & Str(m1(i)) & " "
List1.List(i - 1) = t
Next i
End Sub
8. В одномерном массиве из положительных и отрицательных чисел каждое второе отрицательное нечетное число умножить на 3. Ввести их ListBox. Вывести в окно отладки
Private Sub Command1_Click()
VvodDannih
End Sub
Private Sub Form_Load()
List1.AddItem 1
List1.AddItem -4
List1.AddItem 2
List1.AddItem -5
List1.AddItem -2
List1.AddItem 5
List1.AddItem -3
List1.AddItem 8
List1.AddItem -5
List1.AddItem 1
End Sub
Sub VvodDannih()
Dim m(1 To 10) As Integer
For i = 1 To 10
m(i) = List1.List(i - 1)
Next i
Debug.Print "Исходный массив"
For i = 1 To 10
Debug.Print m(i);
Next i: Debug.Print: Debug.Print
Call cv8(m())
End Sub
Sub cv8(m1() As Integer)
k = 0
For i = 1 To 10
If m1(i) Mod 2 <> 0 And m1(i) < 0 Then k = k + 1
If m1(i) Mod 2 <> 0 And m1(i) < 0 And k = 2 Then m1(i) = m1(i) * 3: k = 0
Next i
Debug.Print "Получившийся массив"
For i = 1 To 10
Debug.Print m1(i);
Next i: Debug.Print: Debug.Print
End Sub
9. В одномерном массиве из положительных и отрицательных чисел второе положительное число умножить на второе отрицательное число.Ввести с клавиатуры. Вывести в объект label
Sub zadacha9()
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 cv9(m())
End Sub
Sub cv9(m1() As Integer)
k = 0
a = 0
s = -1000
p = -1000
For i = 1 To 8
If m1(i) > 0 Then k = k + 1
If m1(i) > 0 And k = 2 Then s = m1(i)
If m1(i) < 0 Then a = a + 1
If m1(i) < 0 And a = 2 Then p = m1(i)
Next i
If s = -1000 Or p = -1000 Then Label2.Caption = "нет необходимых данных для вычисления" Else pr = s * p: Label2.Caption = "Произведение " & Str(pr)
End Sub
Private Sub Command1_Click()
zadacha9
End Sub
10. Одномерный массив из положительных и отрицательных чисел сдвинуть вправо на 2 позиции. Ввод листбокс; Вывод на диск
Private Sub Command1_Click()