Модули.ppt
- Количество слайдов: 15
МОДУЛИ В СРЕДЕ ПРОГРАММИРОВАНИЯ ТУРБО ПАСКАЛЬ Структурное программирование. Модули. Подключение модулей к программе. Стандартные модули.
В основе технологических принципов структурного программирования лежит утверждение о том, что логическая структура программы может быть выражена комбинацией трех базовых структур: следования, ветвления и цикла (теорема Бема-Якопини). Эти структуры можно комбинировать – путем организации их следований или путем создания суперпозиций (вложений одной структуры в другую) и полностью исключить использование операторов условного и безусловного перехода, что является важным признаком структурного программирования. Умение образовывать из базовых структур их суперпозиции в соответствии с условиями конкретной задачи – одно из важнейших в программировании. Важным компонентом структурного программирования является модульность. Модуль – это последовательность логически связанных операций, оформленных как отдельная часть программы. Использование модулей имеет следующие преимущества: 1) возможность создания программы несколькими программистами; 2) простота проектирования и последующих модификаций программы; 3) упрощение отладки программы - поиска и устранения в ней ошибок; 4) возможность использования готовых библиотек наиболее употребительных модулей.
Самым важным достижением структурного подхода к разработке алгоритмов является нисходящее проектирование программ, основанное на идее уровней абстракции, которые становятся уровнями модулей в разрабатываемой программе. На этапе проектирования строится схема иерархии, изображающая эти уровни. Схема иерархии позволяет программисту сначала сконцентрировать внимание на определении того, что надо сделать в программе, а лишь затем решать, как это надо делать. При нисходящем проектировании исходная, подлежащая решению задача разбивается на ряд подзадач. Такое разбиение называется детализацией или декомпозицией. На следующем этапе эти задачи, в свою очередь, разбиваются на более мелкие подзадачи и так далее, до уровня относительно небольших подзадач, которые требуют для решения небольших модулей в 3 -5 строк. Такой метод проектирования программ упрощает разработку программы.
ОСНОВНЫЕ ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ • Использование трех классических структур: следование, ветвление (развилка), цикл; • Суперпозиция (вложение) основных конструкций; • Модульность; • Нисходящее проектирование и детализация.
ОСНОВНЫЕ ПРИНЦИПЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ 1. Программа должна состоять из блок-программы ( «собиралки» ) и блоков, к которой блок-программа обращается. Так же пишется и всякий сложный блок. 2. Блок-программа состоит из операторов обращения к блокам и операторов перехода к операторам блок-программы. 3. Блок имеет единственный вход и единственный выход. Блок всегда возвращает управление оператору, следующему за тем, который обратился к нему. 4. Программа пишется и отлаживается сверху, т. е. начиная с блокпрограммы (то же относится к блоку, имеющему блок-программу). Вместо отсутствующих (к данному моменту) блоков пишутся заменители, имитирующие работу этих блоков. 5. Изложенные принципы можно нарушать только в случае крайней необходимости. Эти принципы облегчают создание больших программ, упрощают отладку.
Модуль в Турбо Паскале – это набор ресурсов (функций, процедур, констант, переменных, типов и т. д. ), разрабатываемых и хранимых независимо от использующих их программ. Обычно каждый модуль содержит логически связанные между собой программные ресурсы. Иными словами, модуль – библиотека функций и процедур. Структура модуля: UNIT <имя модуля>; {заголовок модуля} INTERFAСE <раздел описания> IMPLEMENTATION <раздел реализации> BEGIN <раздел инициализации> END.
В заголовке модуля вместо слова program используется UNIT, а имя модуля должно совпадать с именем дискового файла (с раширением pas), содержащего исходный текст модуля. В разделе интерфейса (interface) описываются глобальные типы, константы, переменные, процедуры и функции, к которым имеет доступ основная программа. Такие объекты называются видимыми вне модуля. В разделе реализации (Implementation) реализуются все подпрограммы, которые были ранее объявлены. Кроме того, здесь могут содержаться свои константы, переменные, типы, подпрограммы и т. д. , которые носят вспомогательный характер и используются для написания основных подпрограмм. В отличие от ресурсов, объявленных в разделе Interface, все, что дополнительно объявляется в Implementation, уже не будет доступно при подключении модуля. Раздел инициализации (который часто отсутствует) содержит операторы, которые должны быть выполнены сразу же после запуска программы, использующей модуль.
Если в программе, использующей модуль, имеются идентификаторы, совпадающие с точностью до символа с идентификаторами модуля, то они «закрывают» соответствующие ресурсы модуля. В такой ситуации доступ к этим ресурсам модуля может быть получен уточнением именем модуля: <имя модуля>. <имя ресурса>. Модули необходимы для построения библиотек подпрограмм и для создания программ большого размера.
Различают стандартные модули и модули пользователя. Основные стандартные модули языка: SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, GRAPH 3, TURBO 3. Все они имеют расширение tpu (turbo pascal unit). Модули GRAPH, TURBO 3, GRAPH 3 выделены в отдельные tpu-файлы, остальные включается в библиотеку с именем Turbo. tpl (turbo pascal library).
Главный модуль SYSTEM подключается по умолчанию и всегда должен быть в составе файла Turbo. tpl. Остальные подключаются по мере необходимости строкой вида Uses <список модулей>; Например: Uses CRT, GRAPH. Здесь Uses (использует) – зарезервированное слово, это объявление должно стоять в начале раздела описаний основной программы. Назначение модулей: SYSTEM – все процедуры и функции стандартного Паскаля; CRT – процедуры и функции для работы экрана в текстовом режиме; GRAPH – процедуры и функции для работы экрана в графическом режиме; PRINTER – делает доступным вывод на матричный принтер; DOS – подпрограммы взаимодействия с MS DOS; OVERLAY – подпрограммы для разработки программ с перекрытием; TURBO 3, GRAPH 3 – для совместимости с версией ТР 3. 0.
Пример создания модуля: unit My_modul; interface function Summ (Slag 1, Slag 2: real): real; implementation function Summ; begin Summ : = Slag 1 + Slag 2; end; begin end.
Алгоритм создания модуля: 1. Набрать исходный текст модуля. Имя модуля должно совпадать с именем файла (Unit My_modul - My_modul. pas ). 2. Установить режим Compile/Destinatiоn Disk и выполнить компиляцию. На диске автоматически формируется файл My_modul. tpu. Он будет находиться в каталоге, указанном в меню Options/Directories…/Exe & Tpu Directory. 3. Написать инструкцию, содержащую назначение, имена и параметры находящихся в модуле подпрограмм.
Использование модуля program Proba; uses Crt, My_modul; var A, B, C: real; begin clrscr; writeln('Введите А: '); readln(A); writeln('Введите В: '); readln(B); C : = Summ(A, B); writeln('Сумма = ', C: 8: 3); readln; end.
Алгоритм использования модуля: 1. Открыть программу, использующую модуль. 2. В разделе Uses этой программы указать имя нового модуля: uses My_modul; 3. В соответствии с инструкцией использовать необходимые подпрограммы модуля. 4. Выполнить программу и убедиться в правильности ее работы.
Примеры заданий по созданию модулей I. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) вычисление модуля комплексного числа; 6) возведение комплексного числа в степень n (n — натуральное). II. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций с квадратными матрицами: 1) сложение двух матриц; 2) умножение одной матрицы на другую; 3) нахождение транспонированной матрицы; 4) вычисление определителя матрицы. III. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами на плоскости: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора. VIII. Реализовать в виде модуля набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени m, второй — степени n): 1) сложение; 2) вычитание; 3) умножение; 4) деление с остатком; 5) операции отношения (равно, не равно); 6) возведение в натуральную степень k одного из многочленов; 7) вычисление производной от многочлена; 8) вычисление значения в точке x 0.
Модули.ppt