Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Турбо Паскаль.doc
Скачиваний:
61
Добавлен:
23.09.2019
Размер:
939.52 Кб
Скачать

Задания

Организовать ввод, хранение в массиве, вывод на экран следующих данных:

  1. Информация о движении поездов включающая номер поезда, пункт отправления, пункт назначения, дата и время отправления, время в пути.

  2. Информация о продаже билетов в кинотеатре, включающая дату, время сеанса, ряд, место, признак проданного билета.

  3. Информация о знакоместах экрана монитора, работающего в текстовом режиме: строка, позиция в строке, символ, цвет символа, цвет фона.

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

  5. Информация о владельцах животных: фамилия владельца, вид животного, порода, окрас, пол, возраст животного.

  6. Экзаменационная ведомость: предмет, номер группы, дата экзамена, 10 строчек с фамилиями студентов, номерами их зачётных книжек, оценками.

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

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

  9. Информация о лекарствах, имеющихся в аптеке: название, фирма-производитель, вид (таблетки, мазь, микстура и т.д.), цена, дата изготовления, срок годности, признак разрешения свободной продажи.

  10. Информация о квартиросъёмщиках в многоквартирном доме: номер квартиры, фамилия квартиросъёмщика, подъезд, этаж, общая площадь, жилая площадь, количество проживающих.

  11. Информация о выдаче книг в библиотеке: шифр книги, тематика, автор, название, издательство, год издания, количество страниц.

Лабораторная работа №11 Работа с файлами

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

Порядок работы с файлами:

1. Описать тип файловой переменной, например f :

var

var

var

f : File of type;

f : Text;

f : File;

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

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

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

4. Осуществить чтение/запись в файл – команды Read/Write соответственно (для построчной работы с текстовыми файлами можно использовать ReadLn/WriteLn). Например, команда записи выглядит следующим образом: Write(f, а), где f – файловая переменная; а – переменная любого типа (byte, real, string и т. д., соответствующая типу файла). При обращении к командам Read/Write позиция чтения/записи в файле автоматически увеличивается на единицу.

5. Закрыть файл – команда Close(f).

Пример:

Var

f: text;

Begin

Assign(f, 'TEST.TXT'); { Cвязываем файловую переменную f } { c именем файла 'TEST.TXT' }

Rewrite(f); { Создаем новый файл }

WriteLn(f,'Исходный текст'); { Записываем строку в файл }

Close(f); { Закрываем файл }

Append(f); { Открыть файл для добавления}

{ в его конец строки }

WriteLn(f,'Добавляемый текст'); { Добавляем строку }

Close(f); { Закрываем файл }

End.

Ниже приведено описание процедур и функций, работающих с файлами:

Procedure Append(var f : Text);

Открывает существующий текстовый файл f для дополнения.

Procedure Assign(var f; name : String);

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

Procedure Close(var f);

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

Function Eof(var f) : Boolean;

Показывает значение Истина (True) при наличии признака конца файла для типизированных или нетипизированных файлов, указываемых файловой переменной f.

Function FilePos(var f) : Longint;

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

Function FileSize(var f) : Longint;

Показывает текущий размер файла f в байтах. Если файл пуст, то 0.

Procedure Reset(var f [ : file; RecSize : Word ] );

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

Procedure Rewrite(var f : file [;RecSize : Word ] );

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

Procedure Seek(var f; n : Longint);

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

Procedure Truncate(var f);

Усекает размер файла f до текущей позиции в файле.

Ниже приведен пример программы, которая открывает сразу два файла (один для чтения, а второй создает вновь для записи). Командой Readln(f1,s); из первого файла считывается строка s. В цикле For организуется доступ к ее отдельным символам и производится замена буквы k на K. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в цикле RepeatUntil и завершается при нахождении конца первого файла Eof(f1).

Var

f1,f2:text;

s:string;

i:byte;

Begin

Assign(f1, 'text.txt');

Assign(f2, 'text_new.txt');

Reset(f1);

Rewrite(f2);

Repeat

Readln(f1, s);

for i:=1 to Length(s) do

if s[i]='k' then s[i]:='K';

WriteLn(f2, s);

Until Eof(f1);

Close(f1);

Close(f2);

End.

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

Var

f1,f2:file of char;

ch:char;

Begin

Assign(f1, 'text.txt');

Assign(f2, 'text_new.txt');

Reset(f1);

Rewrite(f2);

Repeat

Read(f1, ch);

if ch='k' then ch:='K';

Write(f2, ch);

Until Eof(f1);

Close(f1);

Close(f2);

End.

Задания

Вариант 1

а) Создать текстовый файл, в котором имеется 100 строк и в каждой строке содержится ее номер.

б) Создать программу, которая все числа в файле, кратные 10, заменяет символом «!».

Вариант 2

а) Создать файл, состоящий из 10 записей. Каждая запись должна иметь следующую структуру: фамилия, номер телефона, адрес. Заполните файл данными о студентах Вашей группы.

б) Создать программу, запрашивающую фамилию и выдающую из созданного ранее файла номер телефона и адрес.

Вариант 3

а) Создать файл, состоящий из 15 записей. Каждая запись должна иметь следующую структуру: фамилию, дату рождения (год, месяц, день). Заполните файл данными о студентах Вашей группы.

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

Вариант 4

а) Создать файл, состоящий из 15 записей, в которых хранится информация о имеющихся в лаборатории химических реактивах. Каждая запись должна иметь следующую структуру: название вещества, масса или объем, степень очистки, номер шкафа, номер полки. Заполните файл данными.

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

Вариант 5

Создать программу, которая обрабатывает текстовый файл таким образом, что, начиная с третьей строки, все буквы «Р» заменяет на буквы «Л».

Вариант 6

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

Вариант 7

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

Вариант 8

а) Создать программу, которая записывает в файл типа byte 1000 случайных чисел от 0 до 255 и программу, которая записывает такие же числа в текстовый файл.

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

Вариант 9

Создать программу, которая выводит на экран сообщение «Привет!», причем информацию о цвете букв, фона, расположении надписи на экране берет из файла privet.cfg, созданного ранее.

Вариант 10

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