355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Олег Деревенец » Песни о Паскале (СИ) » Текст книги (страница 28)
Песни о Паскале (СИ)
  • Текст добавлен: 6 ноября 2017, 03:30

Текст книги "Песни о Паскале (СИ)"


Автор книги: Олег Деревенец


Жанр:

   

Драматургия


сообщить о нарушении

Текущая страница: 28 (всего у книги 29 страниц)


Рис.179 – Вкладка «Шрифт» (слева) и окно подтверждения (справа)

Результат настройки не заставит себя ждать (рис. 180).


Рис.180 – Русский текст в консольном окне

Приложение В

Особенности IDE Pascal ABCNet

Интегрированная среда разработки Pascal ABCNet пригодна для решения многих задач из этой книги. Я рекомендую её новичкам, делающим первые шаги в изучении Паскаля. Эта IDE проста в установке, не требует настройки, и отличается удобным русскоязычным оконным интерфейсом. IDE Pascal ABCNet создана в стенах Южного федерального университета, её можно бесплатно скачать с сайта http://pascalabc.net.

Ознакомимся с некоторыми особенностями этой IDE.

При первом вызове IDE появляется пустое окно, в которое можно ввести текст программы и сохранить под нужным именем (рис. 181). Если открыть несколько файлов с программами, каждый из них будет помещен в отдельной вкладке.


Рис. 181 – Окно IDE Pascal ABCNet

Готовая программа запускается клавишей F9 или соответствующей кнопкой на панели инструментов.

Результаты, формируемые программой, выводятся в область консоли в нижней части окна (рис. 182). Здесь же расположено поле для ввода данных пользователем. Для завершения ввода нажимается клавиша Enter или кнопка «Ввести». Кнопкой «Завершить» выполнение программы прекращается досрочно, то же самое случится при нажатии комбинации Ctrl+F2.


Рис.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

Неверная длина строки (максимум 255 символов).

26

Type mismatch

Несовместимые типы в операциях присваивания, в выражениях или у индекса массива. Тип фактического параметра при обращении к подпрограмме не соответствует типу формального параметра.

27

Invalid subrange base type

В типе-диапазоне может использоваться только порядковый тип.

28

Lower bound > than upper bound

В типе-диапазоне нижняя граница больше, чем верхняя.

29

Ordinal type expected

Здесь может использоваться только порядковый тип.

30

Integer constant expected

Здесь можно использовать только константу целого типа.

31

Constant expected

Здесь можно использовать только константу.

32

Integer or real constant expected

Здесь можно использовать только числовую константу.

33

Pointer Type identifier expected

Здесь должен быть указатель.

34

Invalid function result type

Недопустимый тип результата функции.

35

Label identifier expected

Здесь должен быть идентификатор метки.

36

BEGIN expected

Здесь ожидается зарезервированное слово BEGIN.

37

END expected

Здесь ожидается зарезервированное слово END.

38

Integer expression expected

Выражение должно быть целого типа.

39

Ordinal expression expected

Выражение должно быть порядкового типа.

40

Boolean expression expected

Выражение должно быть логического типа.

41

Operand types do not match

Типы операндов не совместимы друг с другом.

42

Error in expression

Ошибка, в выражении (например, пропущен знак операции между операндами).

43

Illegal assignment

Неправильно присвоено значение переменной.

44

Field identifier expected

Требуется указать поле записи.

45

Object file too large

Размер объектного файла превышает 64 кбайта.

46

Undefined EXTERN

Не найдена внешняя процедура или функция.

47

Invalid object file record

Файл, по-видимому, не является объектным.

48

Code segment too large

Размер кодового сегмента превышает 65520 байт.

49

Data segment too large

Размер сегмента данных превышает 65520 байт.

50

DO expected

Здесь следует поместить зарезервированное слово DO.

51

Invalid PUBLIC definition

Неправильное использование директивы PUBLIC в подпрограмме, написанной на ассемблере.

52

Invalid EXTRN definition

Неправильное использование директивы EXTRN в подпрограмме, написанной на ассемблере.

53

Too many EXTRN definitions

Слишком много директив EXTRN.

54

OF expected

Здесь следует поместить зарезервированное слово OF.

55

INTERFACE expected

В модуле пропущено зарезервированное слово INTERFACE.

56

Invalid relocatable reference

Неправильная перемещаемая ссылка в подпрограмме, написанной на ассемблере.

57

THEN expected

Здесь следует поместить зарезервированное слово THEN

58

TO or DOWNTO expected

Здесь следует поместить зарезервированное слово TO или DOWNTO

59

Undefined forward

Заголовок подпрограммы объявлен с директивой FORWARD, но сама подпрограмма далее не описана.

61

Invalid typecast

Неверное приведение типов. При преобразовании типа величины исходного и результирующего типа имеют различные размеры.

62

Division by zero

Попытка деления на нуль.

63

Invalid file type

Эта процедура работы с файлом не поддерживает данный тип файла.

64

Cannot read or write variables of this type

Недопустимый тип параметра у процедур Read, Readln, Write, Writeln.

65

Pointer variable expected

Эта переменная должна быть указателем.

66

String variable expected

Эта переменная должна иметь строковый тип.

67

String expression expected

Эта выражение должно иметь строковый тип.

68

Circular unit reference

Циклическая ссылка модулей друг на друга. Необходимо поместить ссылку на модули (USES) в секции IMPLEMENTATION.

69

Unit name mismatch

Имена модуля и файла, в котором он находится, не совпадают.

70

Unit version mismatch

Один или несколько используемых модулей изменены после их компиляции (несоответствие версий модулей). Необходимо выполнить их повторную компиляцию.

71

Internal stack overflow

Внутренний стек компилятора переполнен из-за глубокой вложенности операторов.

72

Unit file format error

Ошибка в формате скомпилированного модуля. Возможно, он был скомпилирован предыдущей версией компилятора.

73

Implementation expected

Пропущено объявление исполнительной части модуля.

74

Constant and case types don't match

Недопустимое значение константы.

75

Record or object variable expected

Переменная должна иметь тип записи или объекта.

76

Constant out of range

Используемая константа имеет недопустимое значение.

77

File variable expected

Эта переменная должна быть файлового типа.

78

Pointer expression expected

Это выражение должно иметь тип указателя.

79

Integer or real expression expected

Это выражение должно быть числовым.

80

Label not within current block

Метка находится за пределами данного блока.

81

Label already defined

Повторное использование метки.

82

Undefined label in preceding stmt part

Метка объявлена, но ни один оператор ею не помечен.

83

Invalid @ argument

Неверный аргумент у операции взятия адреса @.

84

UNIT expected

В модуле пропущено зарезервированное слово Unit.

85

";" expected

Здесь пропущена точка с запятой.

86

":" expected

Здесь пропущено двоеточие.

87

"," expected

Здесь пропущена запятая.

88

"(" expected

Здесь пропущена открывающая круглая скобка.

89

")" expected

Здесь пропущена закрывающая круглая скобка.

90

"=" expected

Здесь пропущен знак равенства.

91

":=" expected

Здесь пропущен знак присваивания.

92

"[" or "(." expected

Здесь пропущена открывающая квадратная скобка или скобка с точкой.

93

"]" or ".)" expected

Здесь пропущена закрывающая квадратная скобка или скобка с точкой.

94

"." expected

Здесь пропущена точка.

95

".." expected

Здесь пропущены две точки.

96

Too many variables

Размер глобальных или локальных переменных подпрограммы превышает 64Кбайт.

97

Invalid FOR control variable

Неправильная переменная цикла FOR.

98

Integer variable expected

Здесь должна быть переменная целого типа.

99

Files types are not allowed here

Файловый или процедурный тип здесь не допускается.

100

String length mismatch

Длина строковой константы не соответствует размеру массива символов.

101

Invalid ordering of fields

Порядок следования полей в типизированных константах типов записи или объекта должен соответствовать порядку их следования при объявлении типа.

102

String constant expected

Здесь должна быть строковая константа.

103

Integer or real variable expected

Здесь должна быть числовая переменная целого или вещественной типа.

104

Ordinal variable expected

Здесь должна быть переменная порядкового типа.

105

INLINE error

Ошибка в подпрограмме с директивой Inline.

106

Character expression expected

Здесь должно быть выражение символьного типа.

107

Too many relocation items

Главная программа слишком велика. Следует выделить часть её в подпрограммы.

108

Overflow in arithmetic operation

Переполнение при выполнении арифметической операции с числами целого типа.

109

No enclosing For, While or Repeat statement

Стандартные процедуры Break или Continue используются вне циклов For, While или Repeat.

110

Cannot run a unit

Программный модуль выполнить нельзя, необходимо написать программу, вызывающую этот модуль.

111

Compilation aborted

Компиляция прервана пользователем

112

CASE constant out of range

Значение константы в операторе CASE вышло за пределы от -32768 до 32767.

113

Error in statement

Ошибка в операторе.

114

Cannot call an interrupt procedure

Нельзя непосредственно вызвать процедуру обработки прерывания.

116

Must be in 8087 mode to compile

Типы Single, Double, Extended и Comp можно использовать только при наличии арифметического сопроцессора.

117

Target address not found

При использовании команды меню «Search | Find error» нельзя найти оператор для заданного адреса.

118

Include files are not allowed here

В данном месте нельзя использовать файл, подключаемый директивой {$I filename}. Оператор должен полностью находиться в одном файле.

119

No inherited methods are accessible here

Зарезервированное слово inherited использовано за пределами метода объекта или внутри метода объекта, у которого нет предков.

121

Invalid qualifier

Неправильный квалификатор, попытка задать индекс у параметра, не являющегося массивом.

122

Invalid variable reference

Неправильная ссылка на переменную, вероятно, не разыменован указатель.

123

Too many symbols

Символические имена программы занимают больше, чем 64 Кбайт. Следует попробовать разделить программу на части.

124

Statement part too large

Блок программы занимает более 24 Кбайт. Необходимо разбить его на процедуры и функции.

126

Files must be var parameters

Файловую переменную можно передавать в подпрограмму только по ссылке VAR.

127

Too many conditional symbols

Слишком много символов у параметра условной компиляции.

128

Misplaced conditional directive

Пропущена часть директивы условной компиляции.

130

Error in initial conditional defines

Ошибка в директиве условной компиляции

131

Header does not match previous definition

Заголовок процедуры не соответствует заголовку, объявленному с директивой FORWARD, или заготовку в интерфейсной части модуля.

133

Cannot evaluate this expression

Нельзя вычислить константное выражение или выражение, используемое в окне отладки.

134

Expression incorrectly terminated

Неправильно завершено выражение.

135

Invalid format specifier

Неправильная спецификация формата.

136

Invalid indirect reference

Неправильная косвенная ссылка.

137

Structured variables are not allowed here

Недопустимая операция над структурированными данными.

138

Cannot evaluate without System unit

В библиотечном файле Turbo.tpl отсутствует модуль System.

139

Cannot access this symbol

Нет доступа к этому символу.

140

Invalid floating-point operation

Переполнение при операциях с вещественными числами или деление на ноль.

141

Cannot compile overlays to memory

Программа, использующая оверлеи, должна быть скомпилирована на диск.

142

Pointer or procedural variable expected

Здесь должен быть указатель или переменная процедурного типа.

143

Invalid procedure or function reference

Неправильный вызов процедуры или функции. Возможно, её требуется скомпилировать в режиме {$F+}.

144

Cannot overlay this unit

Попытка использовать модуль в оверлейной программе, который не скомпилирован с директивой {$O+}.

146

File access denied

Неправильное обращение к файлу (например, запись в файл, доступный только для чтения, или используется имя каталога, а не файл).

147

Object type expected

Здесь должна быть переменная типа объект.

148

Local object types are not allowed

Нельзя определять переменную типа объекта внутри подпрограммы (локально).

149

Virtual expected

Этот метод должен быть виртуальным.

150

Method identifier expected

Здесь должен быть идентификатор метода.

151

Virtual constructors are not allowed

Конструктор не может быть виртуальным.

152

Constructor identifier expected

Здесь должен быть идентификатор конструктора.

153

Destructor identifier expected

Здесь должен быть идентификатор деструктора.

154

Fail only allowed within constructors

Процедура Fail вызвана не из конструктора, что недопустимо.

155

Invalid combination of opcode and operands

Неправильный набор операндов у команды ассемблера.

156

Memory reference expected

В команде ассемблера должна быть ссылка на память.

157

Cannot add or subtract relocatable symbols

Нельзя складывать или вычитать перемещаемые операнды в ассемблере.

158

Invalid register combination

Неправильная комбинация регистров.

159

286/287 instructions are not enabled

Нельзя использовать эту команду для процессоров 80286/80287.

160

Invalid symbol reference

Этот параметр нельзя использовать как операнд в команде ассемблера.

162

ASM expected

Здесь должно быть зарезервированное слово ASM.

Приложение Е

Ошибки исполнения

Номер ошибки

Сообщение

Пояснение

1

Invalid function number

Вызов несуществующей функции MS–DOS.

2

File not found

Не найден файл.

3

Path not found

Не найден каталог.

4

Too many open files

Слишком много открытых файлов. Максимальное число одновременно открываемых файлов определено в системном файле «CONFIG.NT» («CONFIG.SYS»).

5

File access denied

Отказано в доступе к файлу.

6

Invalid file handle

Неправильный описатель файла.

12

Invalid file access code

Неправильный режим доступа к файлу.

15

Invalid drive number

Неправильная буква (номер) устройства.

16

Cannot remove current directory

Нельзя удалить текущий каталог.

17

Cannot rename across drives

Нельзя переименовать файл заменой буквы устройства.

18

No more files

Процедура FindFirst или FindNext не нашла файл.

100

Disk read error

Попытка чтения за концом файла.

101

Disk write error

Ошибка (переполнение ) диска.

102

File not assigned

Обращение с файлом, для которого не выполнена процедура Assign.

103

File not open

Файл не открыт.

104

File not open for input

Файл не открыт для чтения.

105

File not open for output

Файл не открыт для записи.

106

Invalid numeric format

Недопустимый формат целого числа.

150

Disk is write-protected

Запись на защищенный от записи диск.

151

Bad drive request struct length

Ошибка, формируемая драйвером.

152

Drive not ready

Внешнее устройство не готово.

154

CRC error in data

Ошибка при записи на внешнее устройство.

156

Disk seek error

Попытка чтения-записи за пределами файла.

157

Unknown media type

Нельзя распознать тип устройства.

158

Sector Not Found

Не найден сектор диска.

159

Printer out of paper

В принтере нет бумаги.

160

Device write fault

Ошибка на устройстве при записи.

161

Device read fault

Ошибка на устройстве при чтении.

162

Hardware failure

Ошибка устройства ввода-вывода.

200

Division by zero

Деление на ноль.

201

Range check error

Нарушение диапазона.

202

Stack overflow error

Переполнение стека программы.

203

Heap overflow error

Переполнение динамической памяти.

204

Invalid pointer operation

Вызов Dispose или FreeMem с неверным указателем.

205

Floating point overflow

Переполнение вещественного числа.

206

Floating point underflow

Потеря значимости вещественного числа.

207

Invalid floating point operation

Ошибка действия с вещественным числом.

208

Overlay manager not installed

Диспетчер оверлеев не инициализирован.

209

Overlay file read error

Ошибка при чтении оверлейного файла.

210

Object not initialized

Объект не инициализирован.

211

Call to abstract method

Вызван абстрактный метод объекта.

212

Stream registration error

Ошибка регистрации типа данных для потока.

213

Collection index out of range

Выход индекса за пределы коллекции.

214

Collection overflow error

Переполнение коллекции.

215

Arithmetic overflow error

Переполнение в арифметической операции.

216

General Protection fault

Запись в недоступную область памяти.

Приложение Ж

Директивы управления компиляцией

Директивы для настройки реакции на ошибки времени выполнения (Runtime errors)

Директива компилятора

Флажок в окне настройки

Описание

$R

Range Checking

Проверка допустимых диапазонов для индексов массивов и чисел.

$S

Stack Checking

Проверка переполнения стека программы.

$I

I/O Checking

Проверка ошибок ввода-вывода.

$Q

Overflow Checking

Проверка переполнения при целочисленных вычислениях.

Директивы, управляющие синтаксическим контролем (Syntax options)

Директива компилятора

Флажок в окне настройки

Описание

$V

Strict Var Strings

Проверка совместимости типов для строк различной длины.

$B

Complete Boolean Eval

Вычисление полного булевого выражения.

$X

Extended Syntax

Разрешение вызова функций как процедур (возвращаемый результат игнорируется).

$T

Typed @ operator

Проверка совместимости типов указателей.

$P

Open parameters

Разрешение применения открытых параметров процедур и функций.

Директивы условной компиляции

Директива компилятора

Описание

$DEFINE NNN

Определяет идентификатор с именем NNN, который может быть далее использован в директивах условной компиляции вида $IF…

$UNDEF NNN

Отменяет определение идентификатора NNN.

$IFDEF NNN

Разрешает компиляцию последующего текста, если идентификатор NNN был ранее определен. Компилируемый участок текста завершается директивами $ELSE или $ENDIF.

$IFNDEF NNN

Разрешает компиляцию последующего текста, если идентификатор NNN был ранее НЕ определен. Компилируемый участок текста завершается директивами $ELSE или $ENDIF.

$IFOPT

Разрешает компиляцию последующего текста, если указанная опция (директива) компилятора разрешена. Компилируемый участок текста завершается директивами $ELSE или $ENDIF.

$ELSE

Завершает положительную ветвь условной компиляции, последующий текст компилируется, если условие компиляции ложно. Компилируемый участок текста завершается директивой $ENDIF.

$ENDIF

Завершает директиву условной компиляции.

Приложение З

Назначение пунктов меню

Это приложение содержит перевод пунктов меню IDE Free Pascal и Borland Pascal.

Приложение И

Стандартная кодировка символов MS–DOS

Коды управляющих символов (0–31)

Код

Обозначение символа

Назначение или выполняемое действие

0

NUL

Пустой символ

1

SOH

Начало заголовка

2

STX

Начало текста

3

ETX

Конец текста

4

EOT

Конец передачи

5

ENQ

Запрос

6

ACK

Подтверждение

7

BEL

Сигнал (звонок)

8

BS

Забой (шаг назад)

9

HT

Горизонтальная табуляция

10

LF

Перевод строки

11

VT

Вертикальная табуляция

12

FF

Новая страница (прогон формата)

13

CR

Возврат каретки

14

SO

Выключить сдвиг

15

SI

Включить сдвиг

16

DLE

Ключ связи данных

17

DC1

Управление устройством

18

DC2

Управление устройством

19

DC3

Управление устройством

20

DC4

Управление устройством

21

NAK

Отрицательное подтверждение

22

SYN

Синхронизация

23

ETB

Конец передаваемого блока

24

CAN

Отказ

25

EM

Конец среды

26

SUB

Замена

27

ESC

Ключ

28

FS

Разделитель файлов

29

GS

Разделитель группы

30

RS

Разделитель записей

31

US

Разделитель модулей

Символы с кодами 32–127

Код

Символ

Код

Символ

Код

Символ

Код

Символ

32

Пробел

56

8

80

P

104

h

33

!

57

9

81

Q

105

i

34

"

58

:

82

R

106

j

35

#

59

;

83

S

107

k

36

$

60

<

84

T

108

l

37

%

61

=

85

U

109

m

38

&

62

>

86

V

110

n

39

'

63

?

87

W

111

o

40

(

64

@

88

X

112

p

41

)

65

A

89

Y

113

q

42

*

66

B

90

Z

114

r

43

+

67

C

91

[

115

s

44

,

68

D

92

116

t

45

69

E

93

]

117

u

46

.

70

F

94

^

118

v

47

/

71

G

95

_

119

w

48

0

72

H

96

`

120

x

49

1

73

I

97

a

121

y

50

2

74

J

98

b

122

z

51

3

75

K

99

c

123

{

52

4

76

L

100

d

124

|

53

5

77

M

101

e

125

}

54

6

78

N

102

f

126

~

55

7

79

O

103

g

127

Del

Символы с кодами 128–255 (Кодовая таблица 866 – MS-DOS)

Код

Символ

Код

Символ

Код

Символ

Код

Символ

128

А

160

а

192

224

р

129

Б

161

б

193

225

с

130

В

162

в

194

226

т

131

Г

163

г

195

227

у

132

Д

164

д

196

228

ф

133

Е

165

е

197

229

х

134

Ж

166

ж

198

230

ц

135

З

167

з

199

231

ч

136

И

168

и

200

232

ш

137

Й

169

й

201

233

щ

138

К

170

к

202

234

ъ

139

Л

171

л

203

235

ы

140

М

172

м

204

236

ь

141

Н

173

н

205

237

э

142

О

174

о

206

238

ю

143

П

175

п

207

239

я

144

Р

176

208

240

Ё

145

С

177

209

241

ё

146

Т

178

210

242

Є

147

У

179

211

243

є

148

Ф

180

212

244

Ї

149

Х

181

213

245

ї

150

Ц

182

214

246

Ў

151

Ч

183

215

247

ў

152

Ш

184

216

248

°

153

Щ

185

217

249

154

Ъ

186

218

250

·

155

Ы

187

219

251

156

Ь

188

220

252

157

Э

189

221

253

¤

158

Ю

190

222

254

159

Я

191

223

255

Примечание. Символы с кодами 128-255 предназначены для национальных алфавитов и символов псевдографики.

Приложение К

Некоторые встроенные процедуры и функции

Работа с текстовыми файлами

Assign(F, Name)

Назначает файловой переменной F имя файла

Name.

Reset(F)

Открывает файл F для чтения устанавливает позицию чтения в начало файла.

Rewrite(F)

Открывает файл для записи; в существующем файле старое содержимое стирается.

Write(F, …)

Записывает данные в файл на текущей строке.

Writeln(F, …)

Записывает данные в файл на текущей строке и добавляет признак конца строки.

Eoln(F)

Возвращает

TRUE

, если позиция чтения находится в конце строки.

Eof(F)

Возвращает

TRUE

, если позиция чтения находится в конце файла.

Read(F, …)

Читает данные из файла, пропуская признаки конца строки.

Readln(F, …)

Читает данные в текущей строке и переводит позицию чтения в начало следующей строки.

Close(F)

Закрывает ранее открытый для чтения или записи файл

F.

Генерация случайных чисел

Random(N)

Возвращает псевдослучайное целое число в диапазоне от 0 до N–1

Randomize

Изменяет псевдослучайную последовательность функции

Random

при каждом запуске программы.

Обработка строк

Length(S)

Возвращает длину строки S

Pos(S1, S2)

Возвращает позицию строки

S1

в строке

S2

Insert(S1, S2, Index)

Вставляет строку

S1

в строку

S2

начиная с позиции

Index

Copy(S, Index, Count)

Возвращает часть строки S, начиная с позиции

Index

длиной

Count

символов

Delete(S, Index, Count)

Удаляет часть строки S, начиная с позиции

Index

длиной

Count

символов

UpCase(Ch)

Переводит латинские буквы в верхний регистр

Действия с переменными любого типа

SizeOf(…)

Возвращает объём памяти, занимаемый переменной (или типом данных)

FillChar(X, Size, Val)

Заполняет переменную X значением

Val

. Параметр

Size

определяет количество заполняемых байтов.

Действия с переменными порядковых типов

Ord(X)

Возвращает код символа X

Chr(N)

Возвращает символ с кодом N

Succ(N)

Возвращает следующее значение порядкового типа

Pred(N)

Возвращает предыдущее значение порядкового типа

Inc(N)

Увеличивает число N на единицу

Dec(N)

Уменьшает число N на единицу

Усечение и округление действительных переменных

Trunc(R)

Возвращает целую часть действительного числа R

Round(R)

Возвращает округленное действительное число R

Динамические переменные и куча

New(P)

Создает новую динамическую переменную P

Dispose(P)

Уничтожает динамическую переменную P

MemAvail

Возвращает общий объём свободной памяти в куче

MaxAvail

Возвращает размер наибольшего свободного блока памяти в куче

Приложение Л

Перечень программ

Глава

Файл

Содержание программы

5

P_05_1

Вывод сообщения «Привет!»

7

P_07_1

Вывод приветствие на нескольких строках

8

P_08_1

Приветствие по имени

9

P_09_1

Приветствие по имени и фамилии

P_09_2

Приветствие по имени и фамилии (второй вариант)

P_09_3

Вывод «СПАРТАК – чемпион!»

10

P_10_1

Проверка пароля, версия 1

P_10_2

Проверка пароля, версия 2

11

P_11_1

Проверка пароля, версия 3

12

P_12_1

Проверка пароля в цикле, версия 1

P_12_2

Проверка пароля в цикле, версия 2

P_12_2

Проверка пароля в цикле, версия 3

13

P_13_1

Ввод данных со спутника (булевы переменные)

14

P_14_1

Экзамен по таблице умножения, версия 1

15

P_15_1

Случайные числа, версия 1

P_15_2

Случайные числа, версия 2

P_15_3

Экзамен по таблице умножения, версия 2

16

P_16_1

Вопрос-ответ, версия 1

17

P_17_1

Экзамен по таблице умножения, версия 3

18

P_18_1

Распечатка строки по вертикали, версия 1


    Ваша оценка произведения:

Популярные книги за неделю