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

Пример выполнения задания 10

Даны сведения о книгах: название, автор, год издания, цена. Вывести на экран название книги писателя, фамилия которого начинается с буквы «Т», и, кроме того, данные о самой дорогой книге.

Исходные данные можно ввести с клавиатуры(см. п. 5), но при работе с массивом из записей удобнее вводить данные из текстового файла, который подготовлен заранее.

Текстовый файл можно создать в редакторе Турбо Паскаля:

– в меню FILE выбрать NEW,

– ввести данные в соответствии с описанием полей записи,

– в конце последней строки обязательно нажать ENTER?

– записать файл в свою папку с именем, указанным в программе (в нашей программе имя файла kniga.txt).

Пусть в текстовый файл введены данные:

Евгений Онегин

Пушкин А.С.

2003

210

Война и мир 

Толстой Л.Н

1998

190

Петр Первый

Толстой А.Н

1999

175

Степан Разин

Чапыгин А.П.

2000

120

15 символов

12 символов

число

число

program lab9;

uses crt;

type zap = record book:string[15];

name:string[12];

year:integer;

many:integer;

end;

var f: text;

i, n, k:integer;

max:integer;

kniga:array[1..100]of zap;

begin clrscr;

assign(f,'kniga.dat');

reset(f); n:=0;

while not eof(f) do

begin n:=n+1;

with kniga[n] do

readln(f, book, name, year, many);

end;

{Выбор книги писателя с фамилией, начинающейся на букву Т}

for i:=1 to n do

with kniga[i] do

if name[1]=’Т’ then writeln(book:15, name:16);

writeln;

{Выбор самой дорогой книги}

max:= kniga[1].many; k:=1;

for i:=1 to n do

with kniga [i] do

if many>max then

begin max:=many;

k:=i

end;

with kniga [k] do

writeln(‘Cамая дорогая книга: ’,

, name:15, adres:15 year:6, many:6);

readkey;

close(f);

end.

В результате работы программы на экране появится текст:

Война и мир       Толстой Л.Н

Петр Первый      Толстой А.Н.

Евгений Онегин Пушкин А.С.   2003   210

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

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

Типизированные файлы определяют упорядоченные совокупности произвольного числа однотипных элементов с прямым (произвольным) и последовательным методом доступа.

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

Прямой (произвольный) доступ состоит в непосредственном поиске данных по заданному номеру или продвижении к заданному месту файла по номеру записи.

Файловый тип или переменную файлового типа можно задать с помощью ключевых слов file of и указания типа компонентов или в разделе описаний типов:

1) type fl = file of тип элементов;

var f1, f2 : fl ;

или в разделе описания переменных:

2) var f1, f2 : file of тип элементов;

Например:

type data = record day : 1..31;

month : 1..12;

year : integer

end;

fil1 = file of integer;

var f1, f2: file of data;

 fn: fil1;

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

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

f1:= f2;    f1 > f2;.

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