- •Министерство образования и науки российской федерации
- •Введение
- •1 Распределение фонда учебного времени по семестрам и видам занятий, формы контроля
- •2 Цели и задачи дисциплины
- •3 Содержание дисциплины
- •Тема 1.4 Инструментальные средства разработки программ
- •Раздел 2 Применение структурного программирования для обработки информации
- •Тема 2.1 Разработка линейных программ
- •Тема 2.2 Разработка разветвляющихся программ
- •Тема 3.2 Рекурсия
- •Раздел 5 Объектно-ориентированное программирование
- •Тема 5.1 Объекты
- •Тема 5.2 Статические и динамические объекты
- •4 Методы и технологии разработки алгоритмов и программ
- •4.1 Сущность структурного программирования
- •4.1.1 Базовые управляющие структуры
- •4.1.2 Дополнительные управляющие структуры
- •4.2 Сущность процедурного программирования
- •4.3 Сущность модульного программирования
- •4.4 Сущность объектно-ориентированного программирования
- •5 Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Работа с файлами в интегрированной среде программирования
- •Лабораторная работа №2 Отладка и тестирование программы
- •Текст программы
- •Лабораторная работа №3 Управляющая структура «Следование»
- •Варианты индивидуальных заданий
- •Лабораторная работа №4 Поиск экстремума
- •Варианты индивидуальных заданий
- •Лабораторная работа №5 Управляющая структура «Развилка»
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текст программы определения местоположения точки для варианта задания вида:
- •Текст программы
- •Лабораторная работа №6 Управляющая структура «Выбор варианта»
- •Варианты индивидуальных заданий
- •Лабораторная работа №7 Управляющая структура «Циклы»
- •Варианты индивидуальных заданий
- •Лабораторная работа №8 Рекуррентные вычисления
- •Варианты индивидуальных заданий
- •Лабораторная работа №9 Суммирование рядов
- •Варианты индивидуальных заданий
- •Лабораторная работа №10 Обработка одномерных массивов
- •Варианты индивидуальных заданий
- •Лабораторная работа №11 Обработка двумерных массивов
- •Варианты индивидуальных заданий
- •Лабораторная работа №12 Методы сортировки
- •Варианты индивидуальных заданий
- •Лабораторная работа №13 Текстовые файлы
- •Варианты индивидуальных заданий
- •Лабораторная работа №14 Типизированные файлы
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №15 Линейные списки
- •Варианты индивидуальных заданий
- •Лабораторная работа №16 Динамические структуры данных: стек, дек, очередь
- •Варианты индивидуальных заданий
- •Лабораторная работа №17 Статические и динамические объекты
- •Варианты индивидуальных заданий
- •Основная литература
- •Дополнительная литература
4 Методы и технологии разработки алгоритмов и программ
Основной целью программирования является построение надёжной легко читаемой и модифицируемой программы, решающей поставленную задачу. Для этого программа должна иметь возможно более простую структуру. Хотя решаемые задачи имеют различную сложность, выбор варианта их решения в большинстве случаев должен определяться простотой понимания этого решения. Поэтому для того чтобы стать профессионалом, необходим опыт и знание основных принципов, выработанных программистами за время существования программирования.
Рассмотрим основные методы и технологии разработки алгоритмов и программ.
Структурное программирование– метод создания достаточно простых, понятных и легко читаемых программ, в которых используются только стандартные управляющие структуры.
Процедурное программирование– метод построения программы как совокупности её функциональных частей - процедур или функций. Каждая процедура или функция представляет собой функционально законченную последовательность действий и выполняется как единая операция.
Модульное программирование– организация программы в виде совокупности независимых частей – модулей, со строгим порядком их взаимодействия. В модулях группируются процедуры и функции по их назначению. Модули разрабатываются и транслируются отдельно.
Объектно-ориентированное программирование– метод программирования, основанный на использовании в программе совокупности объектов, каждый из которых содержит некоторые данные и методы их обработки. Объекты связываются между собой по принципу наследования.
Перечисленные методы реализуют одну из возможных технологий современного программирования: нисходящую или восходящую.
Нисходящее проектирование- технология разработки программ, при которой на каждом шаге проектирования задача разбивается на более мелкие подзадачи так, что в любой момент разработки имеется действующий вариант программы в терминах выделенных подзадач.
Восходящее проектирование– технология разработки программ, при которой сначала проектируются и отлаживаются подпрограммы для выполнения простых операций, после чего они связываются в единую программу.
4.1 Сущность структурного программирования
Структурное программированиепредставляет собой метод, реализующий нисходящую технологию проектирования программ.
Структурное программирование предполагает:
- разбиение задачи на взаимодействующие более простые подзадачи;
- составление программы последовательными уточняющими шагами сверху вниз;
- использование в программе только стандартных управляющих структур.
Иногда этот метод называют «программированием без goto» (без использования оператора безусловного перехода). Однако никакие принципы нельзя возводить в абсолют. Поэтому иногда использованиеgotoоправдано и приводит к упрощению алгоритма.
Стандартные управляющие структуры делятся на две группы: базовые и дополнительные.
4.1.1 Базовые управляющие структуры
В теории программирования доказано, что любой алгоритм любой сложности может быть представлен как совокупность трёх структур, которые называются базовыми. Этоследование,ветвлениеицикл с предусловием. Каждая из них имеет один вход и один выход, поэтому они могут вкладываться друг в друга произвольным образом. Программа, составленная из базовых конструкций, легко читаема, её легко отлаживать и изменять.
Управляющая структура Следованиепредполагает последовательное выполнение заданных действий в вычислительном процессе и представляет собой алгоритмическую структуру вида:
оператор
1
оператор
2
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
…
оператор 1;
оператор 2;
…
Управляющая структура Ветвлениепредполагает выбор одного из двух направлений выполнения действий в вычислительном процессе в зависимости от выполнения или невыполнения заданного условия и представляет собой алгоритмическую структуру вида:
да нет
оператор
1 оператор
2
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
Ifусловие
Thenоператор1
Elseоператор2;
Управляющая структура Цикл с предусловиемпредполагает многократное выполнение некоторого действия при сохранении начальной истинности заданного условия и представляет собой алгоритмическую структуру вида:
нет
да
оператор
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
Whileусловие
Doоператор;