- •С примерами на Object pascal (72 часа)
- •Введение
- •1.1. Основной принцип структурного программирования
- •1.2. Основные задачи структурного программирования
- •1.3. Основные принципы объектно-ориентированного программирования (ооп)
- •2.1. Алфавит языка pascal. Идентификаторы.
- •2.2. Простые и составные специальные символы, используемые на пк.
- •2.3. Стандартные типы данных. Двоичное представление чисел и дополнительный код.
- •2.4. Особенности работы с некоторыми типами данных
- •2.5. Арифметические операторы.
- •2.6. Логические операторы и операции отношения.
- •2.7. Потеря точности, потеря порядка и переполнение при арифметических операциях.
- •2.8. Структура простейшей программы.
- •2.9. Простейшие операторы языка Object pascal
- •1) Цикл от меньшего к большему значению:
- •2) Цикл от большего к меньшему значению:
- •2.10. Структурные типы данных
- •2.11. Указатели. Динамические переменные. Динамическое выделение и высвобождение памяти
- •2.12. Процедуры и функции. Формальные и фактические параметры. Передача параметров по ссылке, по значению и через указатель.
- •2.13. Локальные и глобальные переменные. Побочный эффект функции. Вложенность процедур и функций. Правила видимости.
- •2.14. Пример на правила видимости и передачи параметров
- •2.15. Рекурсия
- •2.1. Инкапсуляция. Объект. Поля данных и методы объекта
- •3.2 Задание модуль класса (статическая объектная модель)
- •4.10. Создание и уничтожение объектов. Конструкторы и деструкторы.
- •4.11. Наследование. Статические, виртуальные, динамические и абстрактные методы.
- •4.12. Области видимости объектов.
- •4.13. Обработка исключительных ситуаций.
- •4.14. Специальные средства для работы с ms Windows: сообщения.
- •4.15. События и их делегирование. Обработка событий.
- •4.16. Методы класса и указатели на класс.
- •4.17. Дополнительные возможности Object Pascal.
- •5. Визуальное проектирование в среде Delphi.
- •5.8. Создание экранных форм. Инспектор объектов.
- •5.9. Палитра компонентов.
- •6. Интерфейсы и множественное наследование
- •6.1. Общие представления об интерфейсах в Object pascal
- •6.2. Реализация интерфейсов свойством
- •6.3. Различение имен при реализации нескольких интерфейсов
- •5.11. Спецификаторы вызовов процедур и функций
- •5.12. Динамические массивы
- •5.13. Перезагрузка (overloading) методов, процедур и функций
- •5.14. Параметры по умолчанию
- •5.17. Технологии dde и ole
- •5.18. Технология ActiveX
- •5.20. Использование библиотек OpenGl и glu
- •5.21. Создание программистом собственного компонента Литература
2.3. Стандартные типы данных. Двоичное представление чисел и дополнительный код.
Целые типы
Byte: 0..255 — байтовый (1 байт)
ShortInt: -128..127 — короткое целое (1 байт)
Word: 0..65535 — 16-ричное слово (2 байта)
Integer(в C, C++,…-int) — целые. Начиная с Delphi3 по умолчанию идентичен longInt – см.далее
LongInt: -2147483648..2147483647 — длинное целое (диапазон примерно
-2e9..2e9, размер 4 байта)
LongWord – 32-битные без знака (4байта)
Int64 – 64-битные со знаком (8 байт) – имеют особенности в правилах приведения типа
Вещественные типы
Real(в C - float) — вещественные, (изначально был 6 байт, 11..12 значащих цифр мантиссы): 0.0, 0.1, 1e6,2.9e-39, -1.7e38
Начиная с Delphi3 по умолчанию идентичен Double (см. далее)
Double: 5.0e-324..1.7e308 — двойная точность (8 байт, 15..16 значащих
цифр мантиссы)
Extended: 1.9e-4951..1.1e4932 — расширенная точность (10 байт, 19..20
значащих цифр мантиссы)
Булевский (логический) тип
Boolean (1 байт): величины этого типа принимают только значения true или false.Во всех C-образных языках кроме Java идентичен байтовому типу
Символьный (литерный) тип
Char (1 байт): один символ. 'A', 'b', '*', ' ', '/'. (Существует в Java, в других C-образных языках идентичен байтовому типу. В Java константы символьного типа пишутся в двойных кавычках: “A”, “b” и т.д).
Строковый тип
String (не менее 4 байт): произвольное число символов (от 0 до 2e9). 'A', 'abcd', 'мама моет раму', ' '. Работа со строками в Object PASCAL не имеет аналогов по мощности и удобству в других языках программирования
Двоичное представление целых положительных чисел
…
Двоичное представление целых отрицательных чисел
…
Двоичное представление вещественных чисел
Двоичные дроби. … Мантисса и логарифм…
2.4. Особенности работы с некоторыми типами данных
64-битовые целые
Описание:
Var a:Int64;
Значения — 263 … 263 -1 - знаковые 64-битные.
Преобразование обычного числа в 64-битовое – с помощью функции Int64.
Примеры задания 64-битных статических переменных (о том, что это такое, см. :
const Num64=Int64(17);
const Num64b:Int64=17;
const Num64c=3000000000;
Вызовы осуществляются только с 64-битными числами во всех частях выражения:
a:=a+Int64(1);
32-битовые без знака — Longword;
0..4294967295 (то есть чуть больше 4*109 ) — то есть то же, что Cardinal;
Изменения в типе Real
Был 48-битовым, теперь идентичен 64-битовому Double. Для совместимости можно использовать тип Real48 либо ставить опцию компилятору
{REALCOMPATIBILITY ON}
2.5. Арифметические операторы.
Бинарные полиморфные (тип результата определяется по правилам приведения типов,
см. далее):
+ сложение (все целые и вещественные типы, строковые типы, множества).
Пример: a+b
- вычитание (все целые и вещественные типы, множества): a-b
* умножение (все целые и вещественные типы, множества): a*b
/ деление (все целые и вещественные типы, результат — вещественный):
a/b
Бинарные неполиморфные целочисленные:
div — целочисленное деление. Пример: a div b
mod — остаток от целочисленного деления a mod b
(в C-образных %):
and — побитовое "И" (в C-образных &) a and b
or — побитовое "ИЛИ"(в C-образных | ) a or b
xor — побитовое "исключающее ИЛИ"(в C-образных ^ ) a xor b
shl — побитовый сдвиг влево(в C-образных <<) a shl b
shr — побитовый сдвиг вправо(в C-образных >>) a shr b
Унарные полиморфные:
+ сохранение знака (целые и вещественные типы). Пример: +a
изменение знака на противоположный(целые и вещественные типы).
Пример: -a
Унарные целочисленные:
not побитовое "НЕ" (целые типы). Пример: not a