- •Visual Basic for Applications
- •1. Основы языка программирования Visual Basic 5
- •1. Основы языка программированияVisualBasic
- •1.1. Общие сведения оVisualBasic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •2. ОсновыVba
- •3. Практические задания
- •3.1. Практическое задание №1. Знакомство сVba
- •3.2. Практическое задание №2. Линейное программирование
- •3.3. Практическое занятие №3. Программирование ветвлений
- •3.4. Практическая работа №4. Программирование повторений
- •3.5. Практическая работа №5. Работа с массивами
- •3.6. Практическая работа №6. Процедуры и функции
- •3.7. Практическое занятие №7. Файлы. Последовательный доступ
- •3.8. Практическое занятие №8. Файлы с произвольным доступом
- •Задания самостоятельной работы
- •4.1. Линейное программирование
- •4.2. Программирование ветвлений
- •4.3 Программирования циклов
- •4.4. Массивы
- •4.5. Файлы
- •5. Задания для контрольной работы
- •5.1. Для студентов очной формы обучения
- •5.1.1. Линейное программирование
- •5.1.2. Программирование ветвлений
- •5.1.3. Программирование циклов
- •5.1.4. Массивы
- •5.2. Для студентов заочной формы обучения
- •Список литературы
3.6. Практическая работа №6. Процедуры и функции
Задача.
Список студентов группы отсортировать по алфавиту |
В практике программирования часто бывает необходимо выполнять одни и те же вычисления, но при различных исходных данных. Чтобы исключить посторенние одинаковых записей и сделать программу проще и понятнее, можно выделить эти повторяющиеся вычисления в самостоятельную часть программы, которая может быть использована многократна. Такая автономная часть программы, реализующая определённый алгоритм и допускающая обращение к ней из различных частей общей программы называется процедурой. Любая процедура содержит заголовок и раздел операторов. Синтаксис объявления процедуры:
ОбластьВидимости– это одно из двух ключевых слов:Public или Private. Они устанавливают к какомуклассупринадлежит процедура – к классуглобальныхили к классулокальныхпроцедур. По умолчанию процедура относится к классуPublic.
Для вызова процедуры используется следующий оператор:
Call ИмяПроцедуры (СписокПараметровВызова) |
Функция — эта процедура, возвращающая результат. Поэтому её надо применять, когда вызывающая программа должна вернуть только один результат.
Также можно использовать бесскобочнуюзапись оператора:
Для определения функции используется следующих синтаксис:
Сортировка
Сортировка — одна из наиболее активно изучаемых тем в компьютерных алгоритмах по ряду причин. Во-первых, сортировка — это задача, которая часть встречается во многих приложениях. Почти любой список данных будет нести больше смысла, если его отсортировать каким–либо образом.
Откройте приложение MS Excel.
Выполните команду СервисàМакросРедактор Visual Basicили нажмите <Alt+F11>.
Добавьте форму (команда Insert UserForm)
Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)
Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления:Label(Метка),TextBox(Текстовое поле),CommandButton(Командная кнопка),ListBox(Список).
В окне Properties(Свойства) для каждого объекта управления установить свойства, приведённые в таблице 5.
Таблица 5
Элемент управления |
Свойства |
Значения |
UserForm |
Caption |
Сортировка |
Label1 |
Caption |
В группе |
Label2 |
Name |
lblKolichestvo |
Caption |
| |
BackColor |
&H00FFFFFF& | |
BolderStyle |
1-fmBolderStyleSingle | |
Label3 |
Caption |
Не сортированный список группы |
ListBox1 |
Name |
lstNeSortSpisok |
Label4 |
Caption |
Сортированный список |
ListBox2 |
Name |
lstSortSpisok |
CommandButton1 |
Name |
cmdStart |
Caption |
Пуск |
Обменная сортировка
Простая обменная сортировка (в просторечии называемая "методом пузырька") для массива a[1], a[2], ..., a[n] работает следующим образом. Начиная с конца массива, сравниваются два соседних элемента (a[n] и a[n-1]). Если выполняется условие a[n-1] > a[n], то значения элементов меняются местами. Процесс продолжается для a[n-1] и a[n-2] и т.д., пока не будет произведено сравнение a[2] и a[1]. Понятно, что после этого на месте a[1] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются a[3] и a[2]. И так далее. На последнем шаге будут сравниваться только текущие значения a[n] и a[n-1]. Понятна аналогия с пузырьком, поскольку наименьшие элементы (самые "легкие") постепенно "всплывают" к верхней границе массива.
Блок-схема
Составим блок-схему процедуры сортировки списка группы
Примерный интерфейс программы может выглядеть так:
Код программы:
Dim Spisok() As String
Dim Kolichestvo As Integer
Private Sub cmdStart_Click()
Dim i As Integer
Call VvodSpiskaGruppy
Call SortirovkaSpiskaGruppy
For i = 1 To Kolichestvo
lstSortSpisok.AddItem Spisok(i)
Next
End Sub
Sub VvodSpiskaGruppy()
Dim i As Integer
Kolichestvo = InputBox("Введите количество студентов в группе",”Ввод числа”)
lblKolichestvo.Caption = Str(Kolichestvo)+” человек(а)”
ReDim Spisok(Kolichestvo)
For i = 1 To Kolichestvo
Spisok(i)=InputBox("Введите фамилию и инициалы "+Str(i)+" студента группы","Ввод ФИО")
lstNeSortSpisok.AddItem Spisok(i)
Next
End Sub
Sub SortirovkaSpiskaGruppy()
Dim i As Integer
Dim j As Integer
Dim Temp As String
For i = 1 To Kolichestvo–1
For j = i+1 To Kolichestvo
If Spisok(i) > Spisok(j) Then
Temp = Spisok(i) : Spisok(i) = Spisok(j) : Spisok(j) = Temp
End If
Next
Next
End Sub
Введите 10 фамилий студентов вашей группы и посмотрите как работает программа.
Сохраните файл под именем «Сортировка списка методом «пузырька»»