
- •Федеральное агентство по образованию
- •Структурированные типы данных. Классификация
- •Массивы Определение массива
- •Обращение к элементу массива. Хранение элементов массива. Доступ к элементам массива
- •Действия над массивами
- •Поиск элемента (одномерного ) массива Поиск среди неупорядоченных элементов массива
- •Поиск среди упорядоченных элементов массива
- •Сортировка элементов (одномерного) массива
- •Линейная сортировка (сортировка отбором)
- •Сортировка методом пузырька
- •5 4 3 1 2
- •5 4 3 2 1 Метод быстрой сортировки с разделением
- •Множества
- •Объявление множеств
- •Представление в памяти переменной типа множество
- •Операторы для работы с множествами Проверка принадлежности элемента множеству
- •Операции над множествами
- •Сравнение множеств
- •Применение множеств
- •Процедуры и структурное программирование
- •Преимущества структурного программирования
- •Планирование структурированной программы
- •Метод программирования сверху вниз
- •Определение процедуры
- •Передача управления при вызовах процедур и функций
- •Функции: подпрограммы,возвращающие единственный результат
- •Понятие блока
- •Область действия и время жизни переменных
- •Особенности локальных переменных
- •Особенности глобальных переменных
- •Особенности использования процедур и функций в турбо паскале
- •Опережающее определение процедур и функций
- •Рекурсия и итерация
- •Процедуры и функции как параметры
- •Директивы подпрограмм
- •Отладка и тестирование программ, содержащих подпрограммы
- •Нисходящее тестирование и подпрограммы-заглушки
- •Восходящее тестирование и программы-тестеры
- •Рекомендации по отладке программ, содержащих подпрограммы
- •Использование отладчикадля трассировки процедур
- •Запуск внешних программ
- •Стандартные модули
- •Модуль Crt
- •Модуль Graph
- •Функции
- •Текстовые файлы
- •Нетипизированные файлы
- •Типизированные файлы
- •Прямой доступ
- •Дополнительные функции работы с файлами
- •Обработка ошибок ввода-вывода
- •Указатели и динамические переменные Статические и динамические переменные
- •Адресация памяти в Турбо Паскале
- •Карта памяти Турбо Паскаля
- •Указатели
- •Операция для получения адреса
- •Функции для работы с адресами
- •Процедуры для работы с указателями
- •Присваивание значений указателям
- •Организация ссылок
- •Динамические структурированные переменные Динамические записи
- •Динамические массивы
- •Массивы размером более 64 кбайт
- •Строки с завершающим нулем (asciiz)
- •Процедуры и функции модуля strings
- •Указатели на процедуры и функции
- •Динамические структуры данных
- •Линейные списки
- •60 Лекции по курсу «Языки программирования» Часть II
Функции
| |
eof(var f) : boolean
|
Возвращает значение true, если при чтении достигнут конец файла. Это означает, что прочитан последний элемент в файле или что файл после открытия оказался пуст. |
IOresult : integer |
Возвращает целое число, соответствующее коду последней ошибки ввода-вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOresult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обновляет свое значение. Функция IOresult работает только при выключенном режиме проверки ошибок ввода-вывода, то есть с ключом компиляции {$I-}. |
Текстовые файлы
Текстовый файл представляет собой последовательность строк символов переменной длины. Каждая строка заканчивается символами перевода строки и возврата каретки (их коды — 13 и 10). Эти символы вставляются в физический файл при нажатии клавиши Enter. При чтении файла эти символы не вводятся в переменные в программе, а воспринимаются как разделитель.
Текстовый файл можно открыть не только для чтения или записи с помощью процедур reset и rewrite, но и для добавления информации в конец. Для этого служит процедура append.
append(var f)
Для чтения из текстового файла применяются процедуры:
read(f, список) readln(f, [список])
Как видите, они отличаются от известных вам процедур ввода с клавиатуры (только наличием первого параметра — имени логического файла). Т.к. консольный ввод-вывод является частным случаем обмена с текстовым файлом.
Процедуры записи в текстовый файл:
write(f, список) writeln(f, [список])
При записи в текстовый файл происходит преобразование из внутренней формы представления выводимых величин в символьные строки.
Чтение и запись выполняются последовательно, то есть считать или записать очередной символ можно только после аналогичной операции с предыдущим.
В Паскале есть несколько стандартных подпрограмм, которые предназначены только для работы с текстовыми файлами.
Процедуры и функции для работы с текстовыми файлами
Flush(var f : text)
|
Процедура принудительно записывает данные из буфера в файл независимо от степени заполнения буфера. Применяется к открытым выходным файлам. |
SetTextBuf (var f : text; var buf; bufsize : word) |
Процедура служит для увеличения или уменьшения буфера ввода-вывода текстового файла f. Размер буфера для текстовых файлов по умолчанию равен 128 байт. Увеличение буфера сокращает количество обращений к диску. Рекомендуется изменять размер буфера до открытия файла. Буфер файла начнется с первого байта переменной buf. Размер буфера задается в необязательном параметре bufsize. Если параметр отсутствует, размер буфера определяется длиной переменной buf. |
SeekEof(var f : Text): boolean
|
Функция возвращает значение true, если до конца файла остались только строки, заполненные пробелами. |
SeekEoln(var f : text): boolean |
Функция возвращает значение true, если до конца строки остались только пробелы. |