Просмотр и изменение значений переменных при отладке программы

 

Рисунок 17. Просмотр значений переменных в окне Watch

 

Для просмотра и изменения значений переменных при отладке программы существует режим Watch (следить) и Evaluate Modifil в пункте Debug. После выбора режима Watch в нижней части экрана открывается окно (зеленого цвета). В пункте меню Debug есть режим Add watch, в котором есть поле ввода и три кнопки. В поле ввода записывается одна или несколько переменных значения, которые надо отследить. Клавишей Esc окно Addwatch убирается. Остается окно Watch, в котором указаны имена переменных и через двоеточие их значения. Используя пошаговое выполнение программы можно видеть, как меняются значения этих переменных.

Например, на рисунке 17, показано окно рабочей программы 1.pas, в которой записана простая программа, и окно Watch, содержащее три переменных и их значения после выполнения программы.

Если нужно добавить еще одну переменную в окно Watch то, не выходя из редактора нужно нажать Ctrl+F7. В появившемся окне Add watch добавляем имя нужной переменной.

Если окно Watch активно из его списка можно удалить имя переменной. Для этого переменная выбирается клавишами управления курсором и нажимается клавиша Del или Ctrl+Y.

Замечание: окно Watch убирается и восстанавливается клавишей F6.

Для изменения значения некоторых переменных выбирается режим Evaluate Modify (Ctrl+F4).

Открывается диалоговое окно (см. рис. 18).

 

Рисунок 18. Диалоговое окно Evaluate Modify

 

Во входное поле Expression (выражение) вводится имя переменной, в поле Result (результат) появляется ее значение. Переменной можно присвоить новое значение, введя его с клавиатуры в третье поле. Кнопка Evaluate служит для вычисления выражения в поле ввода, кнопка Modify – для изменения значения. Для закрытия окна – клавиша Esc.

 

Распечатка программ.

 Чтобы распечатать программу из активного окна редактора нужно в пункте меню File выбрать Print.

 

           Представление математических функций на языке ТР

Математическая запись Запись TP 7.0.
x2 SQR(X)
SQRT(X)
|x| ABS(X)
sin x SIN(X)
cos x COS(X)
tg x SIN(X)/COS(X)
ctg x COS(X)/SIN(X)
arcsin x ARCTAN(X/SQRT(1-SQR(X)))
arccos x ARCTAN(SQRT(1-SQR(X))/X)
arctg x ARCTAN(X)
ex EXP(X)
Натуральный логарифм LN(X)
xn EXP(N*LN(X))
Выдает случайное число из интервала (0,1)[4] RANDOM[(X)]
Целая часть x INT(X)
Дробная часть числа x FRAC(X)
Число ПИ PI
Возвращает число равное целой части (округляет по правилам арифметики тип LONGINT) ROUND(X)
Округляет число, отбрасывая дробную часть числа тип LONGINT TRUNC(X)
Увеличивает X на величину Y INC(X,Y)
Уменьшает X на величину Y DEC(X,Y)

 

 

       Таблица 1 Сообщения об ошибках компиляции

Номер ошибки Комментарий
1 Недостаточно оперативной памяти. Следует воспользоваться стандартными средствами расширения оперативной памяти.
2 В данном месте программы должен находиться идентификатор.
3 Неизвестный(не определенный ранее) идентификатор
4 Идентификатор определяется второй раз
5 Синтаксическая ошибка (нарушены правила написания предложения)
6 Ошибка в изображении вещественного числа
7 Ошибка в изображении целого числа
8 Строковая константа превышает допустимый размер(255 символов) Вероятно, пропущена закрывающая кавычка
10 Неожиданное завершение программы. Вероятно, не сбалансированною число зарезервированных слов begin и end, неправильно оформлен файл.
11 Компилируемая строка превышает 127 символов
12 В данном месте программы требуется идентификатор типа
13 Попытка открыть в среде программирования количество файлов больше, чем допускается в операционной системе
14 Неправильно имя или путь файла.
15 Файл не найден нив текущем, ни в заданном каталоге.
16 Диск, куда записывается информация, не имеет свободного места
17 Ошибка в директиве компилятора, или она используется в недопустимом месте
18 Слишком много файлов используется при компиляции.
19 При определении типа-указателя используется тип, нигде не определенный.
20 В данном месте программы должен быть идентификатор переменной. Неправильно определен тип.
21 Неправильно определен тип
22 Размер данных более 65520 байт
24 Тип множества имеет более 256 элементов или содержит элементы с порядковым номером не в пределах 0..255
25 Компонентами файловой переменной не могут быть файлы или объекты
26 Несовместимые типа(в операциях присвоения, в выражениях, у индекса массива, тип фактического параметра при обращении к подпрограмме неэквивалентен типу формального параметра
27 В типе диапазоне может использоваться только порядковый тип
28 В типе диапазоне нижняя граница больше, чем верхняя
29 Здесь может использоваться только порядковый тип.
30 Здесь можно использовать только константу целого типа
31 Здесь можно использовать только константу.
32 Здесь можно использовать только числовую константу
33 Здесь должен бить тип-указатель
34 Недопустимый тип функции
35 Здесь должен быть идентификатор метки
36 Здесь ожидается зарезервированное слово begin
37 Здесь ожидается зарезервированное слово end
38 Выражение должно быть целого типа
39 Выражение должно быть порядкового типа
40 Выражение должно быть логического типа
41 В операторе не могут быть операнды такого типа
42 Ошибка, в выражении(например, пропущен знак операции между операндами).
43 Неправильно присвоено значение переменной.
44 Требуется значение полу записи
45 Объектный файл больше, чем 64 кбайта.
46 НЕ найдена внешняя подпрограмма.
47 Фай, по-видимому, не является объектным
48 Кодовый сегмент больше 65520 байт.
49 Сегмент данных больше 65520 байт
50 Здесь следует поместить зарезервированное слово do
51 Неправильное использование директивы PUBLIC в подпрограмме, написанной на ассемблере
52 Неправильное использование директивы EXTRN в подпрограмме, написанной на ассемблере
53 В объектном файле больше 256 директив
54 Здесь следует поместить зарезервированное слово of
55 В модуле пропущен интерфейс(нет зарезервированного слова)
56 Неправильная перемещаемая ссылка в подпрограмме, написанной на ассемблере.
57 Здесь следует поместить зарезервированное слово then
58 Здесь следует поместить зарезервированное слово to или downto
59 Заголовок подпрограммы объявлен с директивой, но сама подпрограмма далее не описана.
61 При преобразовании типа величины исходного и результирующего типа имеют различные размер
62 Деление на нуль
63 Эта программа работы с файлом не поддерживает данный типа файла
64 Недопустимый типа параметра у подпрограмм Read, Readln, Write, Writeln
65 Эта переменная должна быть типа-указателя
66 Эта переменная должна быть строкового типа
67 Эта выражение должно быть строкового типа
68 Циклическая ссылка модулей друг на друга
69 Имена модуля и файла, в котором он находится, не совпадают
70 Один или несколько используемых модулей изменены после их компиляции
71 Внутренний стек компилятора переполнен из-за глубокой вложенности операторов
72 Ошибка в формате скомпилированного модуля. Возможно, он был скомпилирован предыдущей версией пакета.
73 Пропущена исполнительная часть модуля
74 Недопустимое значение константы
75 Переменная должна быть типа-записи или типа-объекта
76 Используемая константа имеет недопустимое значение
77 Эта переменная должна быть файлового типа
78 Это выражение должно быть типа указателя
79 Это выражение должно быть числовым
80 Метка не из данного блока
81 Меткой уже помечен один оператор
82 Метка объявлена, но ни один оператор ей не помечен
83 Неправильный аргумент у операции
84 В модуле пропущено зарезервированное слово Unit
85 Здесь пропущена точка с запятой
86 Здесь пропущено двоеточие
87 Здесь пропущена запятая
88 Здесь пропущена открывающая круглая скобка
89 Здесь пропущена закрывающая круглая скобка
90 Здесь пропущен знак равенства
91 Здесь пропущен знак присваивания
92 Здесь пропущена открывающая квадратная скобка или скобка с точкой
93 Здесь пропущена закрывающая квадратная скобка или скобка с точкой
94 Здесь пропущена точка
95 Здесь пропущены две точки
96 Размер глобальных переменных программы или локальных переменных подпрограммы превышает 64Кбайт
97 Неправильно параметр цикла FOR
98 Здесь должна быть переменная целого типа
99 Типизированная константа не может быть файлового или процедурного типа
100 Длина строковой константы не соответствует размеру массива символов
101 Порядок следования полей в типизированных константах типа-записи или типа объект а должен соответствовать порядку их следования при объявлении типа.
102 Здесь должна быть строковая константа
103 Здесь должна быть числовая переменная(целого или вещественной типа.
104 Здесь должна быть переменная порядковый тип
105 В подпрограмме с директивой Inline неправильно использован указатель размера
106 Здесь должно быть выражение символьного тип
107 Основная часть программы слишком велика. Следует часть ее выделить в подпрограммы
108 Переполнение при выполнении арифметической операции с числами целого типа
109 Стандартные процедуры Break или Continue используются вне циклов For While или Repeat
110 Превышены допустимые размеры таблицы отладочной информации(больше 64 кбайт)
112 Целая константа в операторе Case должна быть в пределах от -32768 до 32767
113 Ошибка в операторе.
114 Нельзя непосредственно вызвать процедуру прерывания.
116 Типы Single, Double, Extended и Comp можно использовать только при наличии арифметического сопроцессора
117 При использовании команды меню Search|Find error нельзя найти оператор для заданного адреса
118 В данном месте нельзя использовать файл, подключаемый директивой($! filename). Оператор должен полностью находиться в одном файле.
119 Зарезервированное слово inherited использовано не внутри метода объекта или внутри метода объекта, у которого нет предков.
121 Неправильный квалификатор(попытка задать индекс у параметра, не являющегося массивом.
122 Неправильная ссылка на переменную(вероятно, взят указатель, в не величина, на которую он указывает)
123 В программе введено символов больше, чем 64Кбайт. Следует попробовать разделить программ на части.
124 Тело программы не может быть более 24Кбайт. Нужно выделить одну или несколько подпрограмм.
126 Файловую переменную можно передавать в подпрограмму только как параметр переменной
127 Слишком много символов у параметра условной компиляции
128 Пропущена директива компилятора
130 Параметры для условной компиляции, заданные строкой ввода
131 Полный заголовок подпрограмм не соответствует заголовку, объявленному с директивой forward, или заготовку в интерфейсной части модуля
133 Неправильно константное выражение или выражение, используемой в окнах отладки
134 Неправильно завершено выражение
135 Неправильный формат
136 Неправильная косвенная ссылка
137 Недопустимая операция над структурированными данными
138 Файл Turbo.tpl не включает модуль System
139 Нельзя получить этот символ
140 Переполнение при операциях с вещественными числами или деление на ноль
141 Программа, использующая оверлеи, должна быть скомпилирована на диск
142 Здесь должен быть указатель или переменная процедурного типа
143 Неправильный вызов процедуры или функции
144 Попытка использовать модуль в оверлейной программе, который не скомпилирован с директивой
146 Неправильное обращение к файлу(например, запись в файл, применяемый только для чтения, используется имя каталога, а не файл.
147 Здесь должна быть переменная типа объект
148 Нельзя определять переменную типа объект в подпрограмме
149 Этот метод быть виртуальным
150 Здесь должен быть идентификатор метода
151 Конструктор не может быть виртуальным
152 Здесь должен быть идентификатор конструктора
153 Здесь должен быть идентификатор деструктора
154 Процедура Fail вызвана не из конструктора, что недопустимо
155 Неправильный набор операндов у команды ассемблера
156 В команде ассемблера должна быть ссылка на память
157 Нельзя складывать или вычитать перемещаемые операнды в ассемблере
158 Неправильная комбинация регистров
159 Нельзя использовать команды для компьютеров 80286/80287
160 Этот параметр нельзя использовать как операнд в команде ассемблера
162 Здесь должно быть зарезервированное слово asm

 

Таблица 2 Сообщения об ошибках времени выполнения

Номер ошибки Комментарий
1 Вызов несуществующей функции DOS
2 Файл не найден
3 Не найден каталог
4 Нельзя открыть столько файлов. Число открываемых файлов определяется в config.sys
5 Неправильное обращение к файлу
6 Неправильный описатель файлов
12 Неправильный режим доступа к файлу
15 Неправильный номер накопителя
16 Нельзя удалить текущий каталог
17 Нельзя переименовать файл, изменив номер накопителя
18 Процедура Findfirst илиFindNExt не нашла файл
100 Попытка чтения из файла после достижения его конца
101 Ошибка при записи на диск, если он заполнен
102 Попытка работать с файлом, для которого не выполнена процедура Assign
103 Файл не открыт
104 Файл не открыт для чтения
105 Файл не открыт для записи
106 Недопустимый формат целого числа
150 Попытка записать на диск, защищенный от записи
151 Ошибка, формируемая драйвером
152 Внешнее устройство не готово
154 MS DOS определила ошибку в записанных на внешнее устройство данных
156 Ошибка, формируемая MS DOS при поиске данных на диске
157 MS DOS не может распознать тип диска
158 Ошибка, формируемая MS DOS при поиске данных на диске
159 В принтере отсутствует бумага
160 Ошибка на диске при записи
161 Ошибка на диске при чтении
162 Ошибка устройства ввода-вывода
200 Деление числа на ноль
201 Ошибка при контроле допустимого значения
202 Переполнение стека
203 Переполнения демонической памяти
204 Применение процедуры Dispose или FreeMem к незаданному указателю
205 Переполнение вещественного числа
206 Потеря значимости вещественного числа
207 Неправильная операция с вещественными числами
208 Диспетчер оверлеев не инициализирован
209 Ошибка при чтении оверлейного файла
210 Объект не инициализирован
211 Вызван абстрактный метод
215 Переполнение при арифметической операции
216 Неправильная попытка записать информацию в память

 


 


[1] Далее, ТР – сокращение от Turbo Pascal

[2] «8» - символ обозначает клавишу Enter

[3] «8» - символ обозначает клавишу Enter

[4] [ ] обозначает необязательный параметр.




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: