Рисунок 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] [ ] обозначает необязательный параметр.