- •Введение в программирование и основы алгоритмизации
- •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.2. Изобразительные средства описания алгоритмов
К ним относятся следующие способы: 1) словесный - запись на естественном языке, 2) структурно-стилизованный - запись на языке псевдокода, 3) программный - текст на языках программирования, 4) Графический - схемы графических символов.
1. Словесный способ записи алгоритмов это описание последовательных этапов обработки данных, реализуется в произвольном изложении на естественном языке с использованием общепринятых средств общения между людьми. Для исполнения такие описания неприемлемы, поскольку не формализованы, страдают многословностью и допускают неоднозначность толкования предписаний. Способ не имеет распространения.
Пример. Записать алгоритм Евклида на естественном языке.
Если числа равны, то взять любое из них в качестве ответа, в противном случае - продолжить выполнение алгоритма.
Определить число наибольшее из двух.
Заменить большее число разностью большего и меньшего чисел.
Повторить алгоритм с начала.
2. Структурно-стилизованный способ записи алгоритмов основан на формализованном представлении предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций. Такие средства описания алгоритмов называются псевдокодами. Разновидностью этого способа является алгоритмический язык в русской нотации (АЯРН).
П ример. Описать на АЯРН алгоритм решения задачи о принадлежности точки D треугольнику АВС.
алг Определение принадлежности точки треугольнику (действ Хa, Ya, Хb, Yb, Хс, Yс, Хd, Yd целое z лит а);
арг Хa, Ya, Хb, Yb, Хс, Yс. Хd, Yd;
рез z, a;
нач
действ S1, S2, S3, S4
вычислить значение S1, равное площади тр-ка АВС;
вычислить значение S2, равное площади тр-ка ABD;
вычислить значение S3, равное площади тр-ка ACD;
вычислить значение S4, равное площади тр-ка СDВ;
если S1 = S2+S3+S4
то z := 1, а := "точка внутри треугольника"
иначе z := 0, а := "точка вне треугольника"
все
напечатать значение а:
кон
3. Программный способ записи - это алгоритм, записанный на языке программирования, позволяющий на основе строго определенных правил формировать последовательность предписаний, однозначно отражающих смысл и содержание алгоритма с целью его последующего исполнения на ЭВМ.
Пример. Составить программу перевода температуры из градусов Цельсия в градусы Форенгейта на языке Бейсик.
PRINT "Перевод температуры из град. Цельсия в град. Форенгейта"
6 PRINT "Укажите температуру в град. Цельсия"
INPUT С
IF С = 99999 THEN 7
F=C*1.8+32
PRINT С, F
GOTO 6
7 END
3 . Для графического изображения алгоритмов используются графические символы. Наиболее распространенными являются блочные символы (блоки), соединяемые линиями передач управления. Графическая запись алгоритма является наиболее наглядной (рис. справа). Схемы могут быть представлены также в виде структограмм или по имени их авторов, диаграммами Нэсси – Шнейдермана (рис. слева).
5.3. Блок-схемы алгоритмов. Графические символы
Блок-схема – это ориентированный граф, вершины которого могут быть одного из трех типов.
Функциональная вершина представляет функцию f: XY. Предикатная вершина представляет функцию-предикат p: X(T, F). Иначе логическое выражение, передающее управление по одной из двух ветвей. Объединяющая вершина представляет передачу управления от одной из двух входящих ветвей к одной выходящей ветви.
Ф ункциональная вершина или вычислительный блок (рис. справа) представляет собой прямоугольник, в который вписываются расчетные формулы. Формула записывается таким образом, что вычисляемая переменная стоит слева, затем следует знак равенства (знак присваивания), далее - выражение.
П редикатная вершина изображается ромбом (рис. слева), внутри которого записывается проверяемое условие. В результате проверки выбирается один из двух путей вычислительного процесса. Если условие выполняется (ДА, +, 1), то следующим выполняется этап по стрелке ДА. Если условие не выполняется (НЕТ, -, 0), то - этап по стрелке НЕТ.
О бъединяющая вершина изображается кружком или подразумевается в точке схода ветвей. Начало и окончание вычислительного процесса или алгоритма изображаются овалом (рис. справа), в котором записываются слова Начало, Останов или Конец.
П ри решении задач на ЭВМ исходные данные задаются разными способами, например, с клавиатуры, перфоленты, диска и т. д. Задание их численных значений называется вводом, а фиксация результатов расчета - выводом. Ввод исходных данных и вывод результатов, не привязанный к конкретному устройству, изображается параллелограммом. Внутри него пишется слово Ввод или Вывод, и перечисляются переменные (рис. справа). Для ввода/вывода на конкретные устройства используются специальные фигуры.
Линии потока показывают направление передачи управления между блоками. Направление линий потока сверху вниз и слева направо принимают за основное. Если линии потока основного направления не имеют изломов, то их направление стрелками можно не обозначать. В остальных случаях направление обозначают стрелкой.