Задания для самостоятельного решения




Работа с файлами

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

 

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

1) Работа с типизированными файлами

 

Формат описания файлового типа:

Type <имя типа>= file of <тип компонент>;

Var <имя переменной>: <имя типа>;

или

Var <имя переменной>: file of <тип компонент>;

 

Например:

 

type f_int = file of integer; //описание типа файла целых чисел

f_str = file of string[20];// описание типа файла строк

student = record

fam: string[20];

kurs,gruppa: integer

end;

file_stud = file of student;// описание типа файла записей

 

var f1,f2: f_int; fs: f_str; dan: file_stud;

 

или

 

Var f1: file of integer;

f2: file of real;

f3: file of char;

 

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

1. Assign(f, fname) – связывание файловой переменной f с именем файла fname. В дальнейшем обращение к файлу происходит через файловую переменную f. Этой процедурой всегда начинается любая работа с файлом.

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

3. Reset(f) – открывает файл и устанавливает указатель в начало файла. Содержимое файла не изменяется, а сам файл открывается для чтения.

4. Read(f,х1[,х2,…,хn]) – чтение из файла текущей компоненты в переменную P1. Указатель при этом перемешается на следующую компоненту файла.

5. Write(f,х1[,х2,…,хn]) – запись значения переменной p1 в файл на то место, где стоит указатель. После записи указатель перемешается к следующей компоненте.

6. Close(f) – закрывает файл.

7. Eof(f) – логическая функция – возвращает true, если указатель файла находится в конце файла и false в противном случае.

Задание 1. Записать таблицу квадратов целых чисел в файл с именем PRIMER.DAT.

 

1) Рассмотреть программу решения задачи. Объяснить работу программы.

 

Const n=100;

Var F: file of integer;

i,a:integer;

Begin

Writeln('Создание таблицы квадратов и запись в файл primer.dat ');

Assign(f, 'c:\stud\m1\primer.dat');

Rewrite(f); //создание нового файла

For i:=1 to n do begin

a:=i*i;

Write(f,i,a); //запись таблицы в файл

end;

Close(f); //закрытие файла

End;

 

2) Проверить работу программы на компьютере.

3) Проверить наличие файла primer.dat на компьютере.

Задание 2. Просмотреть таблицу квадратов, записанную в файле primer.dat.

 

1) Рассмотреть программу решения задачи. Объяснить работу программы.

 

var f: file of integer;

a,b:integer;

Begin

Assign(f,'c:\stud\m1\primer.dat');

Reset(f); //открываем файл для чтения

While not eof(f) do begin //пока нет конца файла выполнять

read(f,a,b); //читаем две компоненты - число и его квадрат

Writeln(’число-’,a,’ его квадрат-’,b); //выводим на экран

end;

Close(f); //закрываем файл

end;

 

2) Проверить работу программы на компьютере.

 

Задания для самостоятельного решения

 

1. Найти максимальный элемент файла и его порядковый но­мер.

2. В файле содержатся числа от 1 до 10. Сосчитать, сколь­ко раз встречается каждое из них.

3. Разбить данный файл на два, записав в первый из них положительные, а в другой - все остальные числа.

4. Проверить, является ли файл целых чисел упорядоченным по возрастанию.

5. Определить, встречается ли число х в данном файле це­лых чисел.


 

2) Работа с текстовыми файлами

Формат описания текстовых файлов:

Var <имя переменной>: Text;

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

Например:

Var f,f1,f2:Text;

 

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

1. Assign(f,fname); – связывание физического имени, содержащимся в строке fname, с логическим именем f.

2. Rewrite(f); – открытие для создания нового текстового файла (для записи).

3. Reset(f); – открытие уже существующего текстового файла (для чтения).

4. Append(f); – открытие уже существующего текстового файла (для дозаписи в конец – только для текстовых файлов).

5. Close(f); – закрытие файла.

6. Readln(f,S); – чтение из файла f текущей строки и запись ее в S.

7. Writeln(f,S); – запись строки S в файл f.

8. Read(f,Ch); – чтение текущего символа ch из файла f.

9. Write(f,Ch); – запись символа ch в файл f.

Процедура Writeln(f); записывает в файл "пустую строку", а процедура Readln(f); пропускает очередную строку.

10. Eof(f); – возвращает true, если конец файла.

11. Eoln(f); – возвращает true, если указатель файла достиг маркера конца строки (только для текстовых файлов).

 

Задание 1. Создать текстовый файл (количество строк заранее не известно).

 

1) Рассмотреть программу решения задачи. Объяснить работу программы.

 

Var

F: Text; //файловая переменная

St: string;

Begin

Assign(f, 'c:\stud\m1\primer.txt');

Rewrite(f);

Writeln(’Введите строку’);

Readln(St);

While St<>'' do

Begin

Writeln(f,st); //записываем строку в файл

Writeln(’Введите строку’);

Readln(St);

End

Close(f);

Writeln('Файл создан.');

End.

 

2) Проверить работу программы на компьютере.

3) Проверить наличие файла primer.txt на компьютере.

 

Текстовые файлы можно просматривать, редактировать и т.д.

 

 

Задание 2. Составим программу, которая выводит текстовый файл на экран.

 

1) Рассмотреть программу решения задачи. Объяснить работу программы.

Var

F: Text; //файловая переменная

st: string;

Begin

Assign(f, 'c:\stud\m1\primer.txt');

Reset(f);

While not Eof(f) do begin

Readln(f,st);

Writeln(st);

end;

Close(f);

End.

 

2) Проверить работу программы на компьютере.

 

 

Задания для самостоятельного решения

1. Дан текстовый файл. Найти количество вхождений данного символа в текстовом файле.

2. Дан текстовый файл. Найти строку в текстовом файле (вывести на экран), в которой данный символ встречается максимальное количество раз.

3. Дан текстовый файл. Найти самую "длинную" строку в текстовом файле.

4. Дан текстовый файл. Найти среднее число букв в одном слове текста.

5. Дан текстовый файл. Сколько раз каждый знак встречается в данном тексте.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: