Скачиваний:
1
Добавлен:
30.09.2018
Размер:
40.44 Кб
Скачать
  1. В одномерном массиве из положительных и отрицательных чисел найти максимальное отрицательное число (ближайшее к нулю) и его место в массиве.

Исходные данные ввести с клавиатуры. Вывод данных в объект “Надпись(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()

Соседние файлы в папке Информатика