Program task05;
type Export = record
name : string;
country : string;
count : integer;
end;
var data, sortdata : file of Export;
nam, nam1, nam2, bf : Export;
i, j, schet : integer;
names : text;
s : string;
choice : char;
searchname : string;
schet1 : boolean;
begin
schet:=0;
schet1:=false;
assign(names,'tovary.txt');
assign(data,'dannie');
assign(sortdata, 'otsortirovannie');
reset(names);
reset(data);
writeln(' Здравствуйте! Хотите просмотреть исходные сведения? Y/N? ');
readln(choice);
if choice = 'Y' then begin
while not Eof(data) do begin
read(data, nam);
writeln(nam.name, ' ', nam.country, ' ', nam.count);
writeln;
end;
close(data);
writeln;
end;
writeln( 'Хотите просмотреть список экспортируемых товаров? Y/N? ');
readln(choice);
if choice = 'Y' then begin
while not EOF(names) do begin
readln(names,s);
writeln(s);
end;
close(names);
end;
writeln(' Итак, введите наименование товара, который будем искать согласно списку: ');
readln(searchname);
reset(data);
writeln(' Товар ', searchname, ' экспортировался в страны: ');
writeln;
while not EOF(data) do begin
read(data, nam);
if nam.name = searchname then begin
writeln(nam.country);
schet:=schet+nam.count;
schet1:=true;
end;
end;
if schet1 = true then begin
writeln( 'Общий объем экспорта товара ', searchname, ' составил ', schet)
end
else writeln(' Упс! Товар не найден в сведениях об экспорте');
close(data);
rewrite(sortdata);
reset(data);
for i:=0 to filesize(data)-2 do
for j:=i+1 to filesize(data)-1 do
begin
seek(data,i);
read(data,nam1);
seek(data,j);
read(data,nam2);
{если первые 2 буквы поля name больше по алфавиту тех же букв второго}
if copy(nam1.name,1,2)>copy(nam2.name,1,2)then
begin
bf:=nam1;{меняем их местами}
nam1:=nam2;
nam2:=bf;
write(sortdata,nam1);
write(sortdata,bf);
end;
end;
close(data);
close(sortdata);
end.