1 семестр. Заключение. Лекция 7
Вспоминаем! n n Впервые термин “Структурное программирование” ввел Э. Дейкстра. Он рассматривал программу как совокупность иерархических абстрактных уровней, которые позволяли четко структурировать программу, выполнять доказательства при ее корректировке, а значит, и повышать надежность функционирования программы, и сокращать сроки ее разработки МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Структурное программирование Основная идея структурного программирования состоит в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм программы был ясно виден из исходного текста. n Для этого используются подпрограммы. n МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Подпрограммы n n n Подпрограммы – набор операторов, выполняющих нужное действие и не зависящих от других частей исходного кода. Подпрограммы могут быть двух видов: подпрограммы-процедуры и подпрограммыфункции Программирование с использованием подпрограмм позволяет вести разработку приложения сверху вниз и называется нисходящим программированием. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Нисходящее программирование n Суть такого программирования состоит в следующем: q q сначала выделяются несколько подпрограмм, решающих глобальные задачи, потом каждый из этих модулей разбивается на небольшое число других подпрограмм. И так происходит до тех пор, пока вся задача не окажется реализованной. Достоинство структурированного подхода в том, что небольшие программы легче отлаживать, программа становится более надежной и подпрограммы можно использовать повторно. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Структурированные и неструктурированные алгоритмы n n Структурированными считаются алгоритмы и программы, составленные с использованием только трех типов алгоритмов: линейных, условных, циклических алгоритмов, при этом для записи циклов и условий должна использоваться ступенчатая запись. Алгоритм считается неструктурированным, если нет ступенчатой записи или если при создании программы использован оператор переход к метке. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Подпрограмма – процедура или подпрограмма – функция это отдельный блок операторов, начинающийся с заголовка и заканчивающийся признаком конца процедуры или функции. Чтобы подпрограмма имела смысл ей надо получить какие-то значения, которые называются параметрами. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Параметры n n n Параметры, которые принимаются в подпрограмме, описываются в заголовке подпрограммы и называются формальными. Обращение из главной программы к процедуре осуществляется по имени подпрограммы-процедуры с перечнем в скобках параметров, которые ей передаются. Эти параметры называются фактическими параметрами. При выполнении процедуры или функции формальные параметры временно заменяются на фактические. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Основные принципы структурного подхода n n n Принцип абстракции позволяет рассматривать программу по уровням. Верхний уровень показывает детали реализации (например, восходящее и нисходящие стратегии программирования). Разделение программы на отдельные фрагменты (методы), которые просты по управлению и допускают независимую откладку и тестирование Строгий методический подход (принцип формальности) позволяет изучать программы (алгоритмы) как математические объекты, ускорить принятия решений, избежать ошибок. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Структурный подход включает в себя три основные составные части: Ø Ø Ø Нисходящее проектирование; Структурное программирование; Сквозной структурный контроль. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Требования к модулям при нисходящем проектировании Для управления процессом создания программ прибегают к делению большой программы на модули. Этот процесс называется нисходящим проектированием. Делить программу на модули необходимо, учитывая следующие свойства (или требования) модулей: Ø Возможность обособления модуля в исходном и объектном кодах Ø Наличие имени у модуля и возможность вызова по имени Ø Модуль должен иметь один вход и один выход Ø Модуль должен возвращать управление в ту точку, откуда был вызван Ø Модуль должен иметь возможность вызывать другие модули Ø Внутренний текст модуля должен быть структурирован Ø Модуль должен быть обозрим в исходном тексте Ø Модуль должен иметь минимальную возможность обмена информацией с другими модулями МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Спецификация программы Спецификация модуля включает в себя: Проектирование: Ø Описание функции модуля Ø Описание интерфейса модуля с другими модулями, т. е. описание тех данных, которыми модуль обменивается с другими модулями при вызовах Ø Разработка руководства по модулю для пользователя и утверждение с пользователем МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Планирование: Ø Распределение работы между группой исполнителей Ø Определение очередности реализации Ø Определение способа откладки и способа проверки достоверности результатов Ø Проработка тестовых заданий, которые проверяют работу программы. Они должны быть продуманы и разработаны до начала написания работы Этап реализации: Ø Написание модуля Ø Откладка Ø Документирование (в соответствии с ЕСПД – единой системой проектной документации) Ø Сдача МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Метод пошаговой детализации Метод пошаговой детализации – еще одно средство создания структурированных алгоритмов. Сущность метода – проектирование алгоритма разбивается на ряд последовательных шагов. На первом шаге задача рассматривается обобщенно, и описывает полный алгоритм ее решения т. о, что бы он представлял простую структуру или элементарную комбинацию простых структур. На втором шаге необходимо просмотреть алгоритм, и те действия, которые недостаточно детализированы, д. б. уточнены т. о, чтобы эти уточнения также представляли собой простую структуру или элементарную комбинацию простых структур. На третьем и последующих шагах происходит повторение второго шага для тех действий, которые содержатся в предыдущих уточнениях. Процесс заканчивается тогда, когда все действия оказываются элементарными для программирования. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Правила пошаговой детализации n n n Не следует спешить сразу дробить задачу на мелкие детали. На каждом шаге нужно делать небольшие уточнения По мере детализации нужно внимательно следить за данными (можно составить таблицу идентификаторов). Следует избегать использования одинаковых имен в разных смыслах Надо быть готовым вернуться назад и отказаться от какой-то детализации, которая ведет в тупик МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Вопросы для самоконтроля 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Какие составные части включает в себя структурный подход? Кто впервые ввел понятие“Структурное программирование”? Что такое метод пошаговой детализации? Основные принципы структурного подхода Основные правила пошаговой детализации Что включает в себя Спецификация модуля? Что включает в себя этап реализации? Цели структурного программирования Свойство модулей Что такое нисходящее проектирование? Что включает в себя проектирование? МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Реализация циклов в Паскале МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Цикл for (цикл с параметром) n n n Цикл FOR называют циклом с параметром или со счетчиком Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т. е. количество повторений может быть вычислено заранее (хотя оно не вычисляется). В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменнойсчетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Реализация цикла Цикл for существует в двух формах: for счетчик: =значение to конечное_значение do тело_цикла; n for счетчик: =значение downto конечное_значение do тело_цикла; n Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Цикл while n Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет. var i, n: integer; begin write ('Количество знаков: '); readln (n); i : = 1; while i <= n do begin write ('(*) '); i : = i + 1 end; end. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Цикл while. Примечание. n При использовании цикла с предусловием надо помнить следующее: q q q значение условия выполнения цикла должно быть определено до начала цикла; если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла; хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз. МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.
Цикл repeat n n n Цикл repeat – это цикл с пост-условием В цикле repeat логическое выражение стоит после тела цикла. Здесь в случае true происходит выход из цикла, в случае false – его повторение. repeat write (‘введите значение (0. . 9): ’); readln (I); until (I >=0) and (I <=9); МГТУ “СТАНКИН”/Кафедра ИС/Васильева А. К.


