Дан Текст Из Строчных Латинских Букв, За Которым Следует Точка. Напеча

Kuba174

New Member
10.05.2013
2
0
#1
ФАЙЛЫ ЗАПИСЕЙ (ТИПИЗИРОВАННЫЕ ФАЙЛЫ)

Цель работы: освоение приемов объявления файлов и овладение навыками обработки типизированных файлов.
Образец решения задачи.
Задача. Имеются данные о нескольких линиях электропередач (ЛЭП): шифр, напряжение, протяженность, год ввода в действие, дата последних линейных работ. Требуется выдать справку о ЛЭП, введенных в действие более 10-ти лет назад, а также выдать сведения о ЛЭП минимальной протяженности.
Постановка задачи.
Сведения о ЛЭП занесем в типизированный файл. Каждый элементами файла – запись такой же структуры, как и в разобранной задаче лабораторной работы № 9 (Записи).
Входные данные.
Сведения о ЛЭП – sved (тип - файл записей).
Текущий год – present_year (константа =2011).
Выходные данные.
Сведения о ЛЭП минимальной протяженности – minn (тип – запись).
Справка о ЛЭП, введенных в действие более 10-ти лет назад – элементы типизированного файла, отвечающие заданному условию задачи.
Алгоритм.
1. Заполнение файла.
2. Вывод сведений о ЛЭП, введенных в действие более 10-ти лет назад.
3. Нахождение ЛЭП минимальной протяженности.
4. Вывод сведений о ЛЭП минимальной протяженности.
Текст программы
Модуль 1.
Код:
unit op;
interface
const
present_year=2011;
type
lep= record
сode	 : string[8];
voltage : word;
space	 : word;
year	  : 1900..2010;
data	  : record						 
day	  : 1..31;
month : 1..12;
year	 : 1900..2010; 
end;
end;
svedd = file of lep;
implementation
end.
Модуль 2.


Код:
unit obrabotka;
interface
uses op;
procedure vvod (var sved:svedd);
procedure spravka (var sved:svedd);
procedure min_prot (var sved:svedd; var lepp: lep);
implementation
procedure vvod;
var
lepsved  : lep;
ch		  : char;
begin
rewrite (sved);		 {откроем файл для записи}
ch:=’y’;
while (ch=’y’) or (ch=’д’) do
begin
with lepsved do
begin
write('Введите шифр ЛЭП’);
readln(code);
write('Введите напряжение ЛЭП');
readln(voltage);
write('Введите протяженность ЛЭП');
readln(space);
write('Введите год ввода в действие ЛЭП');
readln(year);
write('Введите дата последних линейных работ на ЛЭП');
with data do begin
readln(day);
readln(month);
readln(year);
end;
end;
write(sved, lepsved);	 {запись элемента в файл}
writeln(‘Будете еще вводить данные, если ‘да’, то наберите ‘y’или ‘д'’);
readln(ch);
end;
close(sved);	  
end;
procedure spravka;
var
lepsved  : lep;
begin
reset(sved);				 {откроем файл для чтения}
writeln(‘Cправкa о ЛЭП, введенных в действие более 10-ти лет назад’);
while NOT EOF(sved) do
begin
read(sved, lepsved);	 {чтение элемента из файла}
with lepsved do
if present_year – year>10 then 
writeln(code:12, voltage:6, space:6, year:6);
end;
close(sved); 
end;
procedure min_prot;
var
min		 : word;
lepsved  : lep;
begin 
reset(sved);			 {откроем файл для чтения}
read(sved, lepsved);		 {чтение элемента из файла}
min:= lepsved.space;
lepp:= lepsved;
while NOT EOF(sved) do
begin
read(sved, lepsved);		{чтение элемента из файла}
if lepsved.space<min then begin
min:=lepsved.space;
lepp:= lepsved;
end;
end;
close(sved); 
end;
begin
assign(sved, 'lep_zap');	 
end.
Основная программа.
Код:
uses 
op, obrabotka;
var
minn		 : lep;
sved		 : svedd;
begin
vvod (sved); 
spravka (sved); 
min_prot (sved, minn);
writeln(‘Сведения о ЛЭП, имеющую минимальную протяженность’);
with minn do
writeln(code:12, voltage:6, space:6, year:6)
end.
ВАРИАНТЫ.

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