Рис.182 – Протокол работы запущенной программыЗапуск программы в пошаговом режиме выполняется кнопками на панели инструментов, либо через меню. В пошаговом режиме доступен просмотр локальных переменных (рис. 183), а также другой информации о программе (на соседних вкладках).
Разработчики IDE Pascal ABCNet стремились, очевидно, к совместимости её со «стандартной» IDE Borland Pascal в той мере, насколько это возможно. Но объектная технология «точка Net» диктует своё, – полной совместимости не получилось.
Рис.183 – Просмотр переменных в пошаговом режимеТак, например, в данной IDE не существует встроенной функции Assigned. Но вы можете написать её сами.
function Assigned (p: pointer): boolean;
begin
Assigned:= p <> nil
end;
Ниже перечислены другие особенности Pascal ABCNet, которые следует учесть при переделке примеров данной книги.
• Отсутствует процедура FillChar. Записи и массивы нужно заполнять явным образом.
• Нельзя назначать файловым переменным пустое имя, связывая их, таким образом, с экраном и клавиатурой.
• Под символ отводится не один, а два байта (используется UNICODE).
• Строки являются объектами, поэтому доступ к нулевому элементу (байту длины) невозможен.
Приложение ГЗарезервированные слова
Ключевые слова, которые нельзя применять по иному назначению.
Ключевое слово Назначение AND Операция логического умножения «И» ARRAY Объявление массива ASM Начало блока инструкций на ассемблере BEGIN Начало блока операторов CASE Начало оператора множественного выбора CONST Начало секции объявления констант CONSTRUCTOR Объявление конструктора объекта DESTRUCTOR Объявление деструктора объекта DIV Операция целочисленного деления DO Элемент операторов FOR, WITH, WHILE DOWNTO Элемент оператора цикла FOR-DOWNTO-DO ELSE Элемент условных операторов IF, CASE END Завершение блоков BEGIN-END, CASE-END, ASM-END, RECORD-END EXPORTS Объявление списка экспорта для DLL FALSE Логическое значение «ЛОЖЬ» FILE Тип файловой переменной FOR Элемент оператора цикла FOR-TO-DO FUNCTION Объявление функции GOTO Безусловный переход на метку IF Элемент условного оператора IF-THEN-ELSE IMPLEMENTATION Объявление секции реализации модуля IN Проверка принадлежности элемента множеству INHERITED Квалификатор унаследованного метода объекта INLINE Оператор вставки ассемблерных кодов INTERFACE Объявление секции интерфейса модуля LABEL Объявление меток LIBRARY Объявление библиотечного модуля MOD Операция нахождения остатка от деления NIL Пустой указатель NOT Логическое отрицание «НЕ» OBJECT Объявление типа «объект» OF Элемент оператора CASE-OF-END OR Логическое сложение «ИЛИ» PACKED Объявление упакованного массива (устарело) PROCEDURE Объявление процедуры PROGRAM Объявление программы RECORD Начало объявления записи RECORD-END REPEAT Элемент оператора цикла с проверкой в конце REPEAT-UNTIL SET Объявление множества SET OF SHL Операция сдвига влево SHR Операция сдвига вправо STRING Объявление строкового типа THEN Элемент условного оператора IF-THEN-ELSE TO Элемент оператора цикла FOR-TO-DO TRUE Логическое значение «ИСТИНА» TYPE Начало секции объявления типов UNIT Объявление имени модуля UNTIL Элемент оператора цикла с проверкой в конце REPEAT-UNTIL USES Объявление внешних модулей VAR Начало секции объявления переменных WHILE Элемент оператора цикла с проверкой в начале WHILE-DO WITH Элемент оператора раскрытия записи WITH-DO XOR Логическое сравнение («ИСКЛЮЧАЮЩЕЕ ИЛИ» )
Директивы, имена которых не рекомендуется использовать по иному назначению.
Директива Назначение в Borland Pascal ABSOLUTE Назначение переменной абсолютного адреса в памяти ASSEMBLER Объявление процедуры на ассемблере EXPORT Список экспорта EXTERNAL Объявление внешних имен для ассемблера FAR Спецификатор процедуры с «дальним» вызовом FORWARD Предварительное определение процедуры или функции INDEX Указание индекса процедуры в DLL INTERRUPT Спецификатор процедуры обработки прерывания NAME Импорт процедуры из DLL по имени NEAR Спецификатор процедуры с «ближним» вызовом PRIVATE Начало секции приватных полей объекта PUBLIC Начало секции публичных полей объекта RESIDENT Спецификатор резидентного элемента DLL VIRTUAL Спецификатор виртуального метода объекта
Приложение ДОшибки компиляции
Номер ошибки Сообщение Пояснение 1 Out of memory Недостаточно оперативной памяти для работы компилятора. Воспользуйтесь средствами расширения оперативной памяти MS–DOS. 2 Identifier expected В данном месте программы должен находиться идентификатор. Возможно, имеется попытка использовать зарезервированное слово. 3 Unknown identifier Неизвестный (не определенный ранее) идентификатор. 4 Duplicate identifier Повторное определение идентификатора. 5 Syntax error Синтаксическая ошибка (нарушены правила написания предложения). 6 Error in real constant Ошибка в изображении вещественного числа. 7 Error in integer constant Ошибка в изображении целого числа. 8 String constant exceeds line Строковая константа превышает допустимый размер (255 символов). Вероятно, пропущена закрывающая кавычка. 10 Unexpected end of file Неожиданное завершение программы. Вероятно, не сбалансировано число зарезервированных слов begin и end, неправильно оформлен файл. 11 Line too long Компилируемая строка программы превышает 127 символов. 12 Type identifier expected В данном месте программы требуется идентификатор типа. 13 Too many open files Попытка открыть в среде программирования количество файлов больше, чем допускается в операционной системе. Максимальное число одновременно открываемых файлов определяется строкой FILES=NN в файле CONFIG.SYS. 14 Invalid file name Неверный путь или имя файла. 15 File not found Файл не найден ни в текущем, ни в заданном каталоге. 16 Disk full Недостаточно места на диске, куда записывается информация. 17 Invalid compiler directive Ошибка в директиве компилятора, или она используется в недопустимом месте. 18 Too many files Слишком много файлов используется при компиляции. 19 Undefined type in pointer def При определении типа-указателя используется неизвестный базовый тип. 20 Variable identifier expected В данном месте программы должен быть идентификатор переменной. 21 Error in type Ошибка в определении типа. 22 Structure too large Размер данных превышает ограничение в 65520 байт. 23 Set base type out of range Тип-множество имеет более 256 элементов или содержит элементы с порядковым номером за пределами 0..255. 24 File components may not be files or objects Компонентами файловой переменной не могут быть файлы или объекты. 25 Invalid string length