Тема №5: программирование на языке turbo-pascal. Организация циклов. Операторы циклов. Составление программ с использование операторов цикла


ТЕМА №8: ФАЙЛЫ. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ТЕКСТОВЫЕ ФАЙЛЫ



бет4/5
Дата06.06.2016
өлшемі1.09 Mb.
#117344
1   2   3   4   5

ТЕМА №8: ФАЙЛЫ. ТИПИЗИРОВАННЫЕ ФАЙЛЫ. ТЕКСТОВЫЕ ФАЙЛЫ.

ПРОГРАММНО - ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. ТР5.

ЦЕЛИ И ЗАДАЧИ: Дать представление о файлах и средствах их обработки с помощью ТР5. Приобретение навыков составления программ с использованием файлов различного типа

ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:



Учащиеся должны знать:

  • Что такое файл;

  • Какие бывают файлы;

  • Что такое файловая переменная;

  • Как описываются типизированные файлы;

  • Процедуры и функции работы с файлами;

  • Процедуры и функции работы с типизированными и текстовыми файлами;

  • Как описываются текстовые файлы.

Учащиеся должны уметь:

  • Правильно описывать типизированные и текстовые файлы;

  • Правильно пользоваться файловой переменной;

  • Составлять программы с использованием типизированных и текстовых файлов;

  • Составлять простейшие программы с использованием процедур и функций работы с типизированными и текстовыми файлами.

ПЛАН-СОДЕРЖАНИЕ УРОКА



Основные понятия

Мы все время рассматривали задачи, в которых данные поступают с клавиатуры, а результаты выводятся на экран. Ни исходные данные, ни результаты не сохраняются. А если данных слишком много? Как записать их на диск? Для этого необходимо исходные данные и результаты оформить в виде файлов, которые хранятся на диске.



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

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

Отличие файла от массива: размещение на внешнем носителе, длина файла не задается, место элемента не определяется индексом.

Файлы бывают:



  • типизированные

  • нетипизированные

  • текстовые

Файл объявляется в разделе описания переменных с указанием типа элементов файла.

Например:

Var F1: file of integer; F2: file of char; F3: text; F4: file;

Типизированными файлами называются файлы, в описании которых присутствует указание типа. Типизированные файлы – это файлы с прямым доступом к компонентам (записям).

Нетипизированный файл – это просто последовательность байтов, без конкретизации структуры.

Файл, компонентами которого являются данные символьного типа, называется текстовым. Отличие текстовых файлов от типизированных - наличие строковой структуры. В текстовые файлы можно записывать любую информацию, в том числе числа. При этом они (числа) автоматически преобразуются в строковые величины, а при считывании из файла – обратное преобразование в числа.



Описание файлов:

Тип файла

Описание файла

Типизированный

Var F1: file of integer;

F2: file of char;



Нетипизированный

Var F3: file;

Текстовый

Var F: text;

Файл на техническом носителе определяется полным именем (<путь>\<собственно имя>.<расширение>). Для обозначения файла и работе с ним в программе используется файловая переменная.



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

Особенности файловой переменной:

  1. Ей нельзя присваивать какие-либо значения

  2. Она не может участвовать в логических операциях

  3. Она не может входить в математические выражения

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

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



Процедура

Назначение

Замечание

Assign(f, ‘name’)

Связывает файловую переменную с конкретным файлом (привязывает переменную к имени файла). Ставится перед первым использованием файловой переменной.

Можно имя файла ’name’ задавать через строковую перемен­ную (S): Assign(f, S)

Reset(f)

Открывает существующий файл и устанав­ливает указатель на начало записи.

Для любых файлов

Rewrite(f)

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

Для любых файлов

Close(f)

Закрывает открытый файл

Для любых файлов

Erase(f)

Стирает предварительно закрытый файл

Для любых файлов

Rename(f, f1)

Переименовывает файл f в файл f1. Файл f должен быть предварительно закрыт

Для любых файлов

EOF(f)

Получение сведений о конце файла True, если указатель указывает на метку конца файла, иначе - False

Логическая функция.

Read(f,v1,…vn)

Считывает записи из файла f в переменные v1, …vn

Для типизированных и нетипизированных фай­­лов

Write(f,v1,…vn)

Записывает в файл f значения переменных v1,…vn

Для типизированных и нетипизированных фай­­лов

Readln(f,v1,…vn)

Считывает записи из файла f в переменные v1, …vn

в типизированных фай­лах недопус­ти­мо

Writeln(f,v1,…vn)

Записывает в файл f значения переменных v1,…vn

в типизированных фай­лах недопусти­мо

N:=filesize(F);

Определение количества записей в файле

Функция

Eoln(f)

True, если указатель на метке конца строки, иначе - False

Логическая функция. Для текс­товых фай­лов

Append(f)

Открывает файл и устанавливает указатель на метку конца файла

Применяется для до­­бавления записей

N:=filepos(f)

Выдает номер записи, на которую указывает указатель записи. Первая запись имеет номер 0.

Функция

seek(f,n)

Устанавливает указатель на запись с номером n




truncate(f)

Отсекает все записи, находящиеся после указателя и в этой позиции записывает метку конца файла.





Пимеры программ:

  • Пример записи типизированных файлов:

var f: filt of integer;

assign(f, ‘file’); … rewrite(f); …write(f, v1,v2,…, vn); clos(f);



  • Пример считывания типизированных файлов:

var f: filt of integer;

assign(f, ‘file’); … reset(f); … read(f, v1,v2,…, vn); clos(f);


  • Пример записи в текстовый файл:

uses crt;

var f:text; r,i:integer; rr:string;

begin

clrscr;


rr:='Dautova';

assign(f,'dddddd');

rewrite(f);

writeln(f,rr);

for i:=1 to 20 do begin

r:=random(10);

writeln(f,r); end;

close(f);

end._


  • Считывание из текстового файла (см программу выше):

uses crt;

var f:text; r,i:integer; rr:string;

begin

clrscr;


assign(f,'dddddd');

reset(f);

readln(f,rr);

writeln(rr);

for i:=1 to 20 do begin

readln(f,r);

writeln(r); end;

close(f);

end._


  • Написать программу, вычисляющую корни квадратного уравнения и вывести результаты в файл.

Uses crt;

Var a,b,c,x1,x2, d: real; f:text;

Begin

Assign(f,’result.txt);



Rewrite(f);

Readln(a,b,c);

D:=b*b-4*a*c;

If d>=0 then

Begin

X1:=-b+sqrt(d)/(2*a);



X2:=-b-sqrt(d)/(2*a);

End;


Writeln(‘решени квадратного ур-я’);

Writeln(f,'a=',a:6:3,'b=', b:6:3,'c=',c:6:3);

If d<0 then writeln(f,’у урав-я нет корней’) else writeln(f, ‘корни: x1=’, x1:6:3,’x2=’, x2:6:3);

Close(f);

Writeln(‘рез-ты работы программы в файле result.txt’);

Repeat until keypressed; end.




  • На диске имеется файл с именем Karl.txt, в котором записана скороговорка:

"Карл у Клары украл кораллы, Клара у Карла украла кларнет."

Требуется подсчитать кол-во букв «К»

Uses crt;

Var f:text; s:integer; a:char;

Begin

Assign(f,’Karl.txt’); Reset(f);



S:=0;

While not eof(f) do Begin

While not eoln(f) do Begin

Read(f,a); If a=’k’ then s:=s+1;

End;

Readln(f);



End;

Close(f); Writeln(s);

Repeat until keypressed; end.


  • Ввести текст в текстовый файл f1. Переписать файл f1 в f2 – первую половину файла в прямом, а вторую – в обратном порядке следования символов.

Uses crt;

Var f1,f2:text; s,s1,sa,sb:string; a:char; n,y,i:integer;

Begin

Clrscr;


Assign(f1,’file1’); Assign(f2,’file2’);

Rewrite(f1);

Readln(s); Writeln(f1,s); Close(f1);

Reset(f1); Rewrite(f2); Read(f1,s1);

N:=lenght(s1); Y:=n div 2; Writeln(y);

Sa:=’’; sb:=’’;

For i:=n downto y+1 do Sa:=sa+s1[i];

Writeln(sa);

For i:=1 to y do Sb:=sb+s1[i];

Writeln(sb);

S1:=sb+sa;

Writeln(s1); Write(f2,s1);



Close(f1); Close(f2); Repeat until keypressed; end.


Достарыңызбен бөлісу:
1   2   3   4   5




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет