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

Задания

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

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

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

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

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

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

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

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

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

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

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

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

Тема 13 Работа с файлами

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

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

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'); { связываем файловую переменную 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. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в циклеrepeat-untilи завершается при нахождении конца первого файла 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]