Лекция 11(7) Примеры программирования задач
.pdfПрограмма кнопки «Ввести»
‘Переменные описаны так, что они доступны всем процедурам
модуля Формы
Dim i As Byte, m As Byte, k As Byte, n As Byte Dim a(10) As Integer
Private Sub CommandButton1_Click()
i = TextBox1.Value 'Задание номера первого элемента массива А a(i) = TextBox2.Value 'ввод элементов массива А
ListBox1.AddItem a(i) 'Добавляем элемент массива А в строки Списка1
i = i + 1 'Изменяем номер элемента массива А TextBox1.Value = i 'Выводим этот номер в TextBox1
End Sub
Лекция 11 Информатика,часть2 |
11 |
Программа кнопки «Удалить»
Private Sub CommandButton2_Click()
m = ListBox1.ListCount 'Количество элементов в Списке 1
k = TextBox3.Value - 1 '№ удаляемого элемента на 1 единицу меньше, 'так как в Списке счет идет с 0 элемента
For i = k To m - 1 'Цикл сдвига элементов массива А
a(i) = a(i + 1) ' начиная с К-го вверх, т.е затирание К-го элемента Next i ‘ конец цикла
For i = 0 To m - 2 ‘ Цикл, число элементов на 1 меньше, т.к. один удален
ListBox2.AddItem a(i) ' Запись измененного массива А в Список2 Next i ‘конец цикла
End Sub
Лекция 11 Информатика,часть2 |
12 |
Программа кнопки «Добавить»
Private Sub CommandButton3_Click()
m = ListBox2.ListCount 'Количество элементов в Списке2
k = TextBox4.Value - 1 '№ добавляемого элемента на 1 единицу меньше, 'так как в Списке счет идет с 0 элемента
For i = 0 To k - 1 'Цикл записи в Список3 первых K-1 элементов массива А
ListBox3.AddItem a(i) Next i ‘ Конец цикла
ListBox3.AddItem TextBox5.Value ' Запись в Список3 значения добавляемого элемента в К-тую позицию
For i = k + 1 To m 'Цикл записи в Список3 элементов массива А c K+1 до конца
ListBox3.AddItem a(i - 1) Next i ‘Конец цикла
End Sub
Лекция 11 Информатика,часть2 |
13 |
Результат работы программы
Лекция 11 Информатика,часть2 |
14 |
Алгоритм перестановки двух элементов массива местами
•Перестановка К и L элементов
массива А размерностью М местами.
Перезапись осуществляется с использованием вспомогательной переменной Р, в которую временно помещается один из элементов массива. Например, в Р записывается К-й элемент массива, затем в К-й элемент записывается L-й, в L-й из переменной Р переписывается K-й.
•Входные данные: M, A(M), K, L.
Выходные данные: А(M) –массив c переставленными элементами. Вспомогательные данные: I , Р
P=A(K)
A(K)=A(L)
A(L)=P
Например: M=5, К=2, L=4 Массив А: 3, 2, -3, 7, 1 Тогда результат Массив А: 3, 7, -3, 2, 1
Лекция 11 Информатика,часть2 |
15 |
LabN
ListBox1
Список1
TextBox2
LabIndex
Разработка Формы
ListBox2
Список2
TextBox3
LabInfo
Имя формы fmArray
Лекция 11 Информатика,часть2 |
16 |
Действия, выполняемые данной программой
1.При запуске формы (инициализации) ввести количество элементов в массиве используя стандартное окно ввода InputBox.
2.На Форме предусмотреть:
•3 поля ввода TextBox (для ввода элементов массива и номеров переставляемых элементов K и L),
•2 списка ListBox (для исходного массива и массива с переставленными элементами),
•3 надписи label (для вывода количества элементов массива LabN, номера индекса LabIndex и сообщения «ввод завершен» LabInfo).
Лекция 11 Информатика,часть2 |
17 |
Процедура Инициализации Формы
исполняется во время загрузки формы
Private Sub UserForm_Initialize() ' инициализация формы
n = InputBox("Введите количество элементов массива", "Размер массива")
LabN = n ' Введенное количество элементов массива выводится в надпись LabN
LabInfo.Visible = False ' Надпись LabInfo назначено свойство невидимая.
End Sub
Лекция 11 Информатика,часть2 |
18 |
Процедура кнопки Ввод массива в Список1
Dim i As Integer, n As Integer, k As Integer, m As Integer
Dim A(1 To 10) As Single
Private Sub CommandButton1_Click()
i = Val(LabIndex.Caption) ' Индекс элемента массива
A(i) = TextBox1.Value 'Ввод элемента массива
ListBox1.AddItem "A(" & i & ")=" & A(i) 'Добавление его в Список1 m = ListBox1.ListCount 'Количество записей в Списке1
If i < n Then ' Если индекс массива < общего количества элементов
TextBox1.Value = " " 'Очищать поле ввода
Else ' в противном случае
LabInfo.Visible = True 'сделать видимой запись"ввод завершен"
Exit Sub End If
i = i + 1 ' Увеличить индекс на 1
LabIndex.Caption = Str(i) ' Вывести его значение в метку индекса
End Sub
Лекция 11 Информатика,часть2 |
19 |
Процедура кнопки Результат
Private Sub CommandButton2_Click() k = TextBox2.Value 'Ввод к
L = TextBox3.Value 'Ввод L
P = A(k) ' В переменную Р записывается k элемент массива A(k) = A(L) 'На место k элемента записывается L элемент
A(L) = P ' На место L элемента записывается k из переменной Р
With ListBox2
For i = 1 To m ' Измененный массив в цикле записывается
AddItem "A(" & i & ")=" & A(i) ' в Список 2
Next i End With End Sub
Лекция 11 Информатика,часть2 |
20 |