- •1.Парадигмы программирования.
- •2.Языки программирования. Программа на алгоритмическом языке.
- •Раздел var резервирует место переменным в оперативной памяти. Их следует обязательно назвать и перечислить.
- •3.Алгоритм и его свойства.
- •4.Алгоритмический язык Pascal. Основные понятия языка.
- •5.Концепция типа данных в Pascal.
- •6.Данные целого типа в языке Pascal.
- •7.Данные вещественного типа в языке Pascal.
- •8.Данные логического типа в языке Pascal.(Boolean)
- •9.Данные символьного типа в языке Pascal.
- •10.Строки в языке Pascal.
- •11.Записи в языке Pascal.
- •12.Файловый тип данных в языке Pascal.
- •13.Структура программы на языке Pascal.
- •Раздел var резервирует место переменным в оперативной памяти. Их следует обязательно назвать и перечислить.
- •14.Стандартные процедуры и функции языка Pascal. Стандартные математические функции и процедуры Turbo Pascal
- •15.Подпрограммы в языке Pascal.
- •16.Процедуры с параметрами в языке Pascal. Типы параметров.
- •17.Процедуры без параметров в языке Pascal.
- •18.Функции в языке Pascal.
- •19.Модуль в языке Pascal. Его структура.
- •20.Алгоритмы нахождения минимального и максимального чисел.
- •21.Алгоритмы сортировки.
- •22.Ветвления в Pascal.
- •23.Циклы в Pascal.
- •Операторы ограничения и прерывания цикла
- •24.Массивы Pascal.
- •25.Работа со строками в Pascal.
- •26.Работа с файлами в Pascal.
- •27Объектно-ориентированное программирование.Основные концепции.
- •Концепции
- •28.Особенности программирования в визуальной среде Delphi. Объектно-ориентированные особенности языка
- •Полиморфизм Это методы различных объектов, которые могут иметь одинаковые имена, но по внутреннему содержимому отличаются друг от друга.
- •29.Типы данных Object Pascal.
- •30.Особенности программирования с использованием массивов в Delphi.
- •31.Особенности работы с файловым типом данных в Delphi.
- •Создание динамической библиотеки
26.Работа с файлами в Pascal.
Файл – это именованная область данных на внешнем физическом носителе. Он определяет упорядоченную совокупность произвольного числа однотипных компонент, соответствующих последовательности записей на внешнем носителе. Чтение из файла и запись в файл ведутся покомпонентно. С каждым файлом связан указатель компонента – внутренняя переменная, не имеющая имени, в которой хранится номер текущей компоненты. Если файл не пуст, то указатель указывает начало некоторого компонента и его значение равно номеру этого компонента (нумерация начинается с нуля), либо указатель совмещен с признаком конца и его значение равно количеству компонентов.
Turbo Pascal поддерживает три файловых типа: текстовые файлы, типизированные файлы, нетипизированные файлы. Для работы с файлами в программе необходимо определить файловую переменную.
Описание файловых переменных текстового типа производится с помощью служебного слова Text, например:
var tStory: Text;
Описание типизированных файлов имеет вид:
var fComp: File of T;
где T - тип компоненты файла. Примеры описания файловой переменной типизированного типа:
type M= array[1..500] of Longint;
var f1: File of Real;
f2: File of Integer; fLi: File of M;
Нетипизированные файлы описываются с помощью служебного слова File:
var f: File;
Файловые переменные, которые описаны в программе, называют логическими файлами. Все основные процедуры и функции, обеспечивающие ввод - вывод данных, работают только с логическими файлами. Физический файл должен быть связан с логическим до выполнения процедур открытия файлов.
Turbo Pascal вводит ряд процедур и функций, применимых для любых типов файлов: Assign, Reset, Rewrite, Close, Rename, Erase, Eof, IOResult.
Процедура Assign(f; ‘FileName’) связывает логический файл f с физическим файлом, полное (с указанием пути) имя которого задано в строке FileName.
Процедура Reset(f) открывает логический файл f для последующего чтения данных или, как говорят, открывает входной файл. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента.
Процедура Rewrite(f) открывает логический файл f для последующей записи данных (открывает выходной файл). После успешного выполнения этой процедуры файл готов к записи в него первого компонента.
Процедура Close(f) закрывает открытый до этого логический файл. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено. Для входных файлов использование оператора закрытия файла необязательно.
Логическая функция EOF(f): boolean возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.
Процедура Rename(f; ‘NewName’) позволяет переименовать физический файл на диске, связанный с логическим файлом f. Переименование возможно после закрытия файла.
Процедура Erase(f) уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.
Функция IOResult: Integer возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой - либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода-вывода или с ключом компиляции {$I-}.
Запись в файл и чтение из файла производится покомпонентно с помощью операторов Write(f,x1,x2,..xn) и Read(f,x1,x2,..xn,), соответственно, где x1,x2,..xn – переменные (компоненты) файла. После записи (чтения) каждой переменной значение указателя увеличивается на единицу, что соответствует перемещению к следующему компоненту файла. Количество компонентов, записанных в файл, можно определить с помощью функции N:=Filesize(f) . При необходимости записи или чтения в заданном компоненте файла нужно предварительно указатель установить в номер этого компонента с помощью процедуры Seek(f,k), где k – номер, в который устанавливается указатель. Так при выполнении:
Seek(f,2);
Read(f,x);
Write(f,y);
Переменная x будет прочитана из компонента с номером 2, а компонента y будет записана в компонент с номером 3.
Текущее положение указателя k можно узнать с помощью функции:
K:=FilePose(f);
При работе с текстовым файлом следует помнить, что в отличии от типизированного, после открытия файла процедурой Reset (f) разрешается только чтение. При открытии процедурой Rewrite (f) разрешается только запись в него, при этом прежняя информация стирается. Для сохранения информации в текстовом файле его следует открывать процедурой Append(f). В этом случае указатель ставится на конец файла и последующие записи добавляются в новые строки.
Организация чтения с проверкой условия конца файла: if not Eof(f) then Read(f,x);
Для текстовых файлов введены модификации операторов ввода/вывода: Readln, Writeln, которые осуществляют переход на следующую строку после чтения или записи указанных в операторе переменных. При этом оператор Writeln записывает символ конца строки EOLN.
Пример 1: Создание текстового файла Work.txt:
Var
F: text;
Begin
Assign(f,’work.txt’);
Rewrite (f);
Write(f,’Текстовый файл’);
Close(f);
End.