Средства работы с файлами модуля SysUtils 17.3.1. <...> Компилятор распространяется на 8 условиях GNU General Public License, а значительная часть библиотек, в том числе ядро библиотеки реального времени RTL — на условиях более мягкой GNU Lesser General Public License. <...> Основы FPC FPC — это 32-разрядный кроссплатформенный компилятор языка Pascal. <...> Наиболее распространены две ИСР: FreePascal (FP) обеспечивает пользователю комфортный интерфейс. <...> Структура программы: program <имя>; uses // Заголовок программы // Список модулей, не обязателен label const type var <список модулей> <Список меток>; <Список констант>; <Список определений типа>; <Список имен переменных>; procedure ProcName(<Список формальных параметров>); <Тело процедуры>; function FuncName(Список формальных параметров):<Тип_результата>; <Тело функции>; begin <Инструкции> end. <...> // Не обязательно // Не обязательно Имя модуля обязательно, оно используется для связи с вызывающей программой. <...> Ссылка на модули в вызывающей программе в строке: uses <список модулей>. <...> Инициирующая часть initialization содержит инструкции, которые выполняются до передачи управления вызывающей программе. <...> Компилятор FPC содержит встроенные модули библиотеки RTL для разных платформ: Стандартные. <...> Модуль System Модуль System подключается к программе автоматически всегда, в списке используемых модулей не отображается. <...> Модуль SysUtils Модуль SysUtils содержит функции разного назначения. <...> Геометрические функции Вызов Hypot(x, y) Norm(d) Max(a, b) MaxIntValue(d) MaxValue(d) Min(a, b) MinValue(d) Power(X, y) IntPower(X, y) LdExp(X, p) LnXp1(x: float):float Log10(x: float):float Log2(a,b:integer):integer LogN(d:array of etended):extended Ceil(x:float):integer Floor(x:float):integer FrExp(x:float; var mant; var exp:integer) Операция Гипотенуза треугольника с катетами x, y. <...> Описание GradToRad(x:float):float GradToDeg(x:float):float RadToCycle(x:float):float RadToDeg(x:float):float RadToGrad(x) :float <...>
Программирование_на_языке_FreePascal._Часть_1._Основы_языка_Учебное_пособие_для_студентов_направления_«Информатика_и_вычислительная_техника»_.pdf
Оглавление
1. Список литературы
2. Введение
2.1. История FPC
2.2. Основы FPC
2.3. Режимы FPC
2.4. Интегрированные среды разработки
3. Программа на FPC
4. Модули
4.1. Модуль System
4.1.1. Разные средства
4.1.2. Средства работы с операционной системой
4.1.3. Математические функции
4.1.4. Средства работы с динамическими переменными
4.2. Модуль SysUtils
4.3. Модуль ObjPas
4.4. Модуль Math
4.4.1. Геометрические функции
4.4.2. Определение максимума/минимума
4.4.3. Экспоненциальные и логарифмические функции
4.4.4. Функции преобразования чисел
4.4.5. Функции преобразования единиц
4.4.6. Тригонометрические функции
4.4.7. Гиперболические функции
4.4.8. Статистические функции
5. Директивы компилятора
16
5.1. Глобальные директивы
5.2. Локальные директивы
6. Язык и средства FPC
19
6.1. Стандартные литералы
6.2. Специальные символы
6.3. Лексемы языка
6.4. Комментарии
6.5. Зарезервированные слова
6.5.1. В режиме Turbo Pascal
6.5.2. В режиме Delphi
6.5.3. В режиме FPC
6.5.4. Модификаторы
6.6. Разделители
6.7. Идентификаторы
6.8. Числа
6.9. Метки
6.10. Символьные строки
19
19
20
21
21
21
23
23
23
24
24
25
26
26
3
16
17
10
10
12
12
12
12
13
13
13
13
14
14
14
14
14
15
15
15
8
8
8
9
9
9
Стр.3
6.11. Константы
6.11.1. Истинная константа
6.11.2. Типизированные константы
6.11.3. Ресурсные строки
7. Типы
7.1. Базовые (простые) типы
7.1.1. Порядковые типы
7.1.2. Вещественные (действительные) типы
7.2. Символьные типы
7.2.1. Символы
7.2.2. Строки
7.3. Структурированные типы
7.3.1. Массивы
7.3.2. Записи (комбинированные типы)
7.3.3. Множества
7.3.4. Файлы
7.4. Указатели
7.5. Типы пользователя
7.5.1. Перечислимый тип
7.5.2. Интервальный
7.6. Процедурный тип
7.7. Тип Variant
7.8. Тип дата-время
7.9. Совместимость типов
7.9.1. Идентичность
7.9.2. Совместимость типов для сравнений
7.9.3. Совместимость типов для присваивания
8. Переменные
9. Классы и объекты
9.1. Объекты
9.2. Классы
9.2.1. Инкапсуляция
9.2.2. Наследование
9.2.3. Полиморфизм
9.2.4. Создание класса
9.2.5. Поля класса
9.2.6. Свойства класса
9.2.7. Методы класса/объекта
9.3. Создание и удаление объекта
9.4. Работа с объектом
9.5. Обработка событий
9.6. Совместимость объектов в операторах присвоения
10. Интерфейсы
10.1. Интерфейсы и технология COM
10.2. CORBA и другие интерфейсы
49
50
50
4
42
42
42
43
44
44
44
45
45
45
46
47
48
49
49
28
29
29
30
31
31
33
35
35
36
37
38
38
38
39
39
39
40
41
41
41
41
42
26
26
27
28
Стр.4
11. Шаблоны (дженерики)
12. Выражения
12.1. Арифметические операции
12.2. Строковые операции
12.3. Операции сравнения
12.4. Логические операции
12.4.1. Операция not - отрицание ("НЕ")
12.4.2. Операция or - логическое сложение ("ИЛИ")
12.4.3. Операция and - логическое умножение ("И")
12.4.4. Операция xor - исключающее "ИЛИ"
12.4.5. Операция shl - логический сдвиг влево
12.4.6. Операция shr - логический сдвиг вправо
12.5. Операции над указателями
12.6. Операции над множествами
12.6.1. Основные операции
12.6.2. Процедуры для множеств
12.7. Операции над классами
12.8. Приоритеты операций
13. Инструкции
13.1. Простые инструкции
13.1.1. Инструкции присваивания
13.1.2. Инструкция безусловного перехода
13.1.3. Пустая инструкция
13.1.4. Инструкция вызова процедуры
13.2. Структурированные инструкции
13.2.1. Блочная инструкция
13.2.2. Условные инструкции
13.2.3. Инструкции циклов
13.2.4. Инструкция доступа with
14. Обработка исключений
14.1. Инструкция Raise
14.2. Инструкция try...except
14.3. Инструкция try...finally
15. Использование ассемблера
16. Процедуры и функции
16.1. Формальные и фактические параметры
16.2. Процедура
16.3. Функция
16.4. Области действия имен
16.5. Нетипизированные параметры
16.6. Директивы подпрограмм
16.6.1. Директива External
16.6.2. Директива Overload. Перезагрузка функций
16.6.3. Процедура Exit
17. Средства работы с файлами в FPC
78
5
70
70
71
71
72
72
72
73
74
75
75
75
76
76
77
56
56
56
57
58
58
58
58
58
63
69
50
50
51
51
51
52
52
52
53
53
53
54
54
55
55
55
55
56
Стр.5
17.1. Файловые типы
17.1.1. Типизированные файлы
17.1.2. Текстовые файлы
17.1.3. Нетипизированные файлы
17.2. Операции над файлами модуля System
17.2.1. Установочные и завершающие операции
17.2.2. Операции перемещения по файлу
17.2.3. Операции ввода/вывода
17.2.4. Специальные операции
17.2.5. Текстовые файлы в модуле System
17.2.6. Типизированные файлы в модуле System
17.2.7. Нетипизированные файлы в модуле System
17.3. Средства работы с файлами модуля SysUtils
17.3.1. Атрибуты файлов
17.3.2. Режимы файлов
17.3.3. Установочные и завершающие операции
17.3.4. Операции перемещения по файлу
17.3.5. Операции ввода/вывода
17.3.6. Специальные операции
17.3.7. Работа с файлами средствами SysUtils
18. Динамическая память
18.1. Свойства указателей
18.2. Средства работы с динамической памятью
18.3. Работа с динамическими структурами
19. Модули
19.1. Модуль общего назначения
19.1.1. Структура модуля
19.1.2. Модуль комплексной арифметики
19.2. Динамически связываемая библиотека DLL
19.2.1. Введение
19.2.2. Структура DLL
19.2.3. DLL комплексной арифметики
20. Работа со строками
20.1. Структура строк
20.1.1. Строка ShortString
20.1.2. Строка AnsiString = LongString
20.1.3. Строка WideString
20.1.4. Строка PChar
20.1.5. Строка PWideChar
20.2. Методы обработки строк
20.3. Строки String
20.3.1. Средства модуля System
20.3.2. Средства модуля SysUtils
20.3.3. Примеры
20.4. Строки PChar
97
97
97
97
97
97
98
98
98
98
98
99
101
6
92
92
92
93
94
94
95
96
78
79
79
79
80
80
80
80
82
82
84
85
86
86
86
86
87
87
88
88
89
89
90
90
Стр.6
21. Отладка программ
21.1. Введение
21.2. Классификация ошибок
21.2.1. Введение
21.2.2. Синтаксические ошибки
21.2.3. Ошибки времени выполнения
21.2.4. Алгоритмические ошибки
21.2.5. Предотвращение и обработка ошибок
105
105
105
105
105
105
106
106
7
Стр.7
1. Список литературы
1. Ван Кеннейт М.. Справочное руководство для FPC. 2005.
2. Van Canneyt M. Free Pascal: Reference Guide. 2007.
3. Van Canneyt M. Free Pascal: Programmer‘s manual. 2007.
4. Van Canneyt M., Klampfl F. Free Pascal: Users‘ manual. 2007.
5. Van Canneyt M. Free Pascal code documenter: Reference manual. 2007.
6. Van Canneyt M. Free Component Library (FCL): Reference guide.2007.
7. Van Canneyt M. Run-Time Library (RTL). Reference guide. 2007.
8. Van Canneyt M. Free Component Library (FCL): Reference guide. 2007.
9. http://www.FPC.org/down/i386/win32-ftp.FPC.org.html
10. http://www.FPC.org/download.html
11. Рудюк С.А., Lazarus - кросс-платформенный Delphi. Программирование для
свободных людей. Компания НеРуСофт
12. Акчурин Э.А. Программирование на языке высокого уровня. Учебное пособие.
Самара, ПГАТИ, 2003.
13. Акчурин Э.А. , Стефанова И.А. Программирование в среде Delphi. Методические
указания к лабораторным работам. Самара, ПГАТИ, 2003.
14. Акчурин Э.А. Задания и методические указания к курсовой работе. ПГАТИ,
2001.
2. Введение
2.1. История FPC
В 1970 году Никлаусом Виртом был создан язык программирования Pascal, как
язык для обучения процедурному программированию. Особенностями языка
являются строгая типизация, средства структурного (процедурного) программирования,
сведены к минимуму возможные синтаксические неоднозначности,
а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.
Достоинства языка заставляли многие коммерческие и некоммерческие организации
разрабатывать системы программирования на основе языка Паскаль. Из
них выделяется разработка от Borland - язык Turbo Pascal, в котором устранены
многие недостатки языка, добавлены новые возможности. Язык стал богаче, но
одновременно, потерял переносимость и общность. Развитием языка Borland
Pascal является Object Pascal — версия языка Паскаль, расширенная средствами
объектно-ориентированного программирования. Последние версии Borland
Pascal лежат в основе среды программирования Delphi.
Важным шагом в развитии языка, является появление свободных версий
языка Паскаль. В настоящий момент пользуются популярностью такие версии,
как TMT Pascal, FPC (Free Pascal Compiler) и GNU Pascal. Продолжает использоваться
и Borland Pascal.
Реализация языка Delphi проектом FPC позволяет использовать его для
создания приложений не только в Windows, но и для платформ Mac OS X,
Windows CE и Linux. Важной особенностью компилятора FPC, в отличие, например,
от GNU Pascal, является ориентация на распространѐнные коммерческие
диалекты языка: Object Pascal и Delphi. Компилятор распространяется на
8
Стр.8