program zadan2;
uses crt;
type Tanim=record
Fio:string;
Name:string;
Poroda:string;
age:byte;
end;
const n=3;adr:string='an.doc';
var anim:array[1..n]of Tanim;
fan:file of Tanim;i,a:byte;b:string;K:integer;
function Compare(a, b: String): Integer;
var
i, n, lA, lB: Integer;
function Min(a, b: Integer): Integer;
begin
if a < b then
Min := a
else
Min := b;
end;
begin
lA := Length(a);
lB := Length(b);
n := Min(lA, lB);
i := 1;
while (i <= n) and (a[i] = b[i]) do inc(i);
if (i > n) then begin
if (lA = lB) then Compare := 0
else
if lA > lB then Compare := - 1
else Compare := 1;
end
else
if ord(a[i]) < ord(b[i]) then
Compare := 1
else
Compare := -1
end;
begin
Assign(fan,adr);
rewrite(fan);
writeln('Введите данные по каждому животному');
for i:=1 to n do begin with anim[i] do
begin
write('Введите ФИО владельца животного: ');readln(FIO);
write('Введите кличку животного: ');readln(Name);
write('Введите породу: ');readln(Poroda);
write('Введите возраст: ');readln(age);
end;
write(fan,anim[i]);end;
close(fan);
reset(fan);
writeln;
writeln('Введите возраст животного ');readln(a);
for i:=1 to n do begin
with anim[i] do
if age=a then begin
writeln('Животные такого возраста:');
writeln('Фамилия владельца: ',Fio,';Кличка животного: ',Name,';порода: ',Poroda);
end;end;
writeln;
write('Введите кличку ');readln(b);
for i:=1 to n do begin
with anim[i] do
if Name=b then begin
writeln('Данные о животных с такой кличкой:');
writeln('ФИО владельца: ',Fio,';возраст животного: ',age,';порода: ',Poroda);
end;end;
writeln;
for i:=1 to n do {здесь надо зделать сортировку по породам животных}
begin
k:=compare(anim[i].poroda,anim[i+1].poroda);
if k=-1 then begin
writeln(fan,anim[i+1],anim[i]);end;
end;
Close(fan);
end.
сортировка записей в файле |