Создание программ обработки одномерных массивов

Задание: В одномерном числовом массиве вычислить сумму элементов, значение которых меньше значения последнего положительного элемента

Программный код:

 

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



php"; ?>