Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metodichka_red._sent2 (2).doc
Скачиваний:
6
Добавлен:
02.09.2019
Размер:
1.07 Mб
Скачать

Вопросы к практическим занятиям

  1. Что понимается под записью в языке Паскаль?

  2. Приведите пример записи.

  3. Как объявляется запись?

  4. Какие операции допустимы над элементами записи?

  5. Для чего предназначено уточненное имя?

  6. Как организовать ввод и вывод данных записи?

  7. Как записывается уточненное имя?

  8. Чем отличается запись от массива?

  9. Можно ли использовать в записи элементы одного типа?

  10. Какие операции допустимы над записью в целом?

Задание к практическим занятиям

Комплексное задание.

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

  • По данной фамилии абонента выдает номер телефона;

  • Определяет количество телефонов, установленных с начала заданного года;

  • Ищет абонентов по данным первым n буквам (выдаетсписок абонентов и номера их телефонов);

  • Ищет номер телефона абонента по его фамилии и инициалам;

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

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

  • Список сотрудников пенсионного возраста с указанием стажа работы;

  • Списки сотрудников по заданной должностной категории с указанием отдела;

  • Смета расходов на заработную плату по заданному отделу;

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

  1. Дан файл, содержащий сведения об экспортируемых товарах: указывается наименование товара, страна, импортирующая товар, стоимость и объем поставляемой партии в штуках. Составить программу вывода списка:

  • Стран, в которые экспортируется данный товар, общий объем его экспорта и сумму денежного оборота;

  • Стран, в которые производятся поставки товара, в порядке убывания объема сделок;

  • Экспортируемых товаров в порядке убывания общей стоимости поставок.

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

  • Списка просроченных товаров с указанием их стоимости;

  • Стоимости товаров по годам выпуска;

  • Списка товаров, подлежащих использованию в течение месяца, с указанием их цены и количества.

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

  • Списка книг заданного автора, находящихся в коллекции;

  • Списка книг, нахлдящихся на заданном стеллаже;

  • Списка книг, находящихся в коллекции и изданных до заданного года;

  • Списка книг, в названии которых встречается заданное слово, с указанием полного названия книги, ее автора, года издания.

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

  • Есть ли в библиотеке книга с данным названием: если да, то можно ли ее взять;

  • Есть ли в библиотеке книги данного автора; если есть, то какие;

  • Какие книги взял данный читатель;

  • Какую часть библиотеки составляют книги, изданные за последние 10 лет;

  • Сколько книг должно быть в наличии.

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

  • количество автомобилей каждой марки;

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

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

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

  • содержащийся в фонотеке;

  • заданного направления;

  • из репертуара заданного исполнителя;

  • заданного автора.

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

  • заданного режиссера;

  • с заданным актером (актрисой) в главной роли;

  • отсортированного по году выпуска;

  • выпущенных в заданной стране;

  • с заданной характеристикой (которые выпущены в заданной стране).

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

  • какой самолет и на какой площадке находится в данный момент времени;

  • на какой самолет идет посадка в заданный момент времени;

  • какой самолет должен приземлиться в ближайшим;

  • какой самолет должен вылететь первым после заданного часа;

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

7.4 Файлы

Файл – именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного виртуального диска).

Особенности файла:

  • имеет имя, что дает возможность работать одновременно не с одним файлом;

  • содержит компоненты одного и того же типа;

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

Файловый тип или переменную задают одним из трех способов:

  1. < имя> = FILE OF <тип>, типизированный файл;

  2. < имя> = TEXT, текстовые ;

  3. < имя> = FILE, нетипизированные ;

где < имя> - имя файлового типа – правильный идентификатор,

FILE OF – зарезервированные слова (файл из),

TEXT – имя стандартного типа текстовых файлов,

<тип> - любой тип Турбо Паскаля, кроме файлов.

Пример - задания файлов:

type

product = record;

name: string;

code: word;

cost : comp

end;

text80 = file of string [80];

var

f1: file of char; {- типизированный}

f2: text; {- текстовый}

f3: file; {- нетипизированный}

f4: text80; {- типизированный}

f5: file of product; {- типизированный}

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

Типизированные – содержат машинное представление чисел, структур, символов, т.е. хранят данные в том же виде, что и память ПК. С их помощью можно осуществлять обмен данными между диском и рабочей областью памяти, но нельзя вывести данные на экран.

Нетипизированные – тоже содержат машинное представление чисел, структур, символов. Отличие от типизированных – данные не определенного типа, а произвольный набор байтов независимо от их структуры и природы.

Файлы становятся доступными только после выполнения процедуры открытия файлов. Она связывает ранее объявленную файловую переменную с именем существующего или вновь создаваемого файла. Осуществляет эти функции стандартная процедура ASSIGN:

ASSIGN (<Ф.П.>, <ИМЯ ФАЙЛОВ>);

где <Ф.П.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа).

<ИМЯ ФАЙЛОВ> – текстовое выражение содержащие имя файла или логическое устройство.

Пример- доступа к файлам:

Var

f: text; { объявляем файловую переменную }

Begin

Assign ( f, A:\TST.doc)

{связывает физический файл A:\TST.doc на диске А: с логическим файлом f }

End.

Или

Var

finp : text;

fout : file of string;

const

name = ‘c:\dir\subdir\out.txt’;

begin

assign (finp,’123.dat’);

assign (fount, name);

end.

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

Стандартная процедура для записи в файл REWRITE (<ф. п >);

В Турбо Паскале разрешается обращаться к типизированным файлам открытым процедурой RESET (т. е для чтения информации) с помощью процедуры WRITE (т.е. для записи информации). Для текстовых файлов открытых RESET нельзя использовать WRITE. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший дисковый файл. Процедура APPEND (<ф.п.>) инициирует запись в ранее существовавший текстовый файл для его расширения. Применяется только к текстовым файлам. Процедуры и функции для работы с файлами приведены в приложении №4.

Текстовые файлы:

Текстовый файл трактуется в ТП как совокупность строк переменной длины. Доступ к каждой, возможен лишь последовательно начиная с первой. В конце каждой строки ставится специальный признак EOLN (End of line), конец файла EOF(end of file). Эти признаки можно протестировать одноименными логическими функциями. Для доступа к записям применяются процедуры READ, READLN, WRITE, WRITELN.

READ (< ф.п >, <сп. ввода>).

Пример:

Const

N=1000; {Максимальная длина ввода}

Var

f : text

m: array [1. . N] of real;

i : integer;

begin

assign(f, ‘prog.dat’);

reset(f);

i:=1;

while not EOF(f) and (i<= N) do

begin

read(f,m[i]);

inc(i)

end;

close (f)

end.

Типизированные файлы

Длина любого компонента строго типизированного файла строго постоянна, что дает организовать доступ к каждому из них. Перед первым обращением указатель файла стоит в его начале и указывает на первый компонент с номером 0. Основные процедуры READ, WRITE.

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

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

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

Пример:

Var

F: file;

Begin

Assign (f, ‘myfile.dat’);

Reset (f, 512);

. . . . .

end.

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