Разделы презентаций


Программирование на языке Паскаль

Содержание

ФайлыФайл – это область на диске, имеющая имя.Файлытолько текст без оформления, не содержат управляющих символов (с кодами < 32)ACSII (1 байт на символ)UNICODE (2 байта на символ)*.txt, *.log,*.htm, *.htmlмогут содержать любые

Слайды и текст этой презентации

Слайд 1Программирование на языке Паскаль
Типизированные файлы

Программирование  на языке Паскаль Типизированные файлы

Слайд 2Файлы
Файл – это область на диске, имеющая имя.
Файлы
только текст без

оформления, не содержат управляющих символов (с кодами < 32)
ACSII (1 байт

на символ)
UNICODE (2 байта на символ)

*.txt, *.log,
*.htm, *.html

могут содержать любые символы кодовой таблицы

*.doc, *.exe,
*.bmp, *.jpg,
*.wav, *.mp3,
*.avi, *.mpg

Текстовые

Двоичные

Папки (каталоги)

ФайлыФайл – это область на диске, имеющая имя.Файлытолько текст без оформления, не содержат управляющих символов (с кодами

Слайд 3Бинарные файлы бывают двух видов
типизированные,
нетипизированные.

К типизированным относятся файлы, содержащие

данные строго определенного типа. Обычно такие файлы представляются собой наборы

записей.

К нетипизированным относятся двоичные файлы, которые могут содержать любые совокупности байтов данных без привязки к какому-нибудь одному типу.

Разновидности файлов

Бинарные файлы бывают двух видовтипизированные, нетипизированные.К типизированным относятся файлы, содержащие данные строго определенного типа. Обычно такие файлы

Слайд 4Доступ к компоненту файла осуществляется через указатель файла.

При выполнении операции

чтения или записи указатель автоматически перемещается на следующий компонент:
Организация файла

Доступ к компоненту файла осуществляется через указатель файла.При выполнении операции чтения или записи указатель автоматически перемещается на

Слайд 5Файловая переменная типизированного файла описывается как:
Описание типизированных файлов
Туре

переменной> = file оf ;
где - любой

тип данных, кроме файлового.

Типизированные файлы используют, когда обрабатывают хранящуюся в файле последовательность компонентов одинаковой длины (чисел, записей и т.п.).

Файловая переменная типизированного файла описывается как:Описание типизированных файловТуре = 		file оf ;где - любой тип данных, кроме

Слайд 6Как и любая переменная языка Паскаль, файловая переменная может быть

описана в инструкции объявления переменных.
Например:
Описание файлов
Var F1: file of

real;
F2: file of char;
F3: file of integer;

или с предварительным объявлением типа:

Туре FF = file of integer;
Var F1: FF;

Как и любая переменная языка Паскаль, файловая переменная может быть описана в инструкции объявления переменных. Например:Описание файловVar

Слайд 7Связь между физическим файлом и файловой переменной устанавливается специальной процедурой.

Процедура


Инициализация файловой переменной
инициализирует файловую переменную f, связывая ее с файлом

или логическим устройством, определенным строкой st.

Если файл находится в текущем каталоге, то достаточно указать имя файла и его расширение.
В противном случае необходимо указать полное имя файла

Assign (f, st:string)

Связь между физическим файлом и файловой переменной устанавливается специальной процедурой.Процедура Инициализация файловой переменнойинициализирует файловую переменную f, связывая

Слайд 8Например:
Инициализация файловой переменной
Туре F = file of real;
Var f1, f2,

f3: F;
...
Assign (fl, 'T1.dat'); {связывание файловой переменной с

файлом в текущем каталоге}
Assign (f2, 'd:\iva\a.dat'): {связывание файловой переменной с файлом в указанном каталоге}
Например:Инициализация файловой переменнойТуре F = file of real;Var f1, f2, f3: F;...Assign (fl, 'T1.dat'); 	  {связывание

Слайд 9Процедура
Открытие файла
открывает файл, определенный файловой переменной f для чтения.
При

выполнении этой процедуры указатель файла устанавливается на первый компонент файла.

Reset(f);

ПроцедураОткрытие файлаоткрывает файл, определенный файловой переменной f для чтения. При выполнении этой процедуры указатель файла устанавливается на

Слайд 10При открытии для чтения несуществующего файла регистрируется ошибка выполнения, а

функция lOResult типа Word возвращает значение, отличное от 0 (см.

далее описание функции).
Отключив контроль операций ввода-вывода и используя функцию lOResult, можно организовать проверку наличия файла с указанным именем на диске:

Открытие файла

Var f: file of char;
Begin
Assign(f, 'a.dat'); {инициализация файловой переменной}
{$ I- } {отмена контроля ошибок ввода-вывода}
ReSet (f); {открытие файла для чтения}
{$ I+ } {включение контроля ошибок}
if IOResult <>0 then
WriteLn ('Файл не существует');
else WriteLn('Файл существует');

При открытии для чтения несуществующего файла регистрируется ошибка выполнения, а функция lOResult типа Word возвращает значение, отличное

Слайд 11Процедура
Открытие файла

открывает файл, определенный файловой переменной f, для записи.

При

открытии для записи существующего файла старый файл уничтожается без предварительной

проверки и выдачи предупреждения пользователю.
Если файла с таким именем не существовало, то он создается и подготавливается к записи (физически – очищается буфер).

Rewrite(f)

ПроцедураОткрытие файлаоткрывает файл, определенный файловой переменной f, для записи. При открытии для записи существующего файла старый файл

Слайд 12Закрытие файла, открытого для записи или чтения, осуществляется процедурой

Закрытие файла
Close(f)
При

этом вновь созданный файл регистрируется в каталоге.
!
Поскольку любое обращение

к диску осуществляется через буферную память, часть данных, выводимых в файл, может остаться в буфере. Процедура закрытия файла обеспечивает вывод оставшихся компонентов из буфера в файл.
Связь файловой переменной с файлом при закрытии сохраняется, и при повторном использовании этого же файла процедуру Assign применять еще раз не требуется.
Закрытие файла, открытого для записи или чтения, осуществляется процедуройЗакрытие файлаClose(f)При этом вновь созданный файл регистрируется в каталоге.

Слайд 13Процедура
Стандартные процедуры и функции обслуживания типизированных файлов
осуществляет чтение очередных компонентов

типизированного файла.
Список переменных ввода содержит одну или несколько переменных

того же типа, что и компоненты файла, разделенных запятыми.
Если файл исчерпан, обращение к процедуре вызывает ошибку ввода-вывода.

Read(f, с1, с2, ...,сn)

ПроцедураСтандартные процедуры и функции обслуживания типизированных файловосуществляет чтение очередных компонентов типизированного файла. Список переменных ввода содержит одну

Слайд 14Процедура
Стандартные процедуры и функции обслуживания типизированных файлов
осуществляет запись данных в

типизированный файл.
Список вывода содержит одно или более выражений того

же типа, что и компоненты файла, разделенных запятыми.

Write(f, с1, с2, ...,сn)

ПроцедураСтандартные процедуры и функции обслуживания типизированных файловосуществляет запись данных в типизированный файл. Список вывода содержит одно или

Слайд 15Процедура
Стандартные процедуры и функции обслуживания типизированных файлов
осуществляет установку указателя файла

(переход) на компонент файла с номером numcomp.
Seek(f, numcomp: word)
Например,
Seek(f, 9);
осуществляет

переход к десятой записи в файле f.
ПроцедураСтандартные процедуры и функции обслуживания типизированных файловосуществляет установку указателя файла (переход) на компонент файла с номером numcomp.Seek(f,

Слайд 16Функция
Стандартные процедуры и функции обслуживания типизированных файлов
возвращает количество компонент файла,

указанного файловой переменной.
Может использоваться для установки на конец файла

совместно с Seek() или на последнюю запись файла соответственно:

FileSize(f): longint

Seek(f, FileSize(f));
Seek(f, FileSize(f)-1);

Функция

возвращает порядковый номер компонента, который будет обрабатываться следующей операцией ввода-вывода.

FilePos(f): longint

ФункцияСтандартные процедуры и функции обслуживания типизированных файловвозвращает количество компонент файла, указанного файловой переменной. Может использоваться для установки

Слайд 17Принцип сэндвича
I этап. открыть файл :
связать переменную f с файлом
открыть

файл (сделать его активным, приготовить к работе)
assign(f, 'qq.txt');
reset(f); {для чтения}
rewrite(f);

{для записи}

II этап: работа с файлом

Переменная типа «текстовый файл» или типизированный файл: var f: file of <тип>;
f1:text;

III этап: закрыть файл

close(f);

read ( f, n ); {прочитать значение в n }

write ( f, n ); { записать значение n в файл}
writeln ( f1, n );{c переходом на нов.строку }

append(f1); {для дозаписи}

Принцип сэндвичаI этап. открыть файл :связать переменную f с файломоткрыть файл (сделать его  активным, приготовить к

Слайд 18После открытия файла для чтения или записи указатель файла стоит

в его начале и указывает на первый компонент, имеющий номер

0.
После каждого чтения или записи указатель сдвигается к следующему компоненту файла.
Поскольку длина каждой компоненты файла строго постоянна, помимо последовательного возможно осуществление прямого доступа к компонентам файла.
Удаление компонент обычно требует перезаписи файла.

Обработка типизированного файла

После открытия файла для чтения или записи указатель файла стоит в его начале и указывает на первый

Слайд 19Добавление компонентов в конец файла выполняется в режиме записи. Для

этого указатель файла устанавливается на его конец (как показано выше),

после чего все выводимые компоненты дописываются в конец файла.
Добавление компонентов в середину или начало файла может выполняться следующим образом:
определяем место, в которое должны быть добавлены элементы,
все последующие компоненты переписываем во временный файл,
вставляем новые компоненты
дописываем в файл компоненты, переписанные во временный файл.

Обработка типизированного файла

Добавление компонентов в конец файла выполняется в режиме записи. Для этого указатель файла устанавливается на его конец

Слайд 20Работа с файлами
Особенности:

имя файла упоминается только в команде

assign, обращение к файлу идет через файловую переменную
файл, который открывается

на чтение, должен существовать
если файл, который открывается на запись, существует, старое содержимое уничтожается, иначе создается новый
при завершении программы все файлы закрываются автоматически
после закрытия файла переменную f можно использовать еще раз для работы с другим файлом
Работа с файламиОсобенности:  имя файла упоминается только в команде assign, обращение к файлу идет через файловую

Слайд 21Функция
Стандартные процедуры и функции обслуживания файлов
определяет конец файла.
Как было

отмечено выше, размер файла при его создании не фиксируется. Поэтому

в процессе работы требуется проверка достижения конца файла.
Функция принимает значение TRUE, если указатель стоит в конце файла (после последней записи). При этом, если производится чтение, то это означает, что файл исчерпан, а если идет запись, то новая запись дописывается в конец файла.
Функция принимает значение FALSE, если конец файла еще не достигнут.

EOF(f):boolean

ФункцияСтандартные процедуры и функции обслуживания файловопределяет конец файла. Как было отмечено выше, размер файла при его создании

Слайд 22Последовательный доступ
при открытии файла курсор устанавливается в начало
чтение выполняется с

той позиции, где стоит курсор
после чтения курсор сдвигается на первый

непрочитанный символ

12 5 45 67 56●

конец файла
end of file, EOF(f)

12 5 45 67 56●

assign ( f, 'qq.dat' );
reset ( f );

read ( f, x );

как вернуться назад?

close ( f );
reset ( f ); { начать с начала }

Последовательный доступпри открытии файла курсор устанавливается в началочтение выполняется с той позиции, где стоит курсорпосле чтения курсор

Слайд 23Пример
Задача: в файле input.dat записаны числа, сколько их – неизвестно.

Записать в файл output.dat их сумму.
Алгоритм:
Открыть файл input.dat для чтения.
S

:= 0;
Если чисел не осталось, перейти к шагу 7.
Прочитать очередное число в переменную x.
S := S + x;
Перейти к шагу 3.
Закрыть файл input.dat.
Открыть файл output.dat для записи.
Записать в файл значение S.
Закрыть файл output.dat.

цикл с условием «пока есть данные»

ПримерЗадача: в файле input.dat записаны числа, сколько их – неизвестно. Записать в файл output.dat их сумму.Алгоритм:Открыть файл

Слайд 24Программа
program qq;
var s, x: integer;

begin
assign(f, 'input.dat');
reset(f);

s := 0;




close(f);




end.
while

not eof(f) do begin
read(f, x);
s := s + x;
end;

f: file of integer;

eof(f)

логическая функция, возвращает True, если достигнут конец файла

assign(f, 'output.dat');
rewrite(f);
write(f, s);
close(f);

запись результата в файл output.dat

Программаprogram qq;var s, x: integer;begin  assign(f, 'input.dat');  reset(f);  s := 0;   close(f);

Слайд 25Задания
В файле data.dat записаны числа, сколько их – неизвестно.
«3»:

Найти сумму чётных чисел и записать её в файл output.dat.
«4»:

Найти минимальное и максимальное из четных чисел и записать их в файл output.dat.
«5»: Найти длину самой длинной цепочки одинаковых чисел, идущих подряд, и записать её в файл output.dat.
ЗаданияВ файле data.dat записаны числа, сколько их – неизвестно. «3»: Найти сумму чётных чисел и записать её

Слайд 26Обработка массивов
Задача: в файле input.dat записаны числа, сколько их –

неизвестно, но не более 100. Переставить их в порядке возрастания

и записать в файл output.dat.
Проблемы:
для сортировки надо удерживать в памяти все числа сразу (массив);
сколько чисел – неизвестно.
Решение:
выделяем в памяти массив из 100 элементов;
записываем прочитанные числа в массив и считаем их в переменной N;
сортируем первые N элементов массива;
записываем их в файл.
Обработка массивовЗадача: в файле input.dat записаны числа, сколько их – неизвестно, но не более 100. Переставить их

Слайд 27Чтение данных в массив
var A: array[1..100] of integer;
f:

file of integer;
function ReadArray(var m: array[1..100] of integer):integer;
var

i: integer;
begin
assign(f, 'input.dat');
reset(f);
i := 0;




close(f);
ReadArray := i;
end;

Глобальные переменные:

Функция: ввод массива, возвращает число элементов

while (not eof(f)) and (i < 100) do begin
i := i + 1;
read(f, M[i]);
end;

ReadArray := i;

цикл заканчивается, если достигнут конец файла или прочитали 100 чисел

Чтение данных в массивvar A: array[1..100] of integer;  f: file of integer; function ReadArray(var m: array[1..100]

Слайд 28Программа
program qq;
var A: array[1..100] of integer;
f: file of

integer; N, i: integer;
Begin
N := ReadArray(A);

{ сортировка первых N элементов }




end.

function ReadArray(var m:array[1..100] of integer):integer;
...
end;

assign(f, 'output.dat');
rewrite(f);
for i:=1 to N do
write(f, A[i]);
close(f);

запись отсортированного массива в файл

Программаprogram qq;var A: array[1..100] of integer;  f: file of integer;    N, i: integer;Begin

Слайд 29Задания
В файле input.dat записаны числа, известно, что их не более

100.
«3»: Отсортировать массив по убыванию и записать его в

файл output.dat.
«4»: Отсортировать массив по убыванию последней цифры и записать его в файл output.dat.
«5»: Отсортировать массив по возрастанию суммы цифр и записать его в файл output.dat.
ЗаданияВ файле input.dat записаны числа, известно, что их не более 100. «3»: Отсортировать массив по убыванию и

Слайд 30Разработать программу, создающую файл, компонентами которого являются символы, введенные с

клавиатуры. Затем эта программа должна:

организовывать чтение символов из файла
находить указанный

символ в файле и удалять его из файла.

Пример

Разработать программу, создающую файл, компонентами которого являются символы, введенные с клавиатуры. Затем эта программа должна:организовывать чтение символов

Слайд 31Пример
Program ex;
Var f, f1: file of char; { две

файловые переменные}
ch, i: char;
name: string;
Begin
WriteLn('Введите

имя файла:');
ReadLn(name);

{создание и открытие файла}
Assign(f, name + '.dat'); {связываем файл
с файловой переменной}
ReWrite(f); {открываем файл для записи (создаем)}
WriteLn('Вводите символы или ‘*’:');

Пример Program ex;Var f, f1: file of char; 	{ две файловые переменные}  ch, i: char;

Слайд 32Пример
{занесение записей в файл}
while ch’*’ do {пока не введено

символ ‘*’}
begin
ReadLn(ch); {вводим символ с клавиатуры}
Write(f, ch); {записываем символ

в файл}
end;
Close(f); {закрываем файл}
WriteLn;
{последовательное чтение записей из файла}
Reset(f); {открываем файл для чтения}
while not EOF(f) do {пока не достигнут конец файла}
begin
Read(f, ch); {читаем символ из файла}
Write(ch, ' '); {выводим символ на экран}
end;
WriteLn;
Пример	{занесение записей в файл} while ch’*’ do {пока не введено символ ‘*’} begin	ReadLn(ch); 	{вводим символ с клавиатуры}	Write(f,

Слайд 33Пример

WriteLn (’Введите символ для удаления:’);
ReadLn(ch);
{подготовка к

удалению записей: переименование исходного
файла и открытие нового файла с

тем же именем}
Close(f); {закрываем файл}
ReName(f, name + '.bak'); {переименовываем файл}
ReSet(f); {открываем файл для чтения}
Assign(f1, name + '.dat'); {связываем новый файл с переменной}
ReWrite(f1); {открываем новый файл для записи}
{удаление записей - перепись остающихся записей в др. файл}
while not EOF(f) do begin
Read(f, i); {читаем символ из файла}
if i<>ch then Write(f1, i); {если символ
не подлежит удалению, то записываем его в новый файл}
end;
Erase(f); {удаляем старый файл, после закрытия в нем ничего не изменилось, поэтому повторно его можно не закрывать}
Пример	 WriteLn (’Введите символ для удаления:’);   ReadLn(ch);{подготовка к удалению записей: переименование исходного	 файла и открытие

Слайд 34Пример
{последовательное чтение записей из нового файла}
ReSet(f1); {открываем новый файл

для чтения}
while not EOF(f1) do begin
Read(f1, Ch); {читаем из

файла}
Write(ch, ' ');
end;
WriteLn;
End.
Пример	{последовательное чтение записей из нового файла} ReSet(f1); 	{открываем новый файл для чтения} while not EOF(f1) do begin	Read(f1,

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика