- •Введение в программирование и основы алгоритмизации
- •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. Автоматизация написания программы
Тема 5 Алгоритмизация и разработка программного модуля
5.1. Определение алгоритма
Термин "алгоритм" применяется широко и не только в области вычислительной техники и программирования. Происходит от имени средневекового арабского математика Абу Джафара ибн Муссы аль-Хорезми. Редакция последней части имени в европейских языках привела к образованию термина "алгорифм" или "алгоритм". Первоначально термин "алгоритм" означал операции над числами. Потом это понимание утратилось, и его стали применять только к алгоритму Евклида.
Алгоритм Евклида был предназначен для нахождения наибольшего общего делителя пары натуральных чисел (m, n).
п1. {Нахождение остатка} r:=m mod n.
п2. {Замена} m:=n; n:=r.
п3. {Остановка?} Если n0, то переход к п1.
п4. {Остановка процесса} m - искомое число.
Представленное описание алгоритма – это последовательность шагов, направленных на достижение некоторого результата (наибольшего общего делителя.).
Алгоритм – точное предписание, задающее алгоритмический процесс, который начинается с произвольного значения исходного данного из некоторой их совокупности. Процесс направлен на получение результата, полностью определенного этим данным.
Алгоритмический процесс – процесс последовательного преобразования конструктивных объектов (слов, чисел, пар слов, пар чисел, предложений и т.п.), происходящий дискретными шагами. Каждый шаг состоит в смене одного объекта другим.
Конструктивный объект - объект, над которым производится преобразование. К их числу относятся числа, буквы, слова, графы, логические выражения и т.д.
В алгоритме Евклида конструктивными объектами являются пары чисел. Смена конструктивных объектов, например, для чисел m=10, n =4 выглядит так: (10, 4) (4, 2) (2, 0).
Как правило, для заданного алгоритма можно выделить семь независимых параметров: 1) совокупность исходных данных, 2) совокупность промежуточных результатов, 3) совокупность результатов, 4) правило начала, 5) правило непосредственной переработки, 6) правило окончания, 7) правило извлечения результата. Для алгоритма Евклида эти параметры таковы.
I = {(m, n)| m n}.
P = {(m, n)| m n}.
R = {m|m > 0}.
Ввести пару чисел (m, n) таких, что m n.
(m, n) (n, m mod n).
Если в паре (m, n) n = 0, то останов.
Результатом является первое число пары (m, 0). Вывод m на устройство вывода.
Основные свойства алгоритма
Определенность - однозначность, исключающая произвольность толкования любого из предписаний и заданного порядка исполнения алгоритма.
Результативность - через определенное число шагов вычислительный процесс должен привести к выдаче результатов или сообщения о невозможности решения задачи.
Массовость - решение однотипных задач с различными исходными данными можно осуществлять по одному и тому же алгоритму, что обеспечивает создание типовых программ для решения задач при различных вариантах задания значений исходных данных.
Дискретность - вычислительный процесс, предопределенный алгоритмом, можно расчленить на отдельные этапы и элементарные операции.