Создание программ обработки одномерных массивов
Задание: В одномерном числовом массиве вычислить сумму элементов, значение которых меньше значения последнего положительного элемента
Программный код:
Dim n As Integer, i As Integer‘процедура кнопки вывода массива на форму
Dim x() As Single
Private Sub CmdTest_Click()
Dim newline As String, elements As String
newline = Chr(13) + Chr(10)
TxtX.Text = "Элементы массива:" + newline
For i = 1 To n
TxtX.Text = TxtX.Text + Format(x(i), "0.0 ")
Next i
End Sub
Private Sub CmdVvod_Click()‘ввод массива
‘изменение свойств
‘кнопка Проверка ввода и Вычислить
CmdTest.Enabled = True
CmdWork.Enabled = True
n = Val(InputBox("Введите число", "Задание размерности массива"))
ReDim x(n)
If OpbHand.Value = True Then
For i = 1 To n
x(i) = Val(InputBox("Ввод " & i & "-го элемента", "Ввод массива"))
Next i
Else
For i = 1 To n
x(i) = Int(n * Rnd - n / 2)
Next i
End If
CmdVvod.Caption = "Массив введен!"
End Sub
Private Sub CmdWork_Click()
Dim Sum As Single, Product As Single
If ChbSum.Value = 1 Then
Sum = 0
For i = n To 1 Step -1
If x(i) > 0 Then
k = x(i)
Exit For
End If
Next i
Sum = 0
For i = 1 To n
If x(i) > k Then
Sum = Sum + x(i)
End If
Next i
LblSum.Text = Sum
Else
LblSum.Text = ""
End If
End Sub
Private Sub CmdReset_Click()
CmdTest.Enabled = False
CmdWork.Enabled = False
CmdVvod.Caption = "Ввести массив..."
CmdVvod.SetFocus
TxtX.Text = ""
LblSum.Text = ""
Sum = 0
For i = 1 To n
x(i) = 0
Next i
End Sub
Теория, краткое описания команд:
Описание массивов
Dim имя (индекс1[,индекс2]) [As тип], …
где имя - имя массива, удовлетворяющее стандартным правилам именования переменных;
ReDim имя (индекс1[,индекс2])
Оператор Option Baseприменяется для задания нижней границы индексов массива
Option Base {0 | 1}
Оператор цикла For Each...Nextповторяет выполнение блока операторов для каждого элемента массива или семейства.
For Each элемент In группа
Блок операторов
[Exit For]
Next [элемент]
При работе с массивами данных возникает необходимость использования вложенных циклов (один цикл For...Next или Do…Loop или For...Each...Next располагается внутри другого):
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
Скриншоты:
Задание 5
Создание программ обработки многомерных массивов и использование процедур.
Задание: Найти первое кратное «3» число и заменить на его первый элемент
Программный код:
Dim n As Integer, m As Integer
Dim a() As Single
Public Sub vivod_Msg()
'Вывод массива в окно сообщения
For i = 1 To n
For j = 1 To m
st$ = st$ & Format(a(i, j), "##") & " "
Next j
st$ = st$ & Chr(13)
Next i
MsgBox "Массив" & Chr(13) & " " & st$
End Sub