- •4. Понятие объекта программы. Виды объектов: константа, переменная, функция. Задание (определение) объектов программы.
- •Константы
- •1. Понятие алгоритма. Свойства алгоритма.
- •9. Неодродные типы (структура). Характеристика основных составляющих неоднородных типов.
- •10. Понятие ссылочного типа (тип указатель). Характеристика основных составляющих типа указатель.
- •11. Понятие файла. Виды файлов: текстовые, двоичные. Способы обращения к элементам файлов. Операции над файлами.
- •14. Языковые средства вычислений над данными: выражение, оператор присваивания. Синтаксис и симантика выражения и опретора присваивания.
- •12. Совместимость типов. Преобразование типов.
- •Циклические управляющие структуры
- •18. Понятие структурного программирования.
- •19. Понятие подпрограммы и модульного программирования. Цели модульного программирования. Виды подпрограмм: функция, процедура.
- •Подпрограммы
- •20. Синтаксис и семантика функции языка с.
- •22. Понятие формального параметра. Использование формального параметра для передачи данных в подпрограмму (исходных данных и результатов).
- •23. Понятие фактического параметра подпрограммы. Правила связывания формального и фактического параметров.
- •25. Понятие рекурсии. Глубина рекурсии. Механизм реализации рекурсий в языках программирования.
- •24. Модульно - блочная структура программы и правила локализации объектов.
- •Местом или областью локализации может быть:
- •Способ связывания:
24. Модульно - блочная структура программы и правила локализации объектов.
Понятие модуля:
Программный продукт построенный по принципам модульного программирования обладает как называемой архитектурой то есть он состоит из взаимосвязанных между собой частей. И такую часть программного продукта принято называть модуль.
Модуль – самостоятельная часть программы имеющая определенное назначение и обеспечивающая заданные функции обработки автономно от других программных модулей. Каждый модуль характеризуется своим назначением и интерфейсом.
Назначение – определяется неформально как правило на псевдо языке.
Интерфейс – складывается из спецификаций объектов двух типов
1.Тип – Экспорт модуля – те объекты (константы, переменные, функции) которые реализуются данным модулем и могут быть использованы вне этих модулей.
2.Тип – Импорт модуля – те объекты которые используются в данном модуле.
Модуль как строительный материал программной системы должен быть таким, чтобы его назначение и интерфейс соответствовали возможности его использования в других модулях программы.
Кроме импортированных и экспортированных объектов могут быть и внутренние объекты. Они скрыты от других модулей.
Каждый модуль должен компилироваться отдельно от других модулей программной системы.
Модуль должен скрывать (инкапсулировать) реализацию экспортируемых объектов. Это необходимо для того чтобы при модификации не пострадали другие модули.
При создании программного продукта выделяются многократно используемые части программы, проводится их типизация и унификация. На основе этого составляются модули.
Нет жестких правил для определения модуля.
Принято различать следующие модули:
1.Головной – модуль управляющий запуском программного продукта.
2.Управляющий – обеспечивает вызов других модулей как правило в программе он один но допускается и другое количество.
3.Рабочий – модуль выполняющий функции обработки. Таких модулей может быть множество.
4.Сервисный – модуль обеспечивает обслуживание функции.
Взаимодействие объектов в программе :
В программе имеющей модульно – блочную структуру возникает проблема взаимодействия объектов определенных в разных областях программы. Эта проблема решается на основе принципа локализации объектов.
Местом или областью локализации может быть:
1.Блок
2.Функция (то есть ее определение)
3.Модуль (файл)
4.Протатип функции
Каждый объект существует и доступен только в той области в которой он локализован то есть определен. Объект, определенный в блоке, называется локальным в функции - формальный объект (локальный) в модуле (функция, определение функции, определение констант) называется глобальным объектом. Этот объект характеризуется совокупностью атрибутов обьекта:
1.Одласть действия – часть программы в которой существует связь между некоторым именем объекта. По средствам имени обеспечивается обращение к объекту. Область действия имени начинается с точки где определен объект и заканчивается концом той области в которой он локализован (конец блока, модуля, файла).
2.Пространство имен – расширяет область действия имени – область в пределах которой имя должно быть уникальным. Имена переменных, имена функций, имена типов введенных пользователем должны быть уникальными в пределах их области действия. Если переменная определена в блоке, то ее имя уникально в блоке и т.д. (смотри структуры).
3.Видимость объекта – этот атрибут характеризует взаимодействие объектов с одинаковыми именами но с разной локализацией. Если в области внутренней по отношению к другой области определен объект с таким же именем как и объект вне внутренней области то во внутренней области виден объект определенный в ней самой (данное правило однозначно позволяет использовать под одним именем только один объект).
Кроме атрибутов определены следующие качества:
Продолжительность существования объекта – период времени в течении которого любому имени соответствует конкретный объект расположенный в области памяти. продолжительность может быть:
1.Локальной – локальную продолжительность имеют локальные объекты. Такие объекты создаются при входе в блок и не доступны при выходе из него.
2.Статической – статическая продолжительность определяет период существования объекта начиная с его определения и заканчивая концом программы то есть перестает существовать когда программа завершает работу (все функции имеют статическую продолжительность). Локальному объекту может быть приписана статическая продолжительность существования только явно. Память статическим объектам выделяется в начале выполнения программы когда эти объекты определяются и до конца существования программы.
Объекты с динамической продолжительностью существования создаются и уничтожаются в процессе выполнения программы по явным запросам о создании и удалении объекта.
Таки запросы могут быть созданы спец. объектом:
new, malloc – на создание объекта.
delete, free - для удаления объекта.