Песни о Паскале - [36]
В табл. 1 даны пояснения к пунктам этого меню.
Табл. 1 – Описание пунктов меню Run
Команда | Горячая клавиша | Пояснение |
Run | Ctrl+F9 | Запускает программу в непрерывном режиме. |
Trace into | F7 | Выполняет одну строку программы (шаг). Если в строке есть вызов процедуры, то останов происходит на входе в нее, – так можно «войти» внутрь процедуры и следить за ходом её выполнения. |
Step over | F8 | Выполняет одну строку программы. Если в строке есть вызов процедуры, то процедура выполняется целиком, без остановки. |
Go to cursor | F4 | Выполняет программу, пока не будет достигнута строка, где установлен текстовый курсор. Курсор надо предварительно установить на нужной строке! |
Program Reset | Ctrl+F2 | Сброс программы. Если программа остановлена в пошаговом режиме, она перейдет в исходное состояние. |
Parameters… | нет | Используется для отладки программ, принимающих параметры через командную строку. |
Обратите внимание: за один шаг отладки выполняется либо одна строка программы, либо один оператор, если он занимает несколько строк. Стало быть, операторы, помещенные в одной строке, будут выполнены за один шаг. Если компилятору безразлично, как вы располагаете операторы, но при отладке это важно. Не размещайте операторы в одной строке, если при отладке намерены выполнять их раздельно.
Теперь обратимся к пункту меню Debug (рис. 46), где собраны команды для просмотра переменных, их редактирования, а также для просмотра выводимых программой результатов. Эти результаты можно увидеть либо на экране (User screen) либо в специальном окне (Output). Рядом с командами показаны соответствующие им горячие комбинации клавиш.
Теперь испробуем основные команды отладчика на своей программе.
Итак, приступим к поиску жучков, притаившихся в программе «P_20_1». Хорошо бы проследить за изменением переменных в ходе выполнения программы. Для этого вставим переменные в окно обзора «Watches». Откомпилировав программу, поместите курсор под переменной k и нажмите Ctrl+F7. Появится диалоговое окно для добавления переменной в окно обзора (рис. 47).
Поскольку переменная k была взята на мушку заранее, поле уже содержит её имя. Теперь щелчок по кнопке OK отправит переменную в окно обзора (рис. 48). Если же поле «Watch expression» пусто, или содержит нечто другое, значит, вы промахнулись, не попали курсором. Тогда впечатайте имя нужной переменной и щелкните OK. Действуя так, добавьте в окно обзора все интересующие вас переменные (рис. 48).
Пока программа не запущена, напротив имен переменных выводится сообщение о невозможности доступа к ним, – пусть вас это не смущает. Лучше взгляните на то, как расположено окно «Watches». Сейчас оно занимает нижнюю часть экрана и закрывает собой часть окна с программой. Это неудобно, а посему обратитесь к пункту меню Window –> Tile (Окна –> Рядом) как показано на рис. 49.
В результате окна с текстом программы и списком переменных поместятся, не перекрывая друг друга (рис. 50). То же самое можно сделать и мышкой, перетаскивая и меняя размеры окон.
Теперь станем выполнять программу по шагам, следя за изменением переменных. Вместо привычной комбинации Ctrl+F9, для пуска программы в пошаговом режиме нажимают клавишу F7 (команда Run –> Trace). Тогда отладчик остановит программу перед первым оператором, подсветив его особым образом. Последующие нажатия клавиши F7 заставят выполняться следующие строки программы, и очередная строка будет выделяться цветной полоской.
Нажав клавишу F7 четыре раза, мы достигнем оператора Readln, – здесь программа остановится в ожидании ввода строки. Введите как обычно строку из латинских букв «QAAAW» и нажмите Enter, – и тогда программа остановится перед входом в процедуру Scan, как показано на рис. 50.
Примечание. В отладчике IDE Free Pascal при вводе строки необходимо нажать клавишу Enter дважды.
В этом месте рассмотрим переменные в окне «Watches». Счетчик циклов k равен единице, – это глобальная переменная k, поскольку локальной переменной с этим же именем пока не существует. Переменная S содержит то, что мы ввели с клавиатуры. Параметр arg тоже пока не виден отладчику, о чём говорит сообщение «Unknown identifier».
Нажмите клавишу F7 ещё пару раз, пока цветная полоска не перескочит внутрь процедуры Scan. Здесь параметр arg примет то же значение, что и глобальная переменная S, – это прекрасно видно в отладчике. Продолжайте нажимать клавишу F7, пока цветная полоска не дойдет до слова END в конце процедуры. Вы увидите, как параметр arg постепенно принимает значение «QBBBW», – это то, что нам нужно. Состояние программы в этот момент показано на рис. 51.
Теперь переменная k равна пяти, – это длина введенной строки. Но это уже другая, локальная переменная k, поскольку её глобальная тёзка внутри процедуры не видна. Но переменная S (тоже глобальная) по-прежнему видна внутри процедуры, ведь её имя не перекрывается локальной переменной.
Я — Елена. Второй мастер гильдии боевиков. Вроде бы все шло вполне обычно, но в один день в моей жизни появился ОН! И вот надо же было так случиться, что я влюбилась именно в этого вредного и ехидного ангела, а он в меня, но этого же, как обычно, мало судьбе! На меня охотится первая половина империи, а на него вторая и еще прибавились проблемы с переворотом в нашей вполне процветающей стране, но когда это останавливало влюбленных мужчин? Да как вообще такое злобное бедствие остановишь? Он одним лишь появлением способен довести до обморочного состояния всех присутствующих… Ну впрочем, как и я, если нахожусь в состоянии бешенства.
Шестнадцатилетняя девочка Энни, через книгу, попадает в город Сновидений, в котором происходит невероятная магия Луны. Там она узнает, что относится к необыкновенному роду людей – хранителям, которые защищают и помогают людям. Чтобы вернуться домой ей нужно найти лунный цветок расцветающий раз в сто лет, и который может исполнить любое, но одно желание.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Четыре противоположности, чьи судьбы однажды удивительным образом переплелись – наемник, монах, воришка и маг – седлают коней. Что там, за горизонтом? Погони, разнесенные трактиры и странствующие музыканты да не оставят вас! Верные мечи, молитвы богам, ловкие руки, магия, и, конечно, верное плечо друга – и дороги будут благосклонны к своим любимцам, можете мне поверить.У менестрелей тяжелая работа. Но что на счет тех, кто им ее создает?
Дело происходит в Питере. Молодой оперативник одного из убойных отделов Леонид Воронцов вызывает на допрос некоего бизнесмена Рыбкина с целью весьма низкой, а именно, получение взятки. Однако у Рыбкина, обвиняющегося в организации убийства своего зама, на этот счет совсем другие планы. Он подстраивает всё так, чтобы Воронцов получил сильный удар током, обычно в таких случаях ведущий к смерти. И Лёня действительно оказывается в морге. Однако в то время, когда для остальных такое путешествие, как правило, является последним, Лёнина история с него только начинается...