IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> сортировка записей в файле
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Женский

Репутация: -  0  +


Ребята!!!Помогите пожалуйста!!!Мне необходимо отсортировать записи в типизированном файле по полю строкового типа.Вот листинг всей программы!Я не знаю,как вывести результаты на экран..Подскажите?!
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.



--------------------
Shutka
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 6
Пол: Женский

Репутация: -  0  +


Все!!!Решила!!!Если кому надо будет, то вот!!!

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);

end.
smile.gif


--------------------
Shutka
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость








накониц-то НАШЕЛ эту хрень!!! Ты просто МегА-тЁлка! СпасибО!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.04.2025 15:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name