- •Введение
- •1 Цели и задачи дисциплины
- •2 Методы и технологии разработки алгоритмов и программ
- •2.1 Сущность структурного программирования
- •2.1.1 Базовые управляющие структуры
- •2.1.2 Дополнительные управляющие структуры
- •2.2 Сущность процедурного программирования
- •2.3 Сущность модульного программирования
- •2.4 Сущность объектно-ориентированного программирования
- •3 Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Работа с файлами в интегрированной среде программирования
- •Лабораторная работа №2 Отладка и тестирование программы
- •Текст программы
- •Лабораторная работа №3 Поразрядные логические операции
- •Варианты индивидуальных заданий
- •Пример решения для варианта задания вида:
- •Пример программы
- •Лабораторная работа №4 Поиск экстремума
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текста программы определения экстремума для варианта задания вида:
- •Пример программы
- •Лабораторная работа №5 Определение принадлежности точки выделенным областям на плоскости
- •Варианты индивидуальных заданий
- •Пример схемы алгоритма и текст программы определения местоположения точки на плоскости для варианта задания вида:
- •Текст программы
- •Лабораторная работа №6 Многовариантные вычисления по ключу
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №7 Циклические вычисления на заданное число повторений.
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №8 Циклические вычисления с заданной точностью
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Обработка одномерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №10 Обработка двумерных массивов
- •Варианты индивидуальных заданий
- •Пример программы
- •4 Методические указания к выполнению контрольных работ
- •Контрольная работа №1 Преобразование чисел из одной системы счисления в другие
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Контрольная работа №2 Арифметические операции в двоичной, восьмеричной и шестнадцатеричной системах счисления
- •Варианты индивидуальных заданий
- •Пример выполнения задания
- •Библиографический список
2 Методы и технологии разработки алгоритмов и программ
Основной целью программирования является построение надёжной легко читаемой и модифицируемой программы, решающей поставленную задачу. Для этого у программы должна быть наиболее простая структура. Хотя решаемые задачи имеют различную сложность, выбор варианта их решения в большинстве случаев должен определяться простотой понимания этого решения. Поэтому для того чтобы стать профессионалом, необходим опыт и знание основных принципов, выработанных программистами за время существования программирования.
Рассмотрим основные методы и технологии разработки алгоритмов и программ.
Структурное программирование – метод создания достаточно простых, понятных и легко читаемых программ, в которых используются только стандартные управляющие структуры.
Процедурное программирование – метод построения программы как совокупности её функциональных частей - процедур или функций. Каждая процедура или функция представляет собой функционально законченную последовательность действий и выполняется как единая операция.
Модульное программирование – организация программы в виде совокупности независимых частей – модулей, со строгим порядком их взаимодействия. В модулях группируются процедуры и функции по их назначению. Модули разрабатываются и транслируются отдельно.
Объектно-ориентированное программирование – метод программирования, основанный на использовании в программе совокупности объектов, каждый из которых содержит некоторые данные и методы их обработки. Объекты связываются между собой по принципу наследования.
Перечисленные методы реализуют одну из возможных технологий современного программирования: нисходящую или восходящую.
Нисходящее проектирование - технология разработки программ, при которой на каждом шаге проектирования задача разбивается на более мелкие подзадачи так, что в любой момент разработки имеется действующий вариант программы в терминах выделенных подзадач.
Восходящее проектирование – технология разработки программ, при которой сначала проектируются и отлаживаются подпрограммы для выполнения простых операций, после чего они связываются в единую программу.
2.1 Сущность структурного программирования
Структурное программирование представляет собой метод, реализующий нисходящую технологию проектирования программ.
Структурное программирование предполагает:
- разбиение задачи на взаимодействующие более простые подзадачи;
- составление программы последовательными уточняющими шагами сверху вниз;
- использование в программе только стандартных управляющих структур.
Иногда этот метод называют «программированием без goto» (без использования оператора безусловного перехода). Однако никакие принципы нельзя возводить в абсолют. Поэтому иногда использование оператора goto оправдано и приводит к упрощению алгоритма.
Стандартные управляющие структуры делятся на две группы: базовые и дополнительные.
2.1.1 Базовые управляющие структуры
В теории программирования доказано, что любой алгоритм любой сложности может быть представлен как совокупность трёх структур, которые называются базовыми. Это следование, ветвление и цикл с предусловием. Каждая из них имеет один вход и один выход, поэтому они могут вкладываться друг в друга произвольным образом. Программа, составленная из базовых конструкций, легко читаема, её легко отлаживать и изменять.
Управляющая структура Следование предполагает последовательное выполнение заданных действий в вычислительном процессе и представляет собой алгоритмическую структуру вида:
Вход
оператор_1
оператор_2
Выход
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
…
оператор_1;
оператор_2;
…
При этом оператор_1 и оператор_2 – любые операторы языка.
Управляющая структура Ветвление предполагает выбор одного из двух направлений выполнения действий в вычислительном процессе в зависимости от выполнения или невыполнения заданного условия и представляет собой алгоритмическую структуру вида:
Вход
условие
да нет
оператор_1
оператор_2
Выход
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
If условие
Then оператор_1
Else оператор_2;
При этом условие – это выражение логического типа, оператор_1 и оператор_2 – любые операторы языка, в том числе и новые условные операторы.
Если результат вычисление логического выражения (условия) истина (да), то выполняется оператор_1, если результат ложь (нет), то выполняется оператор_2.
Управляющая структура Цикл с предусловием предполагает многократное выполнение некоторого действия при сохранении начальной истинности заданного условия и представляет собой алгоритмическую структуру вида:
Вход
условие
нет
да
оператор
Выход
Реализация этой управляющей структуры на языке Турбо Паскаль имеет вид:
While условие
Do оператор;
При этом условие – это выражение логического типа, а оператор – любой оператор языка, который в данном случае называется оператором тела цикла.
При входе в оператор цикла вычисляется результат логического выражения (условия). Если результат истина (да), то выполняется оператор тела цикла и опять вычисляется результат условия. Таким образом, пока результат условия истина эти действия повторяются.
Если при входе в оператор цикла результат условия сразу принимает значение ложь (нет), то оператор тела цикла не выполняется ни разу.
Если тело цикла по схеме алгоритма включает в себя несколько операторов, то используются операторные скобки.
Во избежание зацикливания - бесконечного исполнения оператора тела цикла - его исполнение должно влиять на результат условия.
