Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка списка, Не удается сортировать список 
V
    Опции темы
AndrRus
Дата 28.4.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 14.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Задача состоит в следующем:
Считать с файла информацию об автомобилях, затем выделить с одинаковым номером и все это посимвольно отсортировать по марке автомобиля и номерам.

Помогите мне произвести сортировку, вот сам код:
Сортировка:
Код

Procedure sort (var snach:auto);
var sp:auto;
    flag:boolean;
    i:integer;
begin
     flag:=true;
     while flag do
     begin
          flag:=false;
          sp:=snach;
          while sp^.next<>snach do
          begin
               i:=1;
               repeat
                     if abc (sp^.marka[i]) > abc(sp^.next^.marka[i])
                     then begin
                          if sp=snach then snach:=sp^.next
                          obmen(sp);
                          flag:=true;
                          i:=4;
                     end
                     else flag:=false
               until i=4;
               sp:=sp^.next;
          end
     end
flag:=true;
while flag do
      begin
           flag:=false;
           sp:=snach;
           while sp^.next<>snach do
           begin
                i:=1;
                repeat
                if abc(sp^.nomer[i]) > abc(sp^.next^.nomer[i])
                then begin
                     if sp=snach then snach:=sp^.next
                     obmen(sp);
                     flag:=true;
                     i:=4;
                end
                sp:=sp^.next;
           end
      end
end;


Структура списка:
Код

Program spisok (input, output);
type
     auto = ^T_auto;
     T_auto = record
            next: auto;
            pred: auto;
            fam: array[1..10] of char;
            inic: array[1..4] of char;
            marka: array[1..15] of char;
            nomer: array[1..6] of char;
            year: array[1..4] of char;
end;
var snach, snach1: auto;


Функция обмена:
Код

Procedure obmen (var sp1: auto);
var r1, l2, r2:auto;
begin
     r1:=sp1^.pred;
     l2:=sp1^.next;
     r2:=l2^.next;
     sp1^.pred:=l2;
     r1^.next:=l2;
     sp1^.next:=r2;
     l2^.pred:=r1;
     l2^.next:=sp1;
     r2^.pred:=sp1;
     sp1:=l2;
end;


Функция abc:
Код

Function abc (a:char):integer
var l:integer
    d:string[108]
begin
     l:=0
     D:='0123456789AaBbCc...Zz'
     repeat
           l:=l+1
           until A=D[i]
           abc:=l
end;


Вид файла ввода:
Код

Fitisov   A.P. BMW            7136471 1987
Pavlov    K.L. Volvo          7115886 1993
Korolev   F.M. Lada           6322917 1991
Putin     V.V. Hammer         0000001 2007
Ivanov    S.V. Toyota         0000002 2006

PM MAIL ICQ   Вверх
AndrRus
Дата 28.4.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 14.10.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Проблему решил, тема больше не актуальна.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.