Сделай Сам Свою Работу на 5

Основные принципы модульного программирования. Средства для разработки модульных программ на примере одного из языков программирования высокого уровня.





Модульное программирование - это организация программы как совокупности небольших независимых блоков, модулей, структура и поведение которых подчиняется определенным правилам. Следует заметить, что понятие «модуль» не совпадает в данном случае с понятием «модуль» ( в смысле «библиотека») языка Паскаль. Это должна быть простая, замкнутая (независимая) программная единица (процедура или функция), обозримая, реализующая только одну функцию. Для написания одного модуля должно быть достаточно минимальных знаний о тексте других, как вызывающих, так и вызываемых.
Программа, разработанная в соответствии с принципами структурного программирования, должна удовлетворять следующим требованиям:

программа должна разделяться на независимые части, называемые модулями

модуль - это независимый блок, код (текст) которого физически и логически отделен от кода других модулей;

модуль выполняет только одну логическую функцию, иначе говоря, должен решать самостоятельную задачу своего уровня по принципу: один программный модуль - одна функция;

Работа программного модуля не должна зависеть:



от входных данных;

от того, какому программному модулю предназначены его выходные

данные;

от предыстории вызовов программного модуля;


Размер программного модуля желательно ограничивать одной-двумя страницами исходного листинга (50-100 строк исходного кода);
Модуль должен иметь только одну входную и одну выходную точку;
Взаимосвязи между модулями устанавливаются по иерархической структуре;
Каждый модуль должен начинаться с комментария, объясняющего его назначение, назначение переменных, передаваемых в модуль и из него, модулей, которые его вызывают, и модулей, которые вызываются из него;
При создании модуля можно использовать только стандартные управляющие конструкции: выбор, цикл, блок (последовательность операторов);
Оператор безусловного перехода или вообще не используется в модуле, или применяется в исключительных случаях только для перехода на выходную точку модуля;
В тексте модуля необходимо использовать комментарии, в особенности в сложных местах алгоритма;
Идентификаторы переменных и модулей должны быть смысловыми, «говорящими»;
В одной строке стоит записывать не более одного оператора. Если для записи оператора требуется больше, чем одна строка, то все последующие операторы записываются с отступами;
Желательно не допускать вложенности более, чем трех уровней;



Следует избегать использования языковых конструкций с неочевидной семантикой и программистских «трюков».

В заключение следует напомнить, что все эти вместе взятые меры направлены на повышение качества разрабатываемого программного обеспечения.

Основные концепции объектно – ориентированного программирования. Понятие инкапсуляции, наследования и полиморфизма. Классы и объекты.

В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств. Взаимодействие объектов в такой системе осуществляется путем передачи сообщений между объектами.
В основу ООП заложены следующие принципы:
Абстрагирование – процесс выделения абстракций в предметной области задачи. Абстракция – совокупность существенных характеристик некоторого объекта, которые отличают его от других объектов и т.о. четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа.
Иерархичность – ранжированная или упорядоченная система абстракций.
Типизация – ограничения, накладываемые на свойства объектов и препятствующие взаимозаменяемости абстракций разных типов (либо сильно сужающие такую возможность).
Реализация позднего связывания в языке программирования позволяет создавать переменные – указатели на объекты, принадлежащие разным классам (так называемые полиморфные объекты).
Параллелизм – свойство нескольких абстракций одновременно находиться в активном состоянии, т.е. выполнять несколько операций.
Устойчивость – свойство абстракции существовать во времени независимо от процесса, породившего программный объект и/или в пространстве, перемещаясь из одного адресного пространства, в котором он был задан в другое
ООП включает в себя три основных понятия: абстрактные типы данных, наследование, динамическое связывание. Языки ООП (ООЯ) поддерживаются этой парадигмой с помощью классов, методов, объектов, передаваемые сообщений.



Характеристика основных структур хранения данных: вектор, список, сеть. Линейные структуры данных: способы формирования, основные операции и примеры использования.

Память компьютеров с архитектурой Intel представляет собой упорядоченный набор непосредственно адресуемых машинных ячеек (байтов). Исходя из этого номенклатура структур хранения данных архитектурно ограничена следующим набором: скаляр, вектор, список, сеть.

 

  • Скаляр — поле, содержащее одиночное двоичное значение, размерностью один или несколько байтов. Количество байтов, составляющих скаляр, определяется допустимыми размерами операндов системы команд конкретного процессора.
  • Вектор — конечное упорядоченное множество расположенных рядом скаляров одного типа, называемых элементами вектора. По сути дела вектор — это одномерный массив. Что у них общего? Геометрически вектор представляет собой состоящий из точек объект в пространстве, имеющий начальную точку, из которой он выходит, и конечную точку, в которую он приходит. Точки, лежащие в пространстве между начальной и конечной точками (элементы вектора), находятся между собой в единственно возможном отношении — отношении непосредственного следования. Такая строгая упорядоченность элементов вектора позволяет произвести их последовательную нумерацию. Аналогично и одномерный массив имеет началом и концом скаляры, расположенные по определенным адресам памяти. Между этими адресами последовательно расположены скаляры, составляющие элементы массива. Определенность с начальным и конечным адресами массива, а также с размерностью его элементов дает возможность однозначно идентифицировать любой его элемент.
  • Список — набор элементов, каждый из которых состоит из двух полей. Одно поле содержит элемент данных или указатель на элемент данных, другое -указатель на следующий элемент списка, который, в свою очередь, тоже может быть начальным или промежуточным элементом другого списка. Наличие явного указания на упорядоченность элементов списка позволяет достаточно легко манипулировать содержимым списка, включая новые и исключая старые элементы списка без их фактического перемещения в памяти. Это свойство позволяет размещать в памяти динамически изменяющиеся структуры данных.
  • Сеть — набор элементов, каждый из которых помимо информационного поля содержит несколько полей-указателей на другие элементы сети. С помощью сети удобно представлять такие структуры данных уровня представления, как деревья, ориентированные графы и т. п.

Линейные структуры данных – это структуры данных, в которых переход от одного элемента данных к другому не зависит от каких-либо логических условий, т.е. в линейных структурах используются лишь безусловные связи элементов.

 

К линейным структурам относятся стеки, очереди и деки. Очереди и стеки — это динамически изменяемые упорядоченные наборы элементов. Новые элементы в очередях и стеках всегда добавляются к одному и тому же концу набора — «входному концу».

 

Стек функционирует по принципу «последним пришел — первым ушел» , при этом удаление элементов производится с входного конца. При добавлении в стек нового элемента данных все ранее загруженные элементы сдвигаются на одну позицию в глубину стека, а при удалении элемента данных сдвиг производится на одну позицию ко входу в стек. По такому принципу используется, например, стопка бумаги (листы добавляются и удаляются сверху) или магазин автомата (верхний патрон выстреливается первым), поэтому иногда стек называют магазином.

 

Очереди и стеки обычно организуются аппаратными (схемными) средствами как очень быстрые запоминающие устройства ограниченной емкости с безадресным обращением. Например, очереди могут использоваться для запоминания запросов центрального процессора на обслуживание терминалов, стеки — при трансляции скобочных выражений, обработке вложенных циклов, вычислениях по рекуррентным формулам.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.