Скачать:
Работа с массивами
Цель
Целью является изучение возможностей разработки приложений и получение практических навыков решения типовых задач с использованием одномерных и двумерных массивов.
Одномерные массивы. Задания первого уровня сложности
Реализация формы приложения:
Блок схема:
Текст программы:
Private Sub Command1_Click()
Picture1.Cls
Dim f As Boolean
Dim m(), pr As Integer
n = Val(Text1)
A = Val(Text2)
k = Val(Text3)
ReDim m(n)
Dim s As String
f = False
For i = 1 To n
m(i) = Int((31 * Rnd()) - 15)
s = s + Str(m(i)) + " "
Next i
Picture1.Print "Исходный массив:"
Picture1.Print s
s = ""
pr = 1
For i = 1 To n
If m(i) Mod 2 = 0 Then pr = pr * m(i)
Next i
Picture1.Print "Произведение элементов, имеющих четное значение: "
Picture1.Print pr
Dim ind As String
ind = ""
For i = 1 To n
If Abs(m(i)) < A Then ind = ind & " " & i & " "
Next i
Picture1.Print "Индексы элементов, значения которых по модулю меньше заданного числа А:"
Picture1.Print ind
Picture1.Print "Есть ли в данном массиве положительные элементы, делящиеся на заданное число k с остатком 2"
For i = 1 To n
If m(i) Mod k = 2 And m(i) > 0 Then f = True
Next i
If f Then Picture1.Print "Есть" Else Picture1.Print "Нет"
End Sub
Одномерные массивы. Задания второго уровня сложности
Реализация формы приложения:
Блок схема:
Текст программ:
Private Sub Command1_Click()
Picture1.Cls
n = Val(Text1)
Dim s As String
Dim A(100) As Single
Dim mas(100) As Long
For i = 1 To n
A(i) = CInt(Int((100 * Rnd()) - 30))
s = s & A(i) & " "
Next i
Picture1.Print "Массив:"
Picture1.Print s
For i = n To 1 Step -1
If A(i) Mod 3 = 0 Then
A(i) = 0
Exit For
End If
Next i
s = ""
For i = 1 To n
s = s & A(i) & " "
Next i
Picture1.Print "Задание 1:"
Picture1.Print s
For i = 1 To n
If i Mod 2 = 0 Then A(i) = A(i) * i
Next i
s = ""
For i = 1 To n
s = s & A(i) & " "
Next i
Picture1.Print "Задание 2:"
Picture1.Print s
mas(1) = 0
For i = 2 To n
If i Mod 2 = 0 Then
mas(i) = i * A(i) ^ 2
Else
mas(i) = A(i) / (i - 1)
End If
Next i
s = ""
For i = 1 To n
s = s & mas(i) & " "
Next i
Picture1.Print "Задание 3:"
Picture1.Print s
End Sub
Двумерные массивы. Задания первого уровня сложности
Реализация формы приложения:
Блок схема:
Текст программы:
Private Sub Command1_Click()
Picture1.Cls
Picture2.Cls
n = Val(Text1)
m = Val(Text2)
Dim s As String
Dim f As Boolean
f = False
Dim a() As Long
Dim mas() As Long
ReDim mas(n, n)
ReDim a(n, m)
For i = 1 To n
For j = 1 To m
a(i, j) = 100 * Rnd() + 1
Next j, i
For i = 1 To n
For j = 1 To m
s = s & a(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture1.Print s
Max = a(1, 1)
Min = a(1, 1)
For i = 1 To n
For j = 1 To m
If a(i, j) > Max Then Max = a(i, j)
If a(i, j) < Min Then Min = a(i, j)
Next j, i
For i = 1 To n
For j = 1 To m
Sum = Sum + a(i, j)
Next j, i
sa = Sum / (n * m)
r = sa - (Min + Max) / 2
Picture1.Print "разность между средним арифметическим элементов массива"
Picture1.Print "и средним арифметическим максимального и минимального элементов: " & r
For i = 1 To n
For j = 1 To n
mas(i, j) = i
Next j,i
s = ""
For i = 1 To n
For j = 1 To n
s = s & mas(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture2.Print s
End Sub
Двумерные массивы. Задания второго уровня сложности
Реализация формы приложения:
Блок схема:
Текст программы:
Private Sub Command1_Click()
Picture1.Cls
Picture2.Cls
Picture3.Cls
Picture4.Cls
n = Val(Text1)
m = Val(Text2)
Dim s As String
ReDim a(n, m) As Integer
For i = 1 To n
For j = 1 To m
a(i, j) = Rnd * 35 - 15
Next j, i
s = ""
For i = 1 To n
For j = 1 To m
s = s & a(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture1.Print s
For i = 1 To n
Min = Abs(a(i, 1))
ind_min = 1
For j = 1 To m
If Abs(a(i, j)) < Min Then Min = Abs(a(i, j)): ind_min = j
Next j
a(i, ind_min) = 0
Next i
s = ""
For i = 1 To n
For j = 1 To m
s = s & a(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture2.Print s
For i = 1 To n
temp = a(i, 1)
a(i, 1) = a(i, n)
a(i, n) = temp
Next i
s = ""
For i = 1 To n
For j = 1 To m
s = s & a(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture3.Print s
For i = 1 To n
For j = 1 To m
If a(i, j) = 0 Then
For x = i To n - 2
For y = 1 To m
a(x, y) = a(x + 1, y)
Next y, x
n = n - 1
End If
Next j, i
s = ""
For i = 1 To n
For j = 1 To m
s = s & a(i, j) & " "
Next j
s = s & vbCrLf
Next i
Picture4.Print s
End Sub