
- •Задания по информатике
- •1. Постановка задачи. Последовательность программирования
- •2. Создание элементов управления
- •3. Установка свойств объектов
- •4. Составление программного кода
- •Private Sub cmdСложение_Click
- •З адание № 4. Программирование вычислительных задач разветвляющейся структуры
- •Задание № 6. Одномерные массивы
- •1 . Постановка задачи 3. Алгоритм задачи
- •2. Анализ задачи
- •4. Разработка пользовательского интерфейса
- •5. Написание программного кода
- •З адание № 8. Процедуры-подпрограммы Sub и процедуры-функции Function
- •Задание № 9. Процедура-подпрограмма Сортировки Sub с использованием рамки Frame и переключателей OptionButton
Задание № 9. Процедура-подпрограмма Сортировки Sub с использованием рамки Frame и переключателей OptionButton
Постановка задачи
Разработать программу Сортировки Sub с предварительным выбора типа сортировки.
Для процедуры сортировки Sub Sort() сделать блок-схему алгоритма.
Разработка интерфейса
По сравнению с обычным интерфейсом добавить на форму два новых элемента управления: Frame1, OptionButton1 и OptionButton2
Объект |
Свойство |
Установленное значение |
Frame1 |
Caption |
Тип сортировки: |
OptionButton1 |
Имя |
optVos |
|
Value |
True |
|
Caption |
по возрастанию |
OptionButton2 |
Имя |
optUbi |
|
Caption |
по убыванию |
|
|
|
Написание программного кода
Основная программа:
Private Sub cmdSort_Click()
Dim i As Integer, N As Integer, optB1 As Boolean
Dim A() As Single, rez As String
' переменной N присваиваем значение размерности массива, введенное
' в текстовое поле txtN:
N = Val(txtN.Text)
ReDim A(N) As Single ' переобъявляем массив A(), т. к. известен его размер N
txtRez = "": rez = "" ' чистим поле txtRez и переменную rez
' в переменной rez формируем вывод данных:
rez = rez & " ИСХОДНЫЙ МАССИВ:" & vbCrLf & vbCrLf
For i = 1 To N ' начала цикла для ввода элементов массива А(i)
A(i) = Int(Rnd * 100) + 1 ‘ генерируем случайные числа в диапазоне 1 до 100
' с помощью функции InputBox() - окна ввода:
' A(i) = InputBox("Введите элемент A(" & i & ")", "Ввод массива A(" & N & ")")
rez = rez & "A(" & i & ")= " & A(i) & Space(4)
Next i ' конец цикла по i
rez = rez & vbCrLf & vbCrLf
txtRez = rez ' вывод исходных данных
If optVoz Then optB1 = True Else optB1 = False ‘ optB1 принимает True, если выбран
‘ переключатель optVoz – по возрастанию
Sort A(), optB1 ‘ обращение к процедуре Sort()
rez = rez & "МАССИВ ПОСЛЕ СОРТИРОВКИ:" & vbCrLf & vbCrLf
For i = 1 To N
rez = rez & A(i) & " " ‘ запоминаем отсортированный массив
Next i
txtRez = rez ' вывод результатов расчетов
End Sub
Программа процедуры Сортировки
Выполните команду Insert ► Procedure. В диалоговом окне Add Procedure отметьте Sub, задайте Name (Имя) Sort и для этой процедуры напишите следующий код (начните с перечисления формальных параметров в скобках с заданием их типов за именем процедуры!):
Public Sub Sort(B() As Single, opt1 As Boolean)
Dim i As Integer, boo As Boolean, N As Integer
N = UBound(B) – 1 ‘ функция UBound() по имени массива определяет количество
‘ элементов в массиве (bound – граница, предел)
Do
boo = True
For i = 1 To N ' по возрастанию /убыванию
If opt1 = True Then
If B(i) > B(i + 1) Then S = B(i + 1): B(i + 1) = B(i): B(i) = S: boo = False
Else
If B(i) < B(i + 1) Then S = B(i + 1): B(i + 1) = B(i): B(i) = S: boo = False
End If
Next i
N = N - 1
Loop Until boo
End Sub