- •Введение в программирование и основы алгоритмизации
- •1.2. Понятие "правильной" программы
- •1.3. Надежность программного средства
- •1.4. Технология программирования как разработка надежных пс
- •1.5. Информатизация общества
- •Тема 2 источники ошибок в программных средствах
- •2.1. Интеллектуальные возможности человека
- •2.2. Неправильный перевод как причина ошибок в пс
- •2.3. Модель перевода
- •На каждом из этих шагов человек может совершить ошибку разной природы.
- •2.4. Основные пути борьбы с ошибками
- •Тема 3 общие принципы разработки программных средств
- •3.1. Специфика разработки пс
- •3.2. Жизненный цикл пс
- •3.3. Понятие качества пс
- •3.4. Внешнего описания и его роль в обеспечении качества пс
- •3.5. Обеспечение надежности – основной мотив разработки пс
- •3.5. Борьба со сложностью систем и обеспечение точности перевода
- •Тема 4 разработка структуры программы. Модульное и объектно-ориентированное программирование
- •4.1. Цель модульного программирования
- •4.2. Основные характеристики программного модуля
- •4.3. Методы разработки структуры программы
- •4.4. Объектно-ориентированное программирование
- •4.5. События и событийная модель
- •Тема 5 Алгоритмизация и разработка программного модуля
- •5.1. Определение алгоритма
- •Алгоритмизация - техника составления алгоритмов и программ для решения задач на эвм.
- •5.2. Изобразительные средства описания алгоритмов
- •5.3. Блок-схемы алгоритмов. Графические символы
- •5.4. Порядок разработки программного модуля
- •5.5. Структурное программирование
- •5.6. Пошаговая детализация и понятие о псевдокоде
- •Тема 6 тестирование и отладка программного средства
- •6.1. Основные понятия
- •6.2. Принципы и виды отладки пс
- •6.3. Заповеди отладки пс
- •6.4. Автономная отладка пс
- •Тема 7 Методы разработки алгоритмов
- •7.1. Метод частных целей
- •7.2. Метод подъема
- •7.3. Программирование с отходом назад
- •Тема 8 Алгоритмы сортировки
- •8.1. Сортировка. Основные понятия
- •8.2. Пузырьковая сортировка
- •8.3. Сортировка с помощью дерева
- •8.4. Пирамидальная сортировка
- •8.5. Быстрая сортировка
- •Тема 9 Алгоритмы поиска и перебора
- •9.1. Поиск. Основные понятия
- •9.2. Бинарный поиск
- •9.3. Поиск в сети
- •Тема 10 Событийно-управляемое программирование на языке Visual Basic
- •10.1. Историческая справка
- •10.2. Основы Visual Basic
- •Среда Windows: окна, события, сообщения
- •Интерактивная разработка
- •Интегрированная среда разработки
- •10.3. Формы и элементы управления
- •Разработка и установка свойств формы
- •События и методы формы
- •Кнопки управления как основа выполнения действий
- •10.4. Элементы управления пользователя
- •Флажки и переключатели
- •Другие стандартные элементы управления
- •10.5. Фокус. Последовательность переходов. Меню Фокус
- •Основы меню
- •Контекстные меню
- •Редактор меню
- •Подсказки пользователю с помощью диалога
- •Тема 11 Управление проектами
- •11.1. Работа с проектом и его структура
- •11.2. Работа с несколькими проектами
- •11.4. Установка параметров проекта
- •11.5. Дополнения и мастера
- •Тема 12 Управляющие конструкции
- •12.1. Конструкции принятия решения (ветвление)
- •12.2. Циклы
- •12.3. Работа со структурами управления и досрочный выход из них
- •Тема 13 Структура приложения. Техника написания кода
- •13.1. Структура приложения
- •13.2. Как работает событийное приложение
- •13.3. До начала кодирования
- •13.4. Техника написания кода
- •13.5. Автоматизация написания программы
Тема 8 Алгоритмы сортировки
8.1. Сортировка. Основные понятия
Пусть задан -файл, состоящий из записей . Припишем каждой записи ключ . Ключ – какое-либо отдельное поле или комбинация полей записи. Часто запись целиком составляет поле ключа. Будем считать, что на множестве ключей задано отношение линейного порядка или следования с обычными свойствами, т.е. элементы этого множества можно выстроить в порядке не убывания (не возрастания). Задача сортировки файла ставится так.
Найти такую перестановку записей -файла, чтобы в -файле для записей их ключи располагались в неубывающем порядке: .
Для получения -файла из -файла в общем случае требуется физическое перемещение записей в памяти компьютера. Однако во многих случаях реальная перестановка не требуется. Достаточно описать ее некоторым способом так, чтобы обеспечить непосредственный доступ к записям в соответствии следованию их ключей. Сделать это можно посредством адресного кодирования или адресной перестановки, в которой сортируются индексы (адреса) элементов-записей, а не сами записи. Правда в этом случае под адреса требуется дополнительная память. Часто адресное кодирование применяется в качестве первого этапа для обычной сортировки.
№ |
Ф. И. О. |
Курс |
Предмет |
Тип задолженности |
1 2 3 4 5 6 7 |
Щукина Э. Паниковский М.С. Бендер О.И. Синицкая З.В. Воробьянинов И.М Востриков Ф Изнуренков А.В. |
2Д 1Б 3А 1Е 4В 1В 5Г |
Алгебра Физика Физика Геометрия Алгебра Физика Алгебра |
Зачет Экзамен Зачет Экзамен Экзамен Зачет Зачет |
Различают внутреннюю сортировку данных в памяти компьютера и внешнюю сортировку данных, расположенных на диске. При внутренней сортировке стремятся уменьшить число сравнений ключей и перемещений записей, а при внешней сортировке – количество обращений к диску. В дальнейшем будем ориентироваться на внутреннюю сортировку числовых и символьных одномерных массивов. Записями и ключами таких файлов-массивов будем считать значения их элементов.
Пример 2. Отсортировать числовой массив: 7,2 3 8 4 8 5,14 9 1.
О
Адресная сортировка: 7,2 3 8 4 8 5,14 9 1
5 2 6 3 7 4 8 1
8.2. Пузырьковая сортировка
Среди большого числа сортировок наиболее популярна пузырьковая сортировка. Ее название происходит от образной интерпретации всплывания более легких элементов (пузырьков) на поверхность.
Пусть S числовой массив . Говорят, что элементы и из S образуют инверсию, если i < j и .
А
Dim A() As
Integer: Const n As Integer = 20
Sub
Пузырьковая_сортировка
()
Dim i As
Integer, j As Integer, m As Integer, var As String
ReDim A (1
To n): var = "Исходные:"
For i = 1
To n: A(i) = Int(Rnd(Time)*100): var = var & " " &
Str(A (i)): Next i: MsgBox var
For i = 2
To n: For j = n To i Step -1
If A(j-1)
> A(j) Then
m =
A(j-1): A(j-1) = A(j): A(j) = m
End If
Next j:
Next i
var =
"Отсортированные:":For
i = 1 To n: var = var & " " & Str(A (i)): Next i:
MsgBox var
End Sub
Пузырьковая сортировка не требует дополнительной памяти, однако из-за плохих временных характеристик она имеет лишь исторический интерес. Практический интерес представляют две наиболее эффективных сортировки Пирамидальная и Быстрая.