ПРИМЕР 1: Создать файл для хранения записей вида:
Запрос выводится с новой строки для каждого поля. Например:
Телевизор
Название . . . . . . . . . РЕКОРД
Цена (тыс.) . . . . . . . 3000
Диагональ . . . . . . . . 59
Изображение (ц/ч) . . Ц
Производитель . . . . .
Завод . . . . . . . . Фотон
Город . . . . . . . . Москва
Директор . . . . . Иванов
После записи файла осуществить поиск в нем названий телевизоров стоиостью менее 2 млн.руб.
program zapis;
const maxn = 30;
type TV = record
Name : string[20];
Price : 1 .. 32000;
Diagonal : 1 .. 50;
Color : char;
Proizv : record
city : string[25];
factory : string[50];
director : string[30];
end;
end;
tele = file от TV;
var f : tele;
was : boolean;
z:TV;
begin
writeln ('Ввод записей');
writeln ('Признак окончания ввода - *');
assing (f,'f.dat');
rewrite(f);
writeln (' Телевизор ');
write (' Название . . . . . .');readln(z.name);
while z.name <> ' * ' do
begin
write (' Цена (тыс.). . . . . .');readln(z.Price);
write (' Диагональ . . . . . .');readln(z.Diagonal);
write (' Изображение (ц/ч). . .');readln(z.Color);
writeln (' Производитель. . . . . ');
with z.Proizv do
begin
write (' Завод . . . . . . .');readln(city);
write (' Город . . . . . . .');readln(factory);
write (' Директор. . . . . .');readln(director);
tnd;
write (f,z)
writeln (' Телевизор');
write ('Название .......'); readln (z.name)
end;
close (f);
writeln ('Файл сформирован');
reset (f);
was:=false; {признак того, что искомые телевизоры найдены)
writeln ('Названия телевизоров стоимостью менее 2 млн.руб.');
while not eof(f) do
begin
read (F,Z);
if z.price < 2000 then
begin
writeln (z.name);
was:=true
end
end;
if was=false then
writeln ('Не найдены');
close(f)
end.
Упражнения:
Дан файл f, компоненты которого являются целыми числами. Найти наибольший и наименьший из компонентов файла.
Дан файл f, компоненты которого являются целыми числами. Найти количество четных чисел и количество квадратов нечетных чисел среди компонентов файла.
Даны символьные файлы f1 и f2.Поменять местами содержимое файлов, не используя стандартных процедур.
Дан файл f, компоненты которого являются действительными числами. Найти сумму и произведение компонентов файла, а также значение последнего элемента.
Дан файл f, компоненты которого являются символами. Получить копию файла в файле g, не используя стандартных процедур.
Дан файл f, компоненты которого являются целыми числами. Записать в файл g все четные числа файла f, а в файл n-все нечетные.
Дан файл f, компоненты которого являются символами. Записать в файл g компоненты файла f в обратном порядке.
Дан файл f, компоненты которого являются целыми числами.. Переписать компоненты файла f в файл g, так чтобы в файле g сначала или отрицательные, затем положительные числа.
Даны символьные файлы f и g. Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет, то получить номер первой компоненты, в которой файлы f и g отличаются между собой.
Дан символьный файл f. Найти самое длинное слово в файле.
Дан текстовый файл f. Получить самую длинную строку файла.
Дан текстовый файл f. Записать в перевернутом виде строки файла f в файл g.
Дан текстовый файл f и строка s. Получить все строки файла f, содержащие в качестве фрагмента строку s.
Дан текстовый файл f. Получить самую короткую строку файла.
Дан текстовый файл f. Проверить соответствие числа открывающих и закрывающих скобок.
Даны текстовые файлы f и g. Определить совпадают ли компоненты файлов.
Дан текстовый файл f. Определить сколько строк в файле начинаются с символа 'р'.
Дан текстовый файл f. Вывести на печать последнюю из строк длиною 45 символов.
Дан текстовый файл f. Исключить пробелы, стоящие в начале его строк. Результат поместить в файл f1.
Дан текстовый файл f. Записать в файл g строки, содержащие менее 50 символов.
Достарыңызбен бөлісу: |