МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Оси и плоскости тела человека Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Написание программного кода с использованием процедур

Тексты программного кода приведены на рис. 4.7-2.

Так как в данном примере массив должен быть доступен не одной, а нескольким событийным процедурам, то его необходимо сделать глобальным (видимым для всех процедур), поэтому он объявляется в начале программы, до описания всех процедур.

Option Strict On Option Explicit On Public Class Form1 Dim x() As Single 'Проц. ввода массива по индексу выбранного способа из ComboBox1 Sub vvod(ByRef x() As Single, ByVal index As Integer) Dim y, r As String Dim i As Integer Select Case index Case 0 'ввод с клавиатуры For i = 0 To UBound(x) r = Str(i) y = InputBox("элемент массива X(" + r + ")=", _ "Ввод значений элементов массива X()") x(i) = CSng(Val(y)) Next i Case 1 'ввод генератором случ. чисел For i = 0 To UBound(x) x(i) = Rnd(1) * 10 - 5 Next i Case 2 'ввод по формуле For i = 0 To UBound(x) x(i) = i * 5 - 15 Next i End Select End Sub 'Процедура сортировки эл-тов массива по возрастанию Public Sub sort1(ByRef x() As Single) Dim i, j As Integer, Box As Single For i = 0 To UBound(x) - 1 For j = i + 1 To UBound(x) If x(i) > x(j) Then Box = x(j) x(j) = x(i) x(i) = Box End If Next j Next i End Sub 'Процедура сортировки эл-тов массива по убыванию Public Sub sort2(ByRef x() As Single) Dim i, j, m As Integer Dim xmax As Single For i = 0 To UBound(x) - 1 xmax = x(i) : m = i For j = i + 1 To UBound(x) If x(j) > xmax Then xmax = x(j) m = j End If Next j x(m) = x(i) x(i) = xmax Next i End Sub 'Процедура вывода массива Public Sub PrintL(ByRef x() As Single, ByRef LB As ListBox) Dim i As Integer Dim y As String = "" For i = 0 To UBound(x) y = y + Format(x(i), "00.00") + Space(4) Next i If y ="" Then y = "массив пуст" LB.Items.Add(y) End Sub 'Процедура удаления отрицательных эл-тов массива Public Sub mass_udal(ByRef x() As Single) Dim j, i, n AsInteger n = UBound(x) i = 0 Do While i <= n If x(i) < 0 Then For j = i To n - 1 x(j) = x(j + 1) Next j n = n - 1 Else i = i + 1 End If Loop ReDim Preserve x(n) End Sub 'Процедура обработки события загрузки формы Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) HandlesMyBase.Load Label1.Text = "Точное" & Space(3) & "москоское" _ & Space(3) &" время" Label2.Text = CStr(DateTime.Now) End Sub 'Процедура обработки события выбора элемента из ComboBox1 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles ComboBox1.SelectedIndexChanged Dim index, n As Integer index = ComboBox1.SelectedIndex 'индексвыбр-гоэл-та ListBox1.Items.Clear() ListBox2.Items.Clear() n = CInt(TextBox1.Text) 'кол-во эл-тов массива ReDim x(n) vvod(x, index) 'ввод массива в зависимости от индекса выбора PrintL(x, ListBox1) 'вывод исходного массива End Sub 'Процедура обработки события выбора элемента из ComboBox2 Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles ComboBox2.SelectedIndexChanged Dim ind As Integer ind = ComboBox2.SelectedIndex ListBox2.Items.Clear() Select Caseind Case 0 sort1(x) 'вызов проц. сортировки массива по возр. Case 1 sort2(x) 'вызов проц. сортировки массива по убыв. Case 2 mass_udal(x) 'вызов проц.удаления отриц. эл-тов End Select PrintL(x, ListBox2) 'вызов проц.вывода результ. массива End Sub Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End End Sub End Class

Рис. 4.7-2

 

5. Выполнения приложения и получение результатов

Результаты работы программы представлены на рис. 4.7-3 и рис. 4.7-4.

Рис. 4.7-3

 

Рис. 4.7-4

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.