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: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;
program zadan2; uses crt; const n=3;adr:string='an.dat'; type Trecanim=record Fio:string; Name:string; Poroda:string; age:byte; end; Tanim=array[1..n]of Trecanim; Tfan=file of Tanim;
var i,a1,j:byte;b1:string;anim:Tanim;fan:Tfan;
procedure Sort(var b:Tanim); {сортировка записи} var temp : Trecanim; flag : boolean; begin repeat flag := true; for i := 1 to n - 1 do if not (b[i].poroda <= b[i+1].poroda) then begin temp := b[i]; b[i] := b[i + 1]; b[i + 1] := temp; flag := false; end; until flag; 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);end; close(fan); reset(fan); writeln; writeln('Введите возраст животного ');readln(a1); for i:=1 to n do begin with anim[i] do if age=a1 then begin writeln('данные о животных такого возраста:'); writeln('ФИО владельца: ',Fio,';кличка животного: ',Name,';порода: ',Poroda); end;end; writeln; write('Введите кличку животного ');readln(b1); for i:=1 to n do begin with anim[i] do if Name=b1 then begin writeln('данные о животных с такой кличкой:'); writeln('ФИО владельца: ',Fio,';возраст животного: ',age,';порода: ',Poroda); end;end; writeln; for j:=1 to n do sort(anim); for i:=1 to n do begin with anim[i] do writeln('ФИО владельца: ',Fio,';кличка животного: ',Name,';возраст животного: ',age,';порода: ',Poroda); end; Close(fan);