
- •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 Алгорим быстрой сортировки (сортировка Хоара).
8.6 Текстовые файлы
Текстовые файлы являются подмножеством двоичных файлов, но в отличие от двоичных не могут содержать весь набор символов. Вся информация в файле разбивается на строки, ограниченные символами возврат каретки (CR) и перевод строки (LF)1. Допустимы символы с кодами от 32 до 255, символы с кодами ниже 32 являются управляющими.
Управляющие символы
Код символа |
Наименование символа |
Производимое действие |
8 |
BS |
Возврат на шаг |
9 |
TAB |
Табуляция |
0A |
LF |
Перевод строки |
0C |
FF |
Перевод листа |
0D |
CR |
Возврат каретки |
1А |
EOF |
Конец файла |
Стандартные потоки ввода-вывода. Перенаправление потоков ввода-вывода.
Процесс взаимодействия с пользователем выполняется в терминах записи и чтения в файл. То есть вывод на экран представляется как запись в файл, а ввод – как чтение файла. Файл, из которого осуществляется чтение, называется стандартным потоком ввода, а в который осуществляется запись – стандартным потоком вывода.
Стандартные потоки – воображаемые файлы, позволяющие осуществлять взаимодействие с пользователем как чтение и запись в файл. Кроме потоков ввода и вывода, существует еще и стандартный поток ошибок, на который выводятся все сообщения об ошибках и те
информативные сообщения о ходе работы программы, которые не могут быть выведены в стандартный поток вывода.
Вывод данных на экран и чтение их с клавиатуры происходит потому, что по умолчанию стандартные потоки ассоциированы с терминалом пользователя. Это не является обязательным – потоки можно подключать к чему угодно – к файлам, программам и даже устройствам. В командном интерпретаторе такая операция называется перенаправлением.
< файл |
Использовать файл как источник данных для стандартного потока ввода. |
> файл |
Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует – перезаписан сверху. |
2> файл |
Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует – перезаписан сверху. |
>>файл |
Направить стандартный поток вывода в файл. Если файл не существует, он будет создан; если существует – данные будут дописаны к нему в конец. |
2>>файл |
Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан; если существует – данные будут дописаны к нему в конец. |
| |
Соединяет два процесса каналом. |
Каналы.
Стандартные потоки можно перенаправлять не только в файлы, но и на вход других программ. Если поток вывода одной программы соединить с потоком ввода другой программы, получится конструкция, называемая каналом.
& |
команда1 & команда2 |
Используется для разделения нескольких команд в одной командной строке. |
&& |
команда1 && команда2 |
Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. |
|| |
команда1 || команда2 |
Запускает команду, стоящую за символом ||, только если команда, стоящая перед символом || не была выполнена. |
( ) |
(команда1 & команда2) |
Используется для группировки или вложения команд. |
Успешность выполнения команды определяется по коду ошибки, который находится в переменной окружения ERRORLEVEL. Нулевое значение означает успешное завершение программы.
Существует целый класс команд (программ), предназначенных для преобразования потоков данных в каналах. Такие программы известны как фильтры. Программа-фильтр читает данные, поступающие со стандартного потока ввода (на вход), преобразовывает их требуемым образом и выводит на стандартный поток вывода (на выход).