Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2013, 20:48   #1
Dover12
Новичок
Джуниор
 
Регистрация: 06.02.2013
Сообщений: 2
По умолчанию с сортировкой по алфавиту.

Помогите наладить программу не могу понять в чём дело что она циклица. Чтения из файла и сортировка по алфавиту и запись в фаил.
Код:
Код:
Program f1;
Type
 Zadana9_stroka=^Stroka;
  Stroka=Record
         familia:string;
         next:Zadana9_stroka;
         end;
 Proverka_stroka=^Stroka;
var
pBegin,pTemp:Zadana9_stroka;

Procedure zapolnenie(Var pBegin:Zadana9_stroka);
var
 f:text;
begin
assign(f,'int.txt');
reset(f);
new(pBegin);
 pTemp:=pBegin;
  Readln(f,pTemp^.familia);
   while(not eof(f))do
    begin
     new(pTemp^.next);
      pTemp:=pTemp^.next;
       Readln(f,pTemp^.familia);
   end;
    pTemp^.next:=nil;
     close(f);

end;


Procedure sortirovka(var pBegin:Zadana9_stroka);
 var Min:string;
 pTemp1,pTemp2,k,k1,k2,t,t1,t2:Zadana9_stroka;
begin
 pTemp1:=pBegin;
  t1:=pTemp1;
   While pTemp1^.next<>nil  do begin
   Min:=pTemp1^.familia;
   k:=pTemp1;
   pTemp2:=pTemp1^.next;   t2:=pTemp1;
       While pTemp2<>nil do
       begin
         if pTemp2^.familia<Min then
         begin
          Min:=pTemp2^.familia;
           k2:=t2;
            k:=pTemp2;
         end;
          pTemp2:=pTemp2^.next;
       end;
    if (k<>pTemp1) then
     if (pTemp1=pBegin) then
      begin
       pTemp:=pTemp1^.next;
        pTemp1^.next:=k^.next;
         k^.next:=pTemp;
          pBegin:=k;
          k2^.next:=pTemp1;
          pTemp1:=k;
      end
        else
      begin
       t1^.next:=k;
       pTemp:=pTemp1^.next;
       pTemp1^.next:=k^.next;
       k^.next:=pTemp;
           k2^.next:=pTemp1;
            pTemp1:=k;
      end;
     t1:=ptemp1;
     pTemp1:=pTemp1^.next;

  end;
end;

  Procedure vivod(pBegin:Zadana9_stroka);
var size_string,i:integer;
    f1:text;
Begin
assign(f1,'out1.txt');
rewrite(f1);
 pTemp:=pBegin;
   while pTemp<>nil do
   begin
    size_string:=4+length(pTemp^.familia);
     writeln(f1,pTemp^.familia);
     pTemp:=pTemp^.next;
   end;
   close(f1);
end;


begin

zapolnenie(pBegin);
sortirovka(pBegin);
vivod(pBegin);

end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 11.02.2013 в 20:53.
Dover12 вне форума Ответить с цитированием
Старый 11.02.2013, 21:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а отладчиком ты пробовал пройтись? Задача именно в стортировке? Метод сортировки любой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОБЛЕМА С СОРТИРОВКОЙ S@n4eeeeez Помощь студентам 4 19.01.2012 21:28
Проблема с сортировкой matbe14 Помощь студентам 0 29.09.2011 11:16
Проблема с сортировкой Anubys Помощь студентам 0 19.04.2011 17:10
Помогите с сортировкой в C++. Vollmond36 Помощь студентам 1 02.12.2008 23:06
Помогите с сортировкой. Dissonance БД в Delphi 14 05.06.2008 15:35