Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция 11(7) Примеры программирования задач

.pdf
Скачиваний:
19
Добавлен:
03.06.2015
Размер:
274.22 Кб
Скачать

Программа кнопки «Ввести»

‘Переменные описаны так, что они доступны всем процедурам

модуля Формы

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