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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2014, 11:04   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Сортировка по ключам(буква и цифра)

Здесь не будет слов помогите и прочее.

Простая просьба,не могли бы скинуть ссылки где будет описан нормальный пример или алгоритм сортировки по заданным ключам(в моём случае это по алфавиту и по возрастающей цене).

Просто то,что я находил сам,всё через массивы,а мне через указатели(у меня список)

Это нужно для программы(базы-данных),там всё через указатели и без классов.
Otar4ik вне форума Ответить с цитированием
Старый 01.06.2014, 11:34   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

так подойдет?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 01.06.2014, 11:39   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Спасибо)Сейчас попробую)
Otar4ik вне форума Ответить с цитированием
Старый 02.06.2014, 17:03   #4
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Не помогло(((

Выкладываю что где объявил и сами процедуры сортировки.Преподаватель сказал, что нужно или желательнее сортировку пузырьком применять.

Код:
const
   n_items = 7;
   l_name = 30;
 
type
   tname = string[l_name];
   pTovar = ^Tovar;
   Tovar = record
      name: tname;
      kolvo: integer;
      cena: real;
      next: pTovar;
      prev: pTovar;
   end;

var
   DefaultMode,
   ActiveColor, InactiveColor: word;
   key: char;
   item: word;
   prev: word;
   beg: pTovar;
   fin: pTovar;
   p: pTovar;
   name: tname;
   tovr: Tovar;
Сортировка 1-ключ-буква-По Алфавиту.То есть имя Товара нужно отсортировать по алфавитному порядку.

Код:
procedure Sortkey1(p:pTovar; const tovr:tname);
var
  tmp,tmps:pTovar;
begin
  New(tmp);
  while p<>nil do
  begin
    tmp:=p^.next;
    while tmp<>nil do
    begin
      if tmp^.name<p^.name then
      begin
        tmps:=tmp^.name;
        tmp^.name:=p^.name;
        p^.name:=tmps
      end;
      tmp:=tmp^.next
    end;
    p:=p^.next
  end
end;
ругается на name несоотвествие типа.

Сортировка 2-ключ цифра-по цене по возрастающей

Код:
procedure Sortkey2(cena:pTovar);
var
  tmp,beg,fin,p:pTovar;
begin
  while p<>nil do
  begin
    tovr:=p^.next;
    while tmp<>nil do
    begin
      if tmp^.cena<p^.cena then
      begin
        beg:=nil;
        fin:=nil;
        if p<>nil then
          while beg^.next<>p do beg:=beg^.next;
        fin:=tmp^.next;
        if p^.next=tmp then
        begin
          tmp^.next:=p;
          p^.next:=fin
        end
        else
        begin
          tmp^.next:=p^.next;
          p^.next:=fin;
        end;
        if beg<>p then
          beg^.next:=p;
        if p<>nil then
          pered^.next:=tmp
        else
        fin:=tmp;
        tmp:=p;
        p:=beg;
      end;
      tmp:=tmp^.next;
    end;
    p:=p^.next;
  end;
end;

Последний раз редактировалось Otar4ik; 02.06.2014 в 18:22.
Otar4ik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
по ключам не правильно считает ) Black_Wolf Общие вопросы Delphi 2 23.12.2012 19:44
Сортировка линейных списков по ключам( Toria Паскаль, Turbo Pascal, PascalABC.NET 1 28.03.2012 00:44
цифра или буква roborrr Microsoft Office Excel 9 14.03.2011 22:34
Обращение к ключам реестра? Lanalova Общие вопросы Delphi 7 28.04.2009 17:59
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45