1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Ребята!!!Помогите пожалуйста!!!Мне необходимо отсортировать записи в типизированном файле по полю строкового типа.Вот листинг всей программы!Я не знаю,как вывести результаты на экран..Подскажите?!
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:fileof 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;
beginif 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) thenbeginif (lA = lB) then Compare := 0elseif lA > lB then Compare := - 1else Compare := 1;
endelseif ord(a[i]) < ord(b[i]) then
Compare := 1else
Compare := -1end;
begin
Assign(fan,adr);
rewrite(fan);
writeln('Введите данные по каждому животному');
for i:=1to n dobeginwith anim[i] dobegin
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:=1to n dobeginwith anim[i] doif age=a thenbegin
writeln('Животные такого возраста:');
writeln('Фамилия владельца: ',Fio,';Кличка животного: ',Name,';порода: ',Poroda);
end;end;
writeln;
write('Введите кличку ');readln(b);
for i:=1to n dobeginwith anim[i] doifName=b thenbegin
writeln('Данные о животных с такой кличкой:');
writeln('ФИО владельца: ',Fio,';возраст животного: ',age,';порода: ',Poroda);
end;end;
writeln;
for i:=1to n do{здесь надо зделать сортировку по породам животных}begin
k:=compare(anim[i].poroda,anim[i+1].poroda);
if k=-1thenbegin
writeln(fan,anim[i+1],anim[i]);end;
end;
Close(fan);
end.