Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Практическое задание 3



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

Вид фигуры зависит от варианта и приведен в таблице 3.2.

Движение – перемещение фигуры в одном из восьми направлений, пока нажата соответствующая клавиша на клавиатуре.

Вращение – поворот фигуры вокруг своего геометрического центра вправо (по часовой стрелке) или влево (против часовой стрелки), пока нажата соответствующая клавиша на клавиатуре.

Управление движением – самостоятельное перемещение фигуры в одном из восьми направлений, задаваемых однократным нажатием соответствующих клавиш на клавиатуре.

Управление вращением – самостоятельный поворот фигуры вокруг своего геометрического центра вправо или влево в соответствии с однократным нажатием соответствующих клавиш на клавиатуре.

Программа должна иметь оконный интерфейс, аналогичный изображенному на рисунке 3.2, и модульную структуру, соответствующую требованиям задания 1.

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

 
 


Рис. 3.3. Возможная схема межмодульных связей

программы для задания 3

A – основная программа, оформляет окно и определяет выполняемую операцию путем вызыва соответствующих процедур/функций из модуля B, для выполнения операции вызывает одну из процедур модуля C;

B – содержит процедуры/функции оформления окна и работы с меню, разработанные в соответствии с требованиями к аналогичным процедурам, изложенными в задании 2;

C – содержит четыре процедуры выполнения операций, вызывающих процедуры/функции из модулей D и E;

D – содержит восемь процедур перемещения фигуры на один шаг, использующих процедуры модуля F;

E – содержит процедуры поворота фигуры на элементарный угол, использующих процедуры модуля F;

F – содержит процедуры рисования и стирания фигуры.

Таблица 3.2

Варианты задания 2

Вариант Фигура[1] Вариант Фигура
       
             
   
 
 

   
 
 


     
 
 

     
 
 

     
 
 

Окончание таблицы 3.2

       
 
 
 

 
 
 

       
       
   
 
 

   
 
 

   
 
 

   
 
 


   
 
 


 
 
 

 
       
 
 
   

 
       
 
 
   

       

4. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ[2]

Модули

Стандартный Паскаль не предусматривает механизмов раздельной компиляции частей программы с последующей их сборкой перед выполнением. Более того, последовательное проведение в жизнь принципа обязательного описания любого объекта перед его использованием делает фактически невозможным разработку разнообразных библиотек прикладных программ [1-3]. Точнее, такие библиотеки в рамках стандартного Паскаля могут существовать только в виде исходных текстов, и программист должен сам включать в программу подчас весьма обширные тексты различных поддерживающих процедур, таких, как процедуры матричной алгебры, численного интегрирования, математической статистики и т.п.

Вполне понятно поэтому стремление разработчиков коммерческих компиляторов Паскаля включать в язык средства, повышающие его модульность. Чаще всего таким средством является разрешение использовать внешние процедуры и функции, тело которых заменяется стандартной директивой EXTERNAL. Разработчики Турбо Паскаля пошли в этом направлении еще дальше, включив в язык механизм так называемых модулей.

Модуль – это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части[1-3, 13, 16]. По своей организации и характеру использования в программе модули Турбо Паскаля близки к модулям-пакетам (PACKAGE) языка программирования Ада. В них так же, как в пакетах Ады, явным образом выделяется некоторая «видимая» интерфейсная часть, в которой сконцентрированы описания глобальных типов, констант и переменных, а также приводятся заголовки глобальных процедур и функций. Появление объектов в интерфейсной части делает их доступными для других модулей и основной программы. Тела процедур и функций располагаются в исполняемой части модуля, которая может быть скрыта от пользователя.

Насколько сильно изменяются свойства языка Паскаль при введении механизма модулей, свидетельствует следующее замечание его автора Н. Вирта, сделанное им по поводу более позднего языка Модула-2: «Модули – самая важная черта, отличающая язык Модула-2 от его предшественника Паскаля»[5].

Модули представляют собой прекрасный инструмент для разработки библиотек прикладных программ и мощное средство модульного программирования. Важная особенность модулей заключается в том, что компилятор Турбо Паскаля размещает их программный код в отдельном сегменте памяти. Максимальная длина сегмента не может превышать 64 Кбайта, однако количество одновременно используемых модулей ограничивается лишь доступной памятью, что дает возможность создавать весьма крупные программы.





Дата публикования: 2014-11-04; Прочитано: 276 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...