
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Любой алгоритм, какой бы он сложный не был, содержит лишь три основных, или, иначе говоря, базовых структуры. Этими базовыми структурами являютия:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Клавиши перемещения курсора:
- •Работа с блоками текста
- •Основные клавиши работы с Турбо-Паскалем:
- •Строковый тип данных
- •Описание констант
- •Операция присваивания
- •Приоритет операций
- •Оператор присваивания
- •Совместимость и преобразование типов
- •Элементарный ввод-вывод
- •Лекция 5 Выражения
- •Математические операции
- •Логические операции
- •Операции отношения
- •Приоритет операций
- •Основные математические функции
- •Уменьшает значение числа X на y. Если число y не указано, то уменьшение происходит на 1. Циклы
- •Арифметические циклы
- •Итерационные циклы с предусловием
- •Итерационные циклы с постусловием
- •Операторы завершения цикла
- •Операторы ветвления и цикла Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Операторы ветвления и цикла
- •Условный оператор if
- •Оператор множественного выбора Case
- •Операторы цикла
- •Лекция 7. Подпрограммы: процедуры и функции
- •Пример 27
- •Обмен данными
- •4.2. Множества
- •4.2.1. Объявление типа множества
- •4.2.2. Операции над множествами
- •4.2.3. Пример использования множества
- •Пример 33
- •4.3. Строки
- •4.3.1. Объявление типа String
- •4.3.2. Операции над строковыми переменными
- •4.3.3. Встроенные процедуры и функции обработки строк
- •Пример 34
- •4.1. Матрица
- •4.1.1. Ввод-вывод элементов матрицы
- •4.1.2. Определение индексов элементов матрицы
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Определение и особенности файлов
- •Доступ к компонентам файла
- •Текстовый файл
- •Чтение из текстового файла
- •Запись в текстовый файл
- •Файлы в Тубо Паскаль
- •Файловые процедуры и функции
- •Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Графика Турбо Паскаля
- •Записи Объявление типа записи
- •Вложенные записи
- •Массивы записей
- •Пример обработки массива записей
- •Статические и динамические памяти переменные
- •Объявление указателей
- •Выделение и освобождение динамической памяти
- •Операции с указателем
- •Пример 41
- •Связанные списки
- •Понятие бинарные деревья. Операции над бинарными деревьями
- •Применение бинарных деревьев
- •Сравнение рекурсии и итерации
- •Пример 51
- •Реализация объектно-ориентированного подхода в турбо-паскале
- •Алгоритмическая и объектная декомпозиция
- •Объектный тип в Турбо-Паскале
- •Способы наследования и переопределения
- •Виртуальные методы
- •Модуль c r t
- •Модуль g r a p h
Определение и особенности файлов
В Паскале файлом называется конечное множество компонентов одного и того же типа, расположенных во внешней памяти. В простейшем случае каждая компонента файла может быть числом или символом. В общем случае типом компоненты может являться любой допустимый в языке тип, кроме файлов, т.е. нельзя создать файл файлов. Число компонентов файла может меняться в отличие от массивов и ограничивается только емкостью внешней памяти. Новая компонента всегда добавляется только в конец файла, т.е. нельзя заменить новой компонентой одну из уже существующих. Любой файл имеет свое имя, что позволяет программе одновременно работать с несколькими файлами. При работе с файлами наиболее часто возникает необходимость читать информацию из файла и писать информацию в файл. Перед использованием файла в программе необходимо объявить специальную файловую переменную, которая представляет файл в программе и интерпретирует его как бесконечный список значений одного и того же типа. Файловую переменную можно задать одним из трех способов:
var F1: file of integer; F2: text; F3: file;
Способ объявления определяет вид файла, а, следовательно, способ хранения информации в файле. В нашем случае
F1 - типизированный файл ( file of ...);
F2 - текстовый файл (text), каждая его компонента - символ;
F3 - нетипизированный файл, тип его компонентов не указан, что делает его совместимым с любыми файлами.
Доступ к компонентам файла
Любой программе на Турбо-Паскале доступны без каких-либо предварительных объявлений два файла со стандартными файловыми переменными:
INPUT - для чтения данных с клавиатуры;
OUTPUT - для вывода данных на экран.
Все другие файлы становятся доступными программе после связывания конкретного физического файла с файловой переменной. Такое связывание осуществляет процедура
Assign( < имя файловой переменной >, < имя файла >);
Имя файла представляет собой строковое выражение и может включать путь к файлу например:
assign( F2, 'prog1.txt');
assign( F1, 'd:\ZLV\myfile.dat');
После первого вызова процедуры файловая переменная F2 будет связана с файлом 'prog1.txt' из текущего каталога, во втором случае файловая переменная F1 связывается с файлом 'myfile.dat' из каталога первого уровня ZLV диска D. Разумеется, можно предварительно ввести имя файла, а затем связать его файловой переменной:
var
Name: string;
. . .
write ('Введите имя файла ');
readln (Name );
assign( F2, Name );
После связывания файловой переменной с конкретным файлом процедурой Assign его необходимо открыть. Перед началом чтения информации из файла его открывают процедурой
Reset( < имя файловой переменной > );
Процедура Reset предполагает, что открываемый файл уже существует, в противном случае возникает ошибка. Встроенная процедура
Rewrite( < имя файловой переменной > );
открывает файл для записи. Процедура Rewrite допускает, что открываемый файл еще не существует. Если файл уже существовал, то после выполнения процедуры Rewrite все данные этого файла стираются и запись осуществляется в начало файла.
Завершение действий с файлом осуществляет процедура
Close( < имя файловой переменной > );
После этого файловую переменную можно связать процедурой Assign с другим файлом. Заметим, что закрытие всех файлов в программе происходит автоматически при завершении работы программы, однако явное закрытие файлов процедурой Close является хорошим стилем программирования.
Работа с файлами осуществляется с использованием специальных буферов, расположенных в оперативной памяти. При записи в файл информация сначала заносится в буфер, а затем, по мере его заполнения, переписывается в файл на внешнее запоминающее устройство. Одним из действий процедуры Close является очистка буферов. Без выполнения этой процедуры часть информации, предназначенной для записи в файл, может быть утеряна.