Пошаговый режим выполнения программ


Опубликовано: 15.10.2017, 02:02/ Просмотров: 1536

Таблица 4

Таблица 3

Nr Название Перевод Возможная причина – XXX expected   Пропущен указанный символ, слово XXX. XXX=“;”: после последнего оператора не поставленна точка с запятой, либо если компилятор указывает на точку после последнего end программы, значит у вас не каждый begin закрывается словом end. Out of memory Переполнение памяти Вы составили слишком сложную программу. Упростите её режим или попытай-тесь откомпилировать её из ДОС. Identifier expected Ожидается идентификатор Забыли указать имя Unknown identifier Неизвестный идентификатор Используется неописанная переменная или оператор записан неправильно Duplicate identifier Повторение идентификатора Попытка определить имя второй раз Syntax error Синтаксическая ошибка Недопустимая последовательность символов. String constant exceeds line Строковая константа определена не до конца Строковая константа должна быть определена полностью на одной строке. Unexpected end of file Не найден конец программы Забыли поставить последний end. Line too long Слишком большая строка В одной строчке нельзя записывать больше 127 символов. Error in type Ошибка в типе. Тип указан неверно. Structure too large Слишком большая структура Определяемый тип требует больше 64 кб памяти, а этого не допускается Type mismatch Несовпадение типов Переменной целого типа присвоено вещественное число. Переменной строчного типа присваива-ется целое число или наоборот. При вызове функции / процедуры перепутаны аргументы. Invalid function result type Неверный тип результата у функции Функция может возвращать результат только стандартных типов (напр. integer). Error in expression Ошибка в выражении Выражение записано неверно (с ошибкой). Division by zero Деление на ноль На ноль делить нельзя. Cannot read or write variables of this type Нельзя ввести/вывести переменную такого типа. Некоторые переменные (например, массивы) нельзя вводить/выводить на экран используя оператор read/write. Invalid FOR control variable Переменную с этим типом нельзя использовать в цикле FOR В цикле For можно использовать переменную только перечисляемого типа: integer, char или boolean. Либо вы пытаетесь записать в параметр цикла глобальную переменную. Error in statement Неправильное расположение Нелогичное расположение оператора или служебного слова. Возможно, перед else была поставлена точка с запятой.          

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

9.2. Ошибки выполнения

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

Run-time error <nnn> at <xxxx:yyyy>,

где nnn – номер ошибки, xxxx:yyyy - адрес в памяти, по которому произошла ошибка.

В таблице перечислены основные ошибки выполнения, включая ошибки работы с файлами.

Nr Название Перевод Возможная причина File not found Файл не найден Попытка открыть несуществующий файл. Disk read error Ошибка чтения с диска Неправильно указан путь Disk write error Ошибка записи на диск Неправильно указан путь File not assigned Файл не присвоен Файловая переменная не связана с тем файлом, который вы хотите открыть File not open for input Файл не открыт для чтения Забыли открыть файл с помощью reset File not open for output Файл не открыт для записи Забыли открыть файл с помощью rewrite или append Invalid numeric format Неправильный формат числа Неправильно введено число с клавиатуры. Disk is write-protected Диск защищен от записи   Division by zero Деление на ноль   Range check error Превышение границ Обращение к несуществуемому элементу массива; попытка записать в переменную число, превосходящее её границы. Stack overflow error Переполнение стека Многократный вызов рекурсивной процедуры.

9.3. Логические ошибки

Эти ошибки связаны с неправильным применением алгоритмических конструкций. В результате программа работает, но выдаёт неправильный результат. Например, если для обмена значений переменных a и b записаны такие операторы:

a := b;

b := a;

то программа выдаст неверный результат, хотя работать будет. Ошибки такого рода не могут быть обнаружены компилятором, так как компьютер не знает, что вам нужно. Однако система Turbo Pascal 7.0 имеет ряд средств отладки, которые значительно облегчают процесс поиска таких ошибок. К ним мы сейчас и перейдём.

9.4. Средства отладки

Речь пойдёт о возможностях отладки программ в IDE Turbo Pascal 7.0. Под отладкой понимают процесс поиска ошибок в программе. Для этого можно внимательно изучать текст программы, думать, как компьютер будет выполнять каждый оператор и т.д. и т. п. – прокручивая всё в голове. Если программа простая, то это достаточно лёгко и удобно, но при составлении достаточно сложных программ, когда текст превышает 100 строк, трудно держать всё в голове и приходится брать в помощники сам компьютер. IDE Turbo Pascal 7.0 позволяет выполнять программу пошагово, то есть останавливаться после выполнения каждой строчки. Это позволяет контролировать выполнение программы. В моменты остановок можно просматривать значения переменных и даже их изменять. Сейчас мы научимся это делать.

Для запуска программы в пошаговом режиме нужно нажать клавишу F8 или выбрать команду Step over (шаг через) из меню Run (запуск). Программа откомпилируется и на экране появится выделенная голубым цветом строка – так помечен оператор, который будет выполнен следующим. Для его выполнения надо нажать F8 или F7 (Trace into). 0тличие этих режимов заключается в том, что если выполнение этого оператора требует вызова какой-нибудь подпрограммы, то саму подпрограмму компьютер либо тоже выполняет пошагово (F7), либо пропустит её пошаговое выполнение (F8). Если вы уверены, что подпрограмма работает верно, то нажимайте F8.

Можно временно прекратить пошаговый режим. Для этого переместите курсор в то место, до которого вы хотите прервать пошаговое выполнение и нажмите F4 (команда "Go to cursor" из меню Run). Компьютер выполнит автоматически все операторы до строки указанной курсором. Эту клавишу удобно использовать, если в программе есть какие-либо циклы, которые выполняются много раз подряд.

Ещё одна возможность указать место перехода из автоматического режима к пошаговому – это установить “Break point” (точка останова) комбинацией клавиш Ctrl-F8. В том месте, где находится курсор появится красная строка. Теперь при любом запуске программы компьютер всегда остановится на отмеченной строке, если, конечно, эта строка будет выполняться. Далее всё как обычно – F7 или F8, либо Alt-F9 (Run) для продолжения работы программы в автоматическом режиме. Для удаления точки останова нужно перейти к отмеченной строке и опять нажать Ctrl-F8.

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

Для того чтобы прервать режим пошагового выполнения, нажмите Ctrl-F2 (команда “Program reset” из меню Run).

9.4.2. Просмотр/изменение переменных

В пошаговом режиме можно просматривать значения переменных. Для этого надо нажать Ctrl-F4 (команда “Evaluate/modify” из меню “Debug”). В появившемся окне ввести имя переменной и нажать Enter. Чуть ниже в поле “Result” (результат) появится её текущее значение. В случае необходимости в дальнейшем поле “New value” (новое значение) можно ввести новое значение, которое немедленно будет присвоено указанной переменной.

Это окно можно использовать и не только в пошаговом режиме, но и в обычном режиме ввода текста, как простой калькулятор. В поле “Expression” (выражение) введите арифметическое выражение и нажмите Enter. Компьютер посчитает его значение и выдаст его в поле “Result”.


Источник: http://life-prog.ru/1_26119_poshagoviy-rezhim-raboti-programmi.html



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Навигация по коду с помощью отладчика Выполнение до расположения курсора Могут ли быть прыщи после бритья

Пошаговый режим выполнения программ Пошаговый режим выполнения программ Пошаговый режим выполнения программ Пошаговый режим выполнения программ Пошаговый режим выполнения программ Пошаговый режим выполнения программ