
- •1.Язык Object Pascal. Алфавит языка. Операторы. Выражения. Структура программы.
- •2. Простые типы данных. Преобразование типов. Приведение типов. Составной оператор.
- •3. Управляющие конструкции языка.
- •3.1 Безусловные конструкции
- •3.2 Условные конструкции.
- •3.3 Циклические конструкции.
- •4. Комментарии в крограммах. Директивы.
- •5. Структурные типы данных.
- •5.3 Записи.
- •6. Подрограммы.
- •6.1 Процедуры и функции. Состав. Синтаксис.
- •6.2 Список формальных параметров.
- •6.3 Параметры-значения. Параметры-переменные. Параметры-константы. Нетипизированные параметры.
- •6.4 Передача массивов в подпрограммы. Параметры типа открытый массив.
- •6.5 Локальные переменные. Область видимости. Время жизни.
- •6.6 Рекурсия. Виды рекурсии. Опережающее описание подпрограмм.
- •6.7 Процедурные типы
- •7. Модули
- •7.1 Назначение. Синтаксис.
- •8. Файлы
- •8.1 Общий алгоритм работы с файлом.
- •8.2 Подпрограммы для открытия файла.
- •8.3 Типизированные файлы. Режимы доступа к файлу. Переменная Filemode.
- •8.4 Обработка ошибок ввода-вывода.
- •8.5 Нетипизированные файлы.
- •8.6 Текстовые файлы
- •9. Динамическая память и указатели.
- •9.1 Указатель. Синтаксис. Допустимые операции.
- •9.2 Типизированные и нетипизированные указатели.
- •9.3 Операция резадресации (разыменования) указателя. Операции взятия адреса. Пустой указатель.
- •10. Типы с управляемым временем жизни.
- •10.1 Длинные строки. Механизм подсчета ссылок.
- •12.2 Динамические массивы.
- •11. Динамические структуры данных. Связные списки. Вставка и удаление узлов.
- •11.1 Односвязные списки. Структура. Особенности обработки.
- •11.2 Двусвязные списки
- •11.3 Кольцевые списки.
- •12. Отладка программ.
- •12.1 Виды программных ошибок.
- •12.2 Отладка программ.
- •12.3 Принципы контрактного программирования.
- •12.4 Принципы модульного тестирования.
- •12.5 Трассировка. Точки контрольного останова
- •12.6 Ведение протокола программы.
- •12.8 Основные принципы оформления исходного кода программы.
- •13. Алгоритмы
- •13.1 Алгоритм последовательного поиска.
- •13.2 Алгоритм бинарного поиска.
- •13.3 Алгоритм интерполирующего поиска.
- •13.4 Алгоритм вставки элемента в отсортированный массив.
- •13.5 Алгоритм поиска минимального (максимального) элемента массива.
- •13.6 Алгоритм пузырьковой сортировки.
- •13.7 Алгоритм сортировки перемешиванием.
- •13.8 Алгоритм сортировки прочесыванием.
- •13.9 Алгоритм сортировки методом выбора.
- •13.10 Алгоритм сортировки методом вставок.
- •13.11 Алгоритм сортировки методом Шелла.
- •13.12 Алгоритм сортировки слиянием.
- •13.13 Алгорим быстрой сортировки (сортировка Хоара).
1.Язык Object Pascal. Алфавит языка. Операторы. Выражения. Структура программы.
Основными символами языка Object Pascal являются: символы _ + -
26 больших и 26 малых латинских букв A,B, …Y,Z, a,b, …, y,z
10 арабских цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
специальные символы * / = ^ < > ( ) [ ] { } . , : ; ' # $ @
Буквы русского алфавита не входят в состав алфавита языка. Их использование допустимо только в строковых и символьных значениях.
Идентификатор – это имя выбираемое программистом для обозначения тех или иных элементов программы. Идентификатор может состоять из латинских строчных и прописных букв, а также арабских цифр и знака подчеркивания. Идентификатор не может начинаться с цифры. Прописные и строчные буквы не различаются.
Операторы, составляющие программу заключены между ключевыми словами begin и end. После ключевого слова end следует обязательная точка, обозначающая конец программы.
Программа содержит два оператора. Оператор writeln осуществляет вывод данных в стандартное устройство (по умолчанию консоль). Оператор readln осуществляет ввод данных со стандартного устройства, по умолчанию это клавиатура. Ввод завершается после нажатия клавиши Enter. Так как операнды для readln не указаны, то программа просто ждет нажатия клавиши ввод.
Секция переменных начинается зарезервированным словом var. Тип переменных указывается после двоеточия
2. Простые типы данных. Преобразование типов. Приведение типов. Составной оператор.
Тип определяет множество допустимых значений,которые может иметь тот или иной объект, а также множество допустимых операций применимых к нему. Кроме того, тип определяет также формат внутреннего представления данных в памяти компьютера.
Все типы делят на две группы: простые и структурированные. Простые делят на: порядковые(целый, логический, символьный, перечисляемый, тип-диапазон), вещественные и дата-время.
Порядковые типы отличаются тем, что каждый из них имеет конечное число
возможных значений. Эти значения можно определенным образом упорядочить и,
следовательно, сопоставить некоторое целое число – порядковый номер значения.
Вещественные типы предназначены для работы с вещественными числами в
формате с плавающей и фиксированной точкой.
Тип дата-время предназначен для хранения даты и времени. Фактически для этих
целей используется вещественный формат.
Целые-Byte, ShortInt, SmallInt, Word, Integer, LongInt, Cardinal, LongWord, Int64.
Логические-(принимают ТОЛЬКО ДВА значения – true/false)-Boolean, ByreBool, Bool, WordBool, LongBool.
Символьный тип-AnsiChar, WideChar, Char.
Перечисляемый тип задается перечислением тех значений, которые он может
получать. Каждое значение именуется некоторым идентификатором и располагается в
списке, обрамлённом круглыми скобками.
type
TColors=(red, green, white, yellow);
Тип-диапазон представляет собой подмножество некоторого базового порядкового
типа. Тип-диапазон задается границами своих значений.
type
TDigits=’0’..’9’;
Вещественные типы-real, single, double, extended, comp, currency.
Тип дата-время определяется идентификатором TDataTime и предназначен для
одновременного хранения даты и времени. Во внутреннем представлении переменная
этого типа занимает 8 байт.
Строковые типы-ShortString, AnsiString, PChar, WideString, String.
Преобразование типов
При написании программ часто бывает необходимым преобразовать тип переменной.
Близкие типы можно преобразовывать с помощью следующей конструкции.
<идентификатор типа>(<переменная>)
Например преобразование типа переменной Integer к типу Word выглядит следующим
образом
var i:Integer;
j:Word;
…
j:=Word(i):
function Trunc(X:real):Integer Отсекает дробную часть числа
function Round(X:real):Integer Округляет вещественное число до целого
по правилам арифметики
function Val(St:string; var X; Code:Integer) Преобразует строку символов St в вещественную или целую переменную (в зависимости от типа переменной X).
Параметр Code содержит индекс символа который вызвал ошибку при преобразовании или 0 если ошибки не произошло.
procedure Str(X [:Width:[:Decimals]]; var St:string) Преобразует число X любого вещественного или целого типа в строку символов St. Параметры Width и Decimals, если они присутствуют, задают общуюширину поля, выделенную под символьное представление числа, и количествосимволов в дробной части соотвественно.
Арифметические операторы применяются при построении арифметических
выражений. К арифметическим операторам относятся +, -, *, /, ().Результатом вычисления
арифметических операторов является целочисленный или вещественный тип.
Логические операторы применяются при вычислении логических выражений. К
логическим операторам относятся >, <, <>, =, and, not, or. Типом результата вычисления
логического выражения является логический тип.
К специальным операторам относится оператор присваивания, операторы ввода-
вывода и некоторые другие операторы.
Составной оператор позволяет представить группу операторов в виде одного
оператора. Синтаксис составного оператора следующий
begin
<оператор 1>;
<оператор 2>;
…
<оператор n>;
end;
Пара операторов begin end называется операторными скобками. Все операторы
заключенные в операторные скобки воспринимаются компилятором как один оператор.