Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Аналитическая модель предметной области

Поиск

Инфологическая (концептуальная) модель

Работа в акссес

 

Алгоритмическая модель

 


ОПИСАНИЕ ПРОГРАММЫ «Название темы»

Назначения программы «Название темы»

 

Составные части программы

Программа, написанная на языке паскаль состоит из четырех частей:

заголовк программы

раздел описания данных

раздел операторов

конец программы

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

 

Program <произвольное имя>;

Между служебным словом PROGRAM и произвольным именем, даваемым пользователем ставится символ пробела, а в конце ставится точка с запятой. Вообще в паскале смысловые части программы отделяются символом ";". Иногда еще в заголовок добовляют два слова: INPUT и OUTPUT.

Пример заголовка:

Program pascal1(input,output);

 

В данном случае именем программы является слово PASCAL1. Как уже было сказано, имя не может начинаться с цифры.

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

раздел подключаемых библиотек (модулей)

раздел описания меток

раздел описания констант

раздел описания типов

раздел описания переменных

раздел описания процедур и функций

Раздел описания модулей определяется служебным словом USES и содержит имена подключаемых модулей (библиотек) как входящих в состав системы TURBO PASCAL, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми. Наример:

Uses Crt, Graph;

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

Label 3, 471, 29, Quit;

Описание констант позволяет использовать имена как синонимы констант. Их необходимо определить в разделе описаний констант:

Const

pi = 3,14;

e = 2,7;

 

Хотя некотрые костанты уже содержатся в стандартных библеотеках паскаля, все же удобнее пользоваться своими обозначаниями.

В разделе описания переменных необходимо определить тип всех переменных, используемых в программе.

Описание переменных возможно с помощью служебного слово VAR. Необходимо соблюдать следующий формат:

Var имя: тип

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

Пример:

var

p,q,r: Integer;

A,B: Char;

F1,F2: Boolean;

Описание типов, процедур и функций будет рассмотрено далее.

Раздел операторов представляет собой последовательность операторов, необходимых для выполнения программы. Операторы должны отделятся друг от друга точкой с запятой. Раздел операторов по сути дела является составным оператором, и содержится между служебными словами BEGIN и END.

Слово END и является концом программы. После него ставится точка.

 

Не путайте конец раздела операторов с концом составного оператора, который не является концом программы. Дело в том, что раздел операторов может также в себе содержать составные операторы, которые тоже заключены между служебными словами BEGIN и END. Но в отличие от конца раздела операторов, в конце составного оператора ставится точка с запятой.

 

Выполнение программы

Обычно в результате контрольных запусков программы приблизительно известно, в какой части подпрограммы возникает ошибка, однако быстро обнаружить ее, рассматривая исходный текст, не всегда удается, особенно новичка м-программистам (хотя просмотр исходных текстов признан наиболее эффективным средством обнаружения ошибок). Поэтому возникает необходимость выполнить эту подпрограмму по шагам: каждый оператор по очереди, с возможностью контроля значений используемых переменных. Рассмотрим предыдущий пример. Уточнив, что возникающие ошибки связаны с массивом, будем выполнять программу по шагам начиная с момента заполнения массива. Для этого в программе необходимо создать точку останова, встретив которую программа прервет свою работу и временно передаст управление среде Delphi.'В нашем случае точку останова можно поставить в строке с оператором иикла. Для этого нажмите клавишу <F5> или щелкните мышью на синем маркере в поле слева - соответствующая строка выделится красным цветом (рис. 9.5). Снимается точка останова повторным нажатием клавиши <F5> или щелчком мыши.

Если теперь запустить программу, то произойдет остановка, и управление будет передано в среду Delphi, где строка с точкой останова помечается зеленой стрелкой. В заголовке главного окна Delphi появится информационное сообщение Projectl [Stopped] (Выполнение проекта Projectl приостановлено). При этом не забудьте установить флажок интегрированной отладки в разделе Debugger Options окна Options, иначе останова не произойдет!

Далее выполнение программы можно продолжить по шагам. Для этого используются команда Run=>Step Over (Запуск^ Перешагнуть), клавиша <F8> или кнопка Step Over (Перешагнуть). Если выполнить очередной шаг, то в редакторе подсвечивается синим цветом И помечается зеленой стрелкой следующий оператор, ожидающий выполнения.

Теперь чтобы проверить значение переменных, нужно навести на них указатель мыши, при этом появляется окно всплывающей подсказки со значениями переменных. Если навести указатель на переменную Arr, то в круглых скобках будет показан список всех значений массива, однако пока инициализация не закончена, значения, хранимые в массиве, непредсказуемы. После инициализации можно увидеть, что ячейки массива заполнены не полностью (рис. 9.6).

 

Рис. 9.5, Подготовка программы к пошаговой отладке

 

Рис. 9.6. Просмотр значений в момент отладки

Полностью остановить работу программы можно с помошью команды Run*Program Reset (ЗапускаСброс программы) или комбинации клавиш <Ctrl+F2>. Теперь можно изменить условие окончания цикла и вновь запустить программу.

Однако выполнять циклы по шагам не очень удобно. Если число повторений достигает сотен или тысяч, то постоянно нажимать клавишу <F8> бессмысленно. Чтобы пропустить выполнение группы операторов, можно использовать команду Rurr=>Run to Cursor (ЗапускаВыполнение до курсора) или клавишу <F4>. При этом текстовый курсор надо установить в строку, начиная с которой требуется продолжить выполнение по шагам. Затем следует убрать точку останова (так как при попытке выполнить группу операторов, в данном случае цикл, среда Delphi встретит эту точку останова и вновь остановится на старом месте) и нажать клавишу <F4>. Продолжить выполнение программы (не по шагам) можно с помощью команды Run или клавиши <F9>.

Просмотреть список всех установленных точек останова можно с помощью команды View*Debug Windows1*Breakpoints (ПросмотриОкна отладки1* Точки останова).

Если программа остановлена, но при этом выполнялись какие-то действия по просмотру программы и текущее место останова было потеряно, вернуться к нему поможет команда Run=fShow Execution Point (Запуск* Показать точку выполнения),

В некоторых случаях при выполнении программы по шагам требуется также отследить и то, как работают различные подпрограммы, вложенные в отлаживаемый модуль. Рассмотрим это на примере - разместим на форме кнопку и сформируем обработчик ее щелчка. В обработчик поместим обращение К методу AddActionExecute.

procedure TForml.ButtonlClicktSenderx TObject); begin

AddActionExecute(Sender); end;

Поставим на вызове этого метода точку останова. Запустим программу, щелкнем на новой кнопке - выполнение прервется в нужном месте. Если теперь нажать клавишу <F8>, то подпрограмма AddActionExecute выполнится за один шаг (произойдет шаг через подпрограмму). Но это не то, что нужно. Часто необходимо оценить и логику работы самого метода AddActionExecute. Для этого можно применить команду Run-*Trace into (Запуск*Войти внутрь), нажать клавишу <F7> или щелкнуть на кнопке Trace into (Войти внутрь). В результате управление передается первой команде метода AddActionExecute.

Можно "входить внутрь" не только тех методов, которые написаны разработчиком, но и внутрь стандартных процедур Delphi. Для этого должен быть установлен флажок в поле Use Debug DCUs на вкладке Compiler окна Project Option.

Иногда сразу становится ясно, что делает подпрограмма, в которую разработчик вошел. В таких случаях можно быстро ее покинуть с помощью команды Run<*Run Until Return (Запуск*Выполнять до выхода) или использовать комбинацию клавиш <Shift+F8>, в результате чего управление передается на оператор, следующий за вызовом данной подпрограммы.

Довольно часто в программах встречаются ситуации, когда количество вызовов вложенных подпрограмм весьма велико - оно может достигать десятков. Чтобы взглянуть на подобную последовательность подпрограмм с конкретными параметрами во время выполнения программы, надо использовать команду View*Debug Windows* Call Stack (Просмотр*Окна отладки*Стек вызовов).

 


ЗАКЛЮЧЕНИЕ

 




Поделиться:


Последнее изменение этой страницы: 2016-06-26; просмотров: 314; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.210.35 (0.009 с.)