Лабораторная работа №12. Программирование задач с использованием типизированного файла (2 часа)




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

 

Контрольные вопросы:

1. Дайте определение типизированного файла.

2. Что такое последовательность элементов одного типа?

3. Для чего предназначены бестиповые файлы?

Задачи:

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

2. Работать с типизированным файлом (редактирование, внести изменение, сортировка и т.т.д)

3. Сохранить типизированный файл

 

Литературы:

Основная литература:

1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.: Наука, 1988. - 320 с.

2. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.: Наука, 1987. - 112 с.

3. Вирт Н. Алгоритмы и структуры данных./Пер. с англ. М.: Мир, 1989. - 360 с.

4. Грогоно П. Программирование на языке Паскаль. - М.: Мир, 1982. - 382 с.

5. Дантеманн Дж., Мишел Дж., Тейлор Д. Программирование в среде Delphi: Пер. с англ. - Киев: НИПФ “ДиаСофтЛтд.”, 1995. - 608 с.

6. Епанешников, Фолкнер Д.Р. Delphi: Пер.с англ.- М.: БИНОМ, 1995. - 464 с.

7. Орлик С.В. Секреты Delphi на примерах: - М.: БИНОМ. - 316 с.

Дополнительная литература:

1. Перминов О.Н. Программирование на языке Паскаль. М.: Радио и связь, 1988. 224 с.

2. Пильшиков В.Н. Сборник упражнений по языку Паскаль: Учеб. пособие для вузов. - М.: Наука, 1989. - 160 с.

3. Прайс Д. Программирование на языке Паскаль: Практ. руководство. - М.: Мир, 1987. - 232 с.

4. Рубенкинг Н. Турбо Паскаль для Windows: В 2 т.; Пер. с англ. - М.: Мир, 1993. - 536

5. Фаронов В.В. Турбо Паскаль. В 3-х книгах. Книга 1. Основы Турбо Паскаля. - М.: Учеб.-инж.центр МВТУ-ФЕСТО ДИДАКТИК, 1992. - 304 с.

6. Фаронов В.В. Паскаль и Windows. - М.: Учеб.-инж.центр МВТУ-ФЕСТО ДИДАКТИК, 1994. - 539 с.

Методические указания:

Типизированный файл – это файл, в котором содержатся однотипные данные. Типизированный файл задается с помощью 2-х ключевых слов «file of». После слова «of» указывается тип файла, например integer, real, char, string и т.д. Тип файла может быть любым за исключением файлового типа (не может быть файла файлов) и комбинированного типа, один из компонентов которого имеет файловый тип.

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

Напишем программу, которая создаст своеобразную базу данных, хранящей сведения о студентах: их именах, номерах курса и групп.

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

01.Program file11;

02.uses crt;

03.Type Student = record

04.fio: string [20];

05.kurs, group: integer;

06.end;

07.var zap: student;

08.f: file of student;

09.name: string;

10.begin

11.clrscr;

12.Writeln ('Задайте имя файла');

13.Readln (name);

14.Assign (f, name);

15.Rewrite (f);

16.Writeln ('Введите фамилию и инициалы студента');

17.Readln (zap.fio);

18.While zap.fio <> ' ' do

19.Begin

20.Writeln ('Введите номер курса и группы');

21.Readln (zap.kurs, zap.group);

22.Write (f, zap);

23.Writeln ('Введите фамилию и инициалы следующего студента ');

24.Readln (zap.fio);

25.End;

26.Close(f);

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

28.readln

29.End.

Строка №3-№6. Объявляем в программе тип Record и указываем для него компоненты. Первый компонент «fio» (строка №4) будет описывать фамилию и инициалы студента. Компоненты «kurs» и «group» будут описывать соответственно номер курса и номер группы.

Строка №7. Объявляем переменную «zap» и указываем для нее тип «Student». Теперь с помощью переменной «zap» мы можем обратиться к любому компоненту записи.

Строка №8. Создаем файловую переменную «f» и указываем для нее тип «Student». Таким образом, мы создаем файл записей, где будет храниться информация о студентах.

В строке №9 создаем переменную «name», которая понадобится нам для создания имени файла.

Строка №13. Вводим с клавиатуры имя файла. Это имя будет записано в переменную «name».

Строка №14. Связываем файловую переменную «f» с именем файла. Как и в случае с текстовыми файлами связывание файловой переменной с файлом производится с помощью процедуры Assign

Строка №15. Открываем файл для записи. Открытие типизированного файла для записи производится аналогично текстовым файлам с помощью процедуры Rewrite. Так как самого файла не существует, он будет создан автоматически и будет иметь имя, которое мы задали в строке №13.

Строка №17. После вывода на экран сообщения (строка №16) мы вводим значение для 1-ого компонента записи (фамилию и инициалы студента).

Строка №18. Записываем цикл. До тех пор пока не будет введено пустое значение для компонента «zap.fio» необходимо выполнять действия, записанные в строках №20 - №24. Знак <> означает неравно. После этого знака в апострофах записывается значение, которому не должен быть равен компонент «zap.fio». Внутри апострофов мы ставим знак пробела. Таким образом, цикл будет выполняться до тех пор, пока вместо фамилии очередного студента не будет нажата клавиша «пробел».

В цикле будут выполняться поочередно 4 действия:

· Строка №20. Выводим на экран сообщение.

· Строка №21. Вводим с клавиатуры через пробел номер курса и номер группы.

· Строка №22. В файловую переменную «f» заносим содержимое записи «zap».

· Строка №23. Выводим на экран сообщение.

· Строка №24. Вводим с клавиатуры фамилию и имя студента.

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

 

Решение задачи:

 

 



Поделиться:




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

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


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