Часть iv. работа в паскале на компьютере

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

Что необходимо знать и мочь к моменту исполнения первой программы?

  • Вы должны иметь трудящийся компьютер с установленным на твёрдом диске Паскалем. Вы должны знать, где у компьютера кнопка включения. Весьма нужно, дабы кто-то умелый сообщил вам, что Паскаль трудится нормально, и продемонстрировал, как его запускать. В случае, если умелых рядом нет, я с грехом пополам попытаюсь поведать вам, как запустить Паскаль («с грехом пополам» по причине того, что для запуска Паскаля необходимо иметь минимальные навыки работы либо в Windows либо в Norton либо в чем-нибудь подобном, а это тема отдельной книги).
  • Вы должны мочь трудиться с текстом в несложном текстовом процессоре. Если не можете, то вам достаточно изучить приложение П1, где вам будут даны все нужные навыки.
  • Считаю совсем нужным, дабы вы сохраняли все ваши программы, кроме того самые мелкие, на диске. Исходя из этого вы должны заблаговременно знать, что такое каталоги (папки) и файлы. Если не понимаете, то вам достаточно прочесть приложение П2, где вы определите все нужное.
  • Вы должны знать имя каталога Паскаля и дорожку к нему (что это такое, просматривайте в том месте же – П2).

Порядок работы в Паскале

(1)Запустите Паскаль

(2)Введите программу

(3)Сохраните программу на твёрдом диске

(4)Выполните программу

В случае, если результаты вас удовлетворяют, перейдите к пункту 6

(5)Исправьте неточности в программе

Возвратитесь к пункту 3

(6)Отдыхайте

Разглядим детально и по порядку пункты этого метода.

(1) Запуск Паскаля

Итак, вы в отчаянном положении. Вы желаете запустить Паскаль, но не понимаете, как это сделать, и некому вам растолковать. Я на данный момент попытаюсь вам оказать помощь, но шансы на успех – 50 на 50.

В первую очередь прочтите приложение П2 и параграфы (2) и (3) из данной главы, поскольку они окажут помощь вам путешествовать по каталогам (обратите, кстати, внимание на двойную точку (..)). Напомню, что вы должны знать имя каталога Паскаля на вашем компьютере и дорожку к нему. Если не понимаете, то могу вам посоветовать, что вероятнее имя каталога – TP либо TP70 либо PASCAL либо что-то весьма близкое (в случае, если у вас Borland Pascal, то, быть может, BP). А находится данный каталог вероятнее в корне одного из логических дисков. В случае, если его нет в корне, то он – в какого-нибудь каталога, скажем, PROGRAMS. Лишь не ищите его в каталоге WINDOWS, это страшно, да и не бывает его в том месте. Вы должны кроме этого знать имя запускающего файла в каталоге Паскаля. Это turbo.exe (в случае, если у вас Borland Pascal, то bp.exe). Он может пребывать не в самом каталоге Паскаля, а в его подкаталоге BIN.

А сейчас вперед:

Включите компьютер, если он еще не включен. Некое время по тёмному экрану бегут белые слова – это компьютер рапортует вам о том, как он сам себя контролирует, загружает ОС (ОС) и, быть может, другие программы. После этого на экране устанавливается и замирает картина. Ее вид зависит от ОС и других загруженных программ. Практически во всех случаях вероятны три варианта:

А) Независимо от ОС, у вас машинально загружается операционная оболочка Norton Commander. Это было бы легче всего.

Б) Ваша ОС – Windows 95.

В) Ваша ОС – Windows 3.1 либо 3.11.

Разглядим все эти три варианта.

А) Загружен Norton Commander. Его вы определите по светло синий экрану, поделённому по вертикали пополам на две “панели”. На каждой панели – перечень подкаталогов и файлов какого-нибудь каталога какого-нибудь логического диска вашего компьютера. Имена каталогов приведены большими буквами, а имена файлов с расширениями – строчными. Обе панели совсем равноправны. Это легко два свободных “окна”, смотрящие вовнутрь ваших дисков. Наверху каждой панели написана дорожка к каталогу, внутренность которого вы лицезреете на панели.

Для начала щелкните по клавише F2. Быть может, в открывшемся меню вы сходу отыщете Паскаль. В случае, если нет, то при помощи клавиши Esc уберите меню с экрана.

При помощи клавиш , ® , , ¯ , Tab, Enter попытайтесь добраться до каталога Паскаля на манер того, как я вам рекомендую в параграфе (3) добраться до вашего каталога. Лишь вместо полос прокрутки пользуйтесь мышкой либо клавишами , ¯, , ® , а вместо двойного щелчка мышкой имеете возможность пользоваться клавишей Enter. Если вы желаете взглянуть содержимое другого логического диска, то, удерживая надавленной клавишу Alt, щелкните по клавише F1 либо F2 и из показавшегося меню выберите необходимый диск.

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

Б) Загружена ОС Windows 95. Попытайтесь обнаружить экране значок с надписью Turbo Pascal либо близкой, и в случае, если нашли, щелкните по ней мышкой два раза. В случае, если двойной щелчок не получается, щелкните один раз, а после этого надавите клавишу Enter. Дело сделано.

В случае, если значок не нашли, отыщите в левом нижнем углу экрана «кнопку» Пуск либо «подковырните» ее оттуда мышкой. Щелкните по ней мышкой. Щелкните в выпавшем меню слово Программы, а в том месте – Проводник. Откроется окно, в котором вы попытайтесь добраться до каталога Паскаля на манер того, как я вам рекомендую в параграфе (3) добраться до вашего каталога. Но рычаги управления тут другие. В левой половине окна Проводника вы заметите дерево, похожее на то, что я обрисовывал в П2. Пользуясь полосами прокрутки, обнаружьте нем значок нужного вам логического диска и в случае, если слева от него стоит значок “+”, щелкните по плюсу. Из логического диска “выскочат” ветки-каталоги. Щелкните по значку нужного каталога. В правой половине окна Проводника вы заметите перечень подкаталогов и файлов этого каталога. Каталоги изображены значками в виде желтых папочек, файлы – любыми вторыми. Отыщите запускающий файл в виде белого прямоугольника с нужным именем и щелкните его два раза.

Может так произойти, что Паскаль заартачится, не захочет запускаться, начнет давать предупреждение и жаловаться на что-то. Мой совет – попытайтесь запустить Norton Commander. Для этого повторите все обрисованные действия, но не для запуска Паскаля, а для запуска Нортона. Его запускающий файл – nc.exe, находится он в каталоге, имя которому, вероятнее, NC либо NC50 либо Norton либо близкий. После этого перейдите к пункту А).

В) Загружена ОС Windows 3.1 либо 3.11. Перед вами – окно с надписью “Диспетчер программ”. В случае, если окна нет, значит – значок с таковой надписью. Щелкните по нему два раза, дабы он превратился в окно. В случае, если двойной щелчок не получается, щелкните один раз, а после этого щелчок по слову «Развернуть». Окно раскрылось.

Щелкните по слову “Файл”. В выскочившем из него меню – по слову “Выполнить”. В узеньком окне с заглавием “Командная строчок” мигает курсор. Напечатайте на клавиатуре дорожку до Паскаля (к примеру, c:\tp\turbo.exe) и щелкните по клавише ввода. В случае, если дорожка верна, то дело сделано. В случае, если нет, то Windows скажет вам, что файл она не отыскала. Щелкните по сообщению “ОК” на экране и попытайтесь отыскать Паскаль, щелкнув на экране по кнопке “Пролистать”. Выберите мышкой “устройство” (необходимый диск). После этого попытайтесь отыскать “каталог”, щелкая два раза по значкам кажущихся вам подходящими каталогов. Начните с самого верхнего значка. В случае, если двойной щелчок не получается, щелкайте один раз, а после этого щелчок по слову «ОК». Наряду с этим в левом окне пристально просматривайте имена файлов, входящих в выбранный вами каталог. В окне “Каталоги” значки каталогов-родителей расположены чуть левее, а каталогов-“детей и внуков” – правее. Пользуйтесь прокруткой. Увидев в левом окне запускающий файл Паскаля, щелкайте по нему – и ОК. И еще раз ОК. Дело сделано.

(2) Начало работы. Ввод программы. Выход из Паскаля

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

Часть iv. работа в паскале на компьютере

Время от времени Паскаль настроен так, что при запуске вместо окна редактора показывает тщетное серое пространство — рабочий стол. Курсора нигде не видно, программу вводить некуда. Не огорчайтесь — дело легко исправить. Исправить либо мышкой либо с клавиатуры.

Часть iv. работа в паскале на компьютере

Мышкой стремительнее — щелкните по слову Fileв главном меню наверху экрана, а после этого в выпавшем из него втором меню — по слову New.

В случае, если с клавиатуры, то надавите клавишу F10, после этого клавишами либо ® подсветите слово File и надавите клавишу ввода. После этого клавишами либо ¯ подсветите слово New и опять надавите клавишу ввода.

Возможно вводить программу. Напоминаю, что вводится она, как простой текст в несложном текстовом процессоре. Если вы этого не можете, то вам достаточно изучить приложение П1, где вы получите все нужные навыки.

(В будущем для краткости я не буду писать, как выбирать пункты меню. Я File ® New).

Выход из Паскаля — File ® Exit.

(3) Сохранение программына диске. Загрузка программыс диска

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

Для этого в меню File имеется опция Save. Когда вы ее выберете, перед вами покажется диалоговое окно – Паскаль предлагает вам выбрать каталог, в который вы желаете записать программу, и имя, которое вы желаете дать файлу вашей программы (Если вы не отлично понимаете, что такое каталог и файл, то на данный момент самое время прочесть приложение).

Часть iv. работа в паскале на компьютере

В случае, если вас не устраивает каталог, что предлагает Паскаль, то пролистайте его, щелкнув по стрелкам полосы прокрутки, дабы отыскать две точки (..), каковые помогают выходной дверью из каталога. Щелкните по ним два раза – и вы окажетесь в родительском каталоге. Интерфейс Паскаля менее эргономичен, чем интерфейс Windows, но вы сможете все-таки отличать имена подкаталогов от имен файлов по косой линии (BackSlash) в конце имени подкаталога.

Путешествуя подобным образом по каталогам, вы в итоге дойдете до нужного. Два раза щелкните по нему и вы окажетесь в него. Затем щелкните в поля для имени файла. В том месте замигает курсор. Сотрите все, что в том месте написано, и введите в том направлении придуманное вами имя файла. Затем надавите клавишу ввода либо щелкните на экране по кнопке OK. Ваша программа записана на диск. В качестве подтверждения заголовок вашего страницы изменился с NONAME00.PAS на имя вашего файла с расширением PAS.

Сейчас программу возможно запускать на исполнение.

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

В случае, если ветхий вариант программы вам по каким-то соображениям дорог и вы не желаете его стирать, вам необходимо выполнить File ® Save as… На экране появляется то же самое диалоговое окно, предлагающее вам то же самое имя файла в том же самом каталоге. Измените имя либо каталог и щелкните по кнопке OK. Ваша программа с экрана будет записана в второе место диска, а ветхий файл будет нетронут.

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

Часть iv. работа в паскале на компьютере

И действия ваши весьма похожи: вы должны найти в окне файл вашей сохраненной день назад программы, для чего вам нужно будет попутешествовать по каталогам. Отыскав файл, щелкните по нему два раза либо один раз по нему, один раз по Open. Ваша программа появляется на экране.

(4) Исполнение программы

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

Выберите пункт главного меню Run. В выскочившем подменю щелкните по опции Run. Все другое делает компьютер. Начинает он с того, что за долю секунды компилирует вашу программу. Затем, не прерываясь ни на мгновение, он начинает делать откомпилированную программу. Наряду с этим окно редактора уходит с экрана и на нем появляется тёмное окно пользователя, на котором Паскаль и будет печатать и рисовать все, что прикажет программа. В случае, если программа маленькая и не содержит пауз и остановок, то Паскаль мгновенно печатает и рисует все, что приказано, и возвращает на экран окно редактора. Потому, что все случилось мгновенно, то создается чувство, что ничего и не случилось – на экране было окно редактора, позже что-то мелькнуло, — и опять на экране окно редактора, а результатов никаких и не видно.

Дабы заметить результаты, возможно пойти двумя дорогами:

  • По окончании того, как программа уже выполнилась, выбрать опцию User Screen. В Турбо-Паскале 7.0 она находится в пункте меню Debug. В случае, если вам не хочется искать ее в меню, надавите Alt-F5. На экране появится окно пользователя с результатами. Данный метод нехорош при работе в графическом режиме: изображение либо искажено, либо по большому счету не просматривается.
  • Значительно эргономичнее применять в программе оператор ReadLn. В этом случае, наткнувшись на протяжении исполнения программы на ReadLn, Паскаль останавливает программу, окно пользователя с экрана не исчезает, и вы имеете возможность наблюдать на результаты, сколько желаете. Программа продолжит работу с места остановки, в то время, когда вы надавите на клавишу ввода.

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

Зацикливание. Обычная программа, сделав все, что необходимо, заканчивает работу. Но, если вы допустили неточность и в программе выполняется нескончаемый цикл, то программа не завершится ни при каких обстоятельствах. Вы всегда станете наблюдать на экран, по которому вечно бегут непонятные числа либо слова либо рисуются графические объекты, а допустимо и ничего не происходит, экран безлюдной – все зависит от характера неточности.

Для прерывания работы программы (среди них и зациклившейся) существует комбинация клавиш Ctrl-Break. На экран возвращается окно редактора. Строчок программы, на которой она была прервана, выделяется полосой белого цвета. Если вы опять запустите программу, она продолжит работу с прерванного места. Дабы начать сперва, уберите полосу с экрана клавишами Ctrl-F2.

(5) Исправление неточностей. Отладка программы.

Сообщения об неточностях. Неточности в программах делятся на те, каковые Паскаль подмечает, и на те, что не подмечает и в принципе подметить не имеет возможности. К первым относятся все синтаксические погрешности, к примеру, BIGIN вместо BEGIN. Их Паскаль подмечает еще на стадии компиляции. На стадии исполнения он подмечает такие неточности, как Sqrt(-25), другими словами квадратный корень из ?25. Но вот, если вы, хотя возвести число a в куб, вместо a*a*a пишете a*a, то этого не увидит ни один язык в мире.

Найдя грамматическую неточность, Паскаль выдает золотыми буквами на красном фоне краткое описание неточности и ставит курсор в то место программы, где, согласно его точке зрения, она находится.

Найдя неточность на стадии исполнения, Паскаль выдает белыми буквами на тёмном фоне окна пользователя сообщение Runtime error и время от времени золотыми буквами на красном фоне краткое описание неточности и ставит курсор в то место программы, где, согласно его точке зрения, она находится.

Вот самые типичные для начинающих сообщения об неточностях того и другого рода:

Сообщение Перевод Возможная обстоятельство неточности
Unexpected end of file Неожиданный финиш файла Вы забыли поставить точку по окончании последнего END. Либо не сходится количество begin и количество end
“;” expected Ожидал точку с запятой Вы забыли поставить точку с запятой по окончании прошлого оператора
“,” expected Ожидал запятую Вы указали через чур мало параметров в обращении к подпрограмме
“)” expected Ожидал скобку “)” Вы указали через чур много параметров в обращении к подпрограмме
Unknown identifier Малоизвестное имя Вы забыли обрисовать это имя в разделе описаний Неправильно записали стандартное имя, к примеру, ReedLn вместо ReadLn
Type mismatch Несовпадение типов В вашей программе видятся приблизительно такие «сладкие парочки»: VAR c:String; … c:=1+2 либо VAR h:Integer; … h:=9/7
Duplicate identifier Дубль имени Одно да и то же имя обрисовано два раза. К примеру, VAR a, c, a :String;
Syntax error Синтаксическая неточность Паскаль затрудняется назвать обстоятельство неточности. Довольно часто обстоятельство в том, что вы забыли забрать строковую константу в кавычки
BEGIN expected Ожидал BEGIN Быть может, не сходится количество begin и количество end
END expected Ожидал END Быть может, не сходится количество begin и количество end
String constant exeeds line Строковая константа превышает допустимую длину Вы забыли закрыть кавычки в строковой константе
Line too long Строки через чур долга Через чур долгая строки в программе (не путать со строковой константой, которую необходимо брать в кавычки). Не советую залезать программным текстом за правый край экрана
Disk full Диск заполнен На вашем диске не осталось места. Нужно что-то стереть
Lower bound greater than upper bound Нижняя граница диапазона больше верхней К примеру, вы вместо array[2..5] написали array[5..2].
Invalid floating point operation Неверная операция с вещественным результатом Sqrt(-25) либо a/0 либо что-нибудь в этом роде
Ordinal expression expected Ожидал выражение порядкового типа К примеру, вы вместо for i:=1 to 8 написали for i:=1 to 8.5
Error in expression Неточность в выражении К примеру, вы вместо k:=а*8 написали k:=а**8
Range check error Неточность проверки диапазона Переменная в ходе исполнения программы стала женой пределы допустимого диапазона, как к примеру, в 12.9
Constant out of range Константа не в диапазоне Величина константы в программе превосходит допустимый диапазон
Invalid numeric format Неверный числовой формат В случае, если, к примеру, вы по оператору ReadLn(k) в программе VAR k:Integer; …. ReadLn(k) … пробуете ввести число 25.3

Более подробное описание некоторых неточностей вы отыщете в 4.3.

Осознать суть многих вторых сообщений об неточностях вам окажет помощь перевод некоторых довольно часто видящихся в сообщениях слов:

expected ожидал

identifier имя

invalid неверный

operation операция

error неточность

variable переменная

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

Походовый режим

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

На случай происхождения таких обстановок Паскаль предлагает последовательность отладочных средств. Я начну с походового режима.

Мысль походового режима вот в чем. Компьютер через чур скоро делает программу и человек не успевает проследить «за ходом его мыслей». Отлично бы мы сами задавали темп исполнения программы. Тогда неточность найти было бы существенно легче.

Разглядим задачу из 5.1: В компьютер вводятся два произвольных положительных числа — длины сторон двух кубиков. Компьютер обязан подсчитать количество одного кубика — большего по размеру . Обозначаем a1 — сторону одного кубика, a2 — сторону другого, V — количество кубика. Приведем второй вариант программы:

VAR a1,a2,V : Real;

BEGIN

ReadLn (a1,a2);

if a1a2

then V:=a1*a1*a1

else V:=a2*a2*a2;

WriteLn (V : 15:5)

END.

Запускайте программу, но не простым образом, а клавишей F7, которая есть более стремительным методом вызова меню Run®Trace into. (Кстати, обратите внимание, что справа от многих опций меню обозначены «тёплые» клавиши, которыми эти опции возможно скоро вызывать.) Паскаль откомпилирует вашу программу и сделает паузу перед выполнением программы, подсветив горизонтальной полосой строчок BEGIN.

Еще разF7. Ничего не происходит, лишь полоса подсветки прыгает на следующую строчок. В ней находится первый исполняемый оператор вашей программы – ReadLn (a1,a2).

Итак, правило простое – при нажатии на F7Паскаль делает одну строчок программы и подсвечивает ту строчок, которой предстоит быть выполненной.

F7. Паскаль делает ReadLn (a1,a2), в следствии чего у вас, как и при простом исполнении программы, во целый экран распахивается тёмное окно пользователя. Оператор требует ввода двух чисел. Введите, к примеру, 5 и 4, не забыв надавить на клавишу ввода. Окно пользователя пропадет, опять появится окно редактора и вы заметите, что серая полоса подсветки перескочила на строчок if a1a2.

F7. Паскаль делает if a1a2, в следствии чего полоса прыгает на then V:=a1*a1*a1, так как 54.

F7. Полоса перепрыгивает через else V:=a2*a2*a2 и попадает на WriteLn (V : 15:5).

F7. Паскаль делает WriteLn (V : 15:5), в следствии чего печатается итог, а полоса перескакивает на строчок END.

F7. Полоса исчезает. Программа выполнена. взглянуть на итог при помощи Alt-F5.

Сейчас еще раз выполните ту же программу в походовом режиме. Но в то время, когда ReadLn (a1,a2) потребует двух чисел, введите 2 и 3. Сейчас уже по окончании if a1a2 полоса прыгает не на then V:=a1*a1*a1, а на else V:=a2*a2*a2.

В любую секунду пошагового исполнения программы вы имеете возможность вместо F7выбрать Run®Run(клавиши Ctrl-F9) и программа продолжит выполняться как и всегда. Дабы прервать походовый режим, выберите Run®Program reset(клавиши Ctrl-F2).

Работа с окнами отладчика и пользователя

Предположим, у вас не получается задание из 6.1 — выяснить без компьютера, что будет печатать следующая программа:

LABEL m1,met5;
VAR n,k : Integer;
BEGIN
n:=10;

k:=0;

WriteLn(‘Вычисляем зайцев’ );

met5: Write(n);

n:=n+k;

goto m1;

n:=n+1;

m1: Write(‘ зайцев ‘);

ReadLn;

k:=k+1;

goto met5;

WriteLn(‘Посчитали зайцев’)

END.

Ответ: Эта программа обязана печатать:

Вычисляем зайцев
10 зайцев

10 зайцев

11 зайцев

13 зайцев

16 зайцев

20 зайцев

………

С ответом у вас не сходится. Значит, вы чего-то не осознаёте. Чего? Дабы выяснить это, вы вводите программу в компьютер. Он печатает все, как в ответе. По какой причине? Возможно, вы не осознаёте, как изменяются в ходе исполнения программы значения переменных n и k. Отлично бы возможно было подсмотреть за их значениями в оперативной памяти. Отлично бы кроме этого напечатанные результаты не пропадали с экрана, а были бы в любой момент перед глазами.

Проделайте следующее. (При предстоящем объяснении я буду предполагать, что вы можете обращаться с несколькими окнами на экране. Кто не может, просматривайте следующий параграф.)

Сузьте окно вашей программы так, дабы оно высвободило приблизительно половину ширины экрана. Потом — Debug®Output. Перед вами появляется тёмное окно пользователя, в котором вы привыкли замечать результаты, но в уменьшенном виде. Измените его размер и отбуксируйте на свободное место экрана.

Потом — Debug®Watch. Перед вами появляется окно отладчика, в котором вы станете замечать значения переменных размеров в оперативной памяти. Измените его размер и отбуксируйте на оставшуюся часть экрана.

Вот как будет смотреться ваш экран по окончании всех манипуляций (и уже по окончании нескольких исполнений цикла в походовом режиме, о чем дальше):

Часть iv. работа в паскале на компьютере

Вы сами должны сообщить Паскалю, за какими переменными желаете следить. Разумеется, в вашем случае это n и k. Ваши действия: Debug®Add watch…,запишите имя n в открывшемся диалоговом окне и – щелчок по кнопке OK. В окне отладчика покажется сообщение n:7 либо n:0либо какое-нибудь второе число либо сообщение. Не обращайте на это внимания. Повторите всю процедуру с k.

Сейчас возможно запускать программу на исполнение в походовом режиме. Для этого надавите на F7. Паскаль откомпилирует вашу программу, быть может, поменяет значения в окне отладчика и сделает паузу перед выполнением программы, подсветив горизонтальной полосой строчок BEGIN.

F7. Паскаль, быть может, обнулит значения в окне отладчика. Полоса подсветки прыгает на следующую строчок. В ней находится первый исполняемый оператор вашей программы – n:=10.

Итак, правило простое – при нажатии на F7Паскаль делает одну строчок программы и подсвечивает ту строчок, которой предстоит быть выполненной.

F7. Паскаль делает n:=10, в следствии чего в окне отладчика значение n изменяется на 10, а серая полоса прыгает на строчок k:=0.

F7. Паскаль делает k:=0, в следствии чего в окне отладчика значение k делается равным 0, а полоса прыгает на строчок WriteLn(‘Вычисляем зайцев’ ).

F7. Паскаль делает WriteLn(‘Вычисляем зайцев’ ), в следствии чего в окне пользователя появляется напечатанный текст Вычисляем зайцев, а полоса прыгает на строчок met5: Write(n).

F7. Паскаль делает Write(n). В окне пользователя в новой строчке появляется число 10, так как в оперативной памяти n равняется 10 (об этом нам говорит окно отладчика). а полоса прыгает на строчок n:=n+k.

F7. Паскаль делает n:=n+k, в следствии чего в окне отладчика значение n остается равным 10, так как в оперативной памяти k равняется 0. Полоса прыгает на строчок goto m1.

F7. Паскаль делает goto m1. Полоса перепрыгивает на строчок m1: Write(‘ зайцев ‘).

F7. Паскаль делает Write(‘ зайцев ‘ ), в следствии чего в окне пользователя справа от числа 10 появляется текст зайцев, а полоса прыгает на строчок ReadLn.

F7. Паскаль делает ReadLn, в следствии чего окно пользователя распахивается на целый экран и ReadLn ожидает, в то время, когда вы надавите на клавишу ввода. Вы нажимаете – и полоса прыгает на строчок k:=k+1.

F7. Паскаль делает k:=k+1, в следствии чего в окне отладчика значение k изменяется на 11. Полоса прыгает на строчок goto met5.

F7. Паскаль делает goto met5. Полоса перепрыгивает вверх, на строчок met5: Write(n).

И без того потом.

В случае, если ваша программа рисует что-то в графическом режиме, то, к сожалению, при обрисованном методе работы картины видны не будут.

В случае, если в вашей программе имеется подпрограммы, то серая полоса проберётся и вовнутрь подпрограмм и будет скакать в том месте, будто бы ничего не случилось. Так, вы сможете разбирать и работу подпрограмм. В случае, если же вы не желаете утомлять себя прыжками в подпрограмм, нажимайте не F7, а F8. Тогда Паскаль будет делать подпрограмму мгновенно в автоматическом режиме и серая полоса будет путешествовать лишь в главной программы. Вы имеете возможность вольно менять нажатия F7 и F8. Клавиша F7 будет направлять вас «вглубь» подпрограмм, а F8 — «наружу».

Отладка громадных программ

Точки прерывания — Breakpoints. Будем вычислять “громадными” программы, превышающие несколько размеров экрана. Для них изложенный только что походовый режим возможно весьма изнурительным, поскольку через чур довольно часто приходится жать F7. Вы имеете возможность вынудить Паскаль при исполнении программы задерживаться не на каждой строке, а лишь на некоторых — тех, что вам необходимо.

Поставьте курсор на одну из этих строчков и надавите Ctrl-F8. Строчок станет красной. Это символ того, что при исполнении программа на ней остановится. Будем именовать эту строчок точкой прерыванияили контрольной точкой.

Поставьте курсор на другую строчок и опять надавите Ctrl-F8. Эта строчок также станет точкой прерывания.

Так проделайте со всеми нужными вам строчками. После этого имеете возможность простым образом вывести на отладчика окна и экран пользователя.

А сейчас простым образом (Run®Run либо Ctrl-F9) запускайте программу. Программа будет выполняться до тех пор, пока не наткнется на какую-нибудь точку прерывания. На ней она поднимется и продолжит работу с того места, где остановилась, лишь при новом нажатии Ctrl-F9. И без того потом.

Убирается точка прерывания совершенно верно так же, как ставится — Ctrl-F8.

“Иди до курсора” — Goto cursor. Это еще один метод остановки в нужной вам строке. Поставьте курсор в нужную строчок и надавите F4. Программа будет выполняться до тех пор, пока не наткнется на строчок с курсором. А сейчас поставьте курсор в другую строчок и опять надавите F4. Программа продолжит работу с того места, где остановилась, и будет выполняться до тех пор, пока не наткнется на строчок с курсором. И без того потом.

Кстати, в ходе исполнения программы вы имеете возможность достаточно вольно переключаться между различными методами ее исполнения – F7, F4 либо Ctrl-F9.

Испольование Write и ReadLn. В случае, если программа трудится с графикой, то пользоваться вышеописанными средствами отладки либо некомфортно либо запрещено. Не беда. Еще до существования всех и всяческих отладчиков программисты пользовались запасном печатью значений переменных. Вправду, вместо применения окна отладчика для подсматривания за переменными n и k, вы в программу засунуть дополнительный оператор Write(’ n=‘,n,’ k=‘,k). А вместо походового режима имеете возможность в нужных местах программы поставить ReadLn. В то время, когда программа будет отлажена, вы уберете эти дополнительные операторы.

Лишь имейте в виду, что в то время, когда экран с вашими картинами донизу будет заполнен информацией, напечатанной оператором Write, он начнет прокручиваться вверх, а вместе с ним вверх уползут и ваши картины. Дабы избежать этого, необходимо сделать так, дабы не допечатав донизу, компьютер при помощи ReadLn сделал перерыв (дабы вы успели взглянуть результаты печати) и опять начал печатать бы сверху. А для печати сверху нужно засунуть в необходимое место программы оператор GotoXY (см.15.7). А уж для этого вам необходимо применять модуль CRT (см. 9.1) и засунуть в начало программы оператор DirectVideo:=false (см.10.3).

Паскаль с нуля [ч1]. Первая программа.


Интересные записи:

Понравилась статья? Поделиться с друзьями: