Песни о Паскале — страница 107 из 112



Рис.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Спецификатор виртуального метода объекта

Приложение ДОшибки компиляции

Номер ошибкиСообщениеПояснение
1Out of memoryНедостаточно оперативной памяти для работы компилятора. Воспользуйтесь средствами расширения оперативной памяти MS–DOS.
2Identifier expectedВ данном месте программы должен находиться идентификатор. Возможно, имеется попытка использовать зарезервированное слово.
3Unknown identifierНеизвестный (не определенный ранее) идентификатор.
4Duplicate identifierПовторное определение идентификатора.
5Syntax errorСинтаксическая ошибка (нарушены правила написания предложения).
6Error in real constantОшибка в изображении вещественного числа.
7Error in integer constantОшибка в изображении целого числа.
8String constant exceeds lineСтроковая константа превышает допустимый размер (255 символов). Вероятно, пропущена закрывающая кавычка.
10Unexpected end of fileНеожиданное завершение программы. Вероятно, не сбалансировано число зарезервированных слов begin и end, неправильно оформлен файл.
11Line too longКомпилируемая строка программы превышает 127 символов.
12Type identifier expectedВ данном месте программы требуется идентификатор типа.
13Too many open filesПопытка открыть в среде программирования количество файлов больше, чем допускается в операционной системе. Максимальное число одновременно открываемых файлов определяется строкой FILES=NN в файле CONFIG.SYS.
14Invalid file nameНеверный путь или имя файла.
15File not foundФайл не найден ни в текущем, ни в заданном каталоге.
16Disk fullНедостаточно места на диске, куда записывается информация.
17Invalid compiler directiveОшибка в директиве компилятора, или она используется в недопустимом месте.
18Too many filesСлишком много файлов используется при компиляции.
19Undefined type in pointer defПри определении типа-указателя используется неизвестный базовый тип.
20Variable identifier expectedВ данном месте программы должен быть идентификатор переменной.
21Error in typeОшибка в определении типа.
22Structure too largeРазмер данных превышает ограничение в 65520 байт.
23Set base type out of rangeТип-множество имеет более 256 элементов или содержит элементы с порядковым номером за пределами 0..255.
24File components may not be files or objectsКомпонентами файловой переменной не могут быть файлы или объекты.
25Invalid string length