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

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

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

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

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

Результаты опроса: Работали ли Вы со списками?
Часто 5 50.00%
Иногда 2 20.00%
Нет 3 30.00%
Голосовавшие: 10. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2009, 13:38   #1
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
Восклицание Сортировка списка

Написать процедуру: С клавиатуры вводятся слова и помещаются в D-список (info:string). Построить еще один список, который содержит элементы исходного списка, расположенные по возрастанию. Собственно с сортировкой проблемы:
Код:
procedure Sort_Spisok;
begin
D1:=head;
D1^.info:=D^.info;
repeat
while D<>nil do
 begin
  if (D^.info > D1^.info) then D1^.info:=D^.info;
  D:=D^.next;
 end;
D1:=D1^.next;
until D1=nil;
end;
Если головной элемент маленький, то сортирует по возрастанию, если строка длинная, то сортирует по убыванию. Помогите разобраться.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi

Последний раз редактировалось Stilet; 10.03.2009 в 14:36. Причина: проблема с тегами
Gonzo вне форума Ответить с цитированием
Старый 10.03.2009, 15:00   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Не совсем ясно, что есть D, D1 и head.
Набросал примерчик. Вроде все понятно.
Код:
uses crt;
type
pspis = ^spis;
spis = record
info : string;
next : pspis;
end;

var
D,T : pspis;

{ добавление элемента }
function addel(S : pspis; str : string) : pspis;
 var newS : pspis;
 begin
 new(newS);
 newS^.info := str;
 newS^.next := nil;
 S^.next := newS;
 Result := newS;
 end;

{ удаление элемента }
function delel(S : pspis) : pspis;
 begin
 Result := S^.next;
 dispose(S);
 end;

{ сортировка }
function spis_sort(S : pspis) : pspis;
 var i,j,tmp,t : pspis;
 begin
 i:=S;
 while i^.next<>nil do
  begin
  j:=i^.next;
  t := i;
  while j<>nil do
   begin
   if j^.info<t^.info then
    begin
    tmp^.info := t^.info;
    t^.info := j^.info;
    j^.info := tmp^.info;
    end;
   j := j^.next;
   end;
  i := i^.next;
  end;
 Result := S;
 end;

begin
clrscr;
new(D);
D := addel(D,'abc');
T := D;
D := addel(D,'lfd');
D := addel(D,'gte');
D := addel(D,'agr');
D := addel(D,'bdfasd');
D := T;

{ выводим исходный список }
T := D;
while T<>nil do
 begin
 writeln(T^.info);
 T := T^.next;
 end;

writeln('-------');

{ сортируем и выводим }
D := spis_sort(D);
T := D;
while T<>nil do
 begin
 writeln(T^.info);
 T := T^.next;
 end;

{ очищаем }
T := D;
while T<>nil do
 begin
 T := delel(T);
 end;

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.03.2009, 20:05   #3
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

спасибо, добавил отзыв.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Старый 10.03.2009, 20:23   #4
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

Что-то я поспешил с отзывом.
Sazary, Вы её вообще компилировали?
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Старый 10.03.2009, 21:01   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Gonzo
Sazary, Вы её вообще компилировали?
Я всегда компилирую свои исходники. Программа работает.
Если не верите, прилагаю скрин.

Впрочем, догадываюсь, почему у вас что-то может не работать.. Ругается на неизвестный идентификатор? И компилятор TP7?

Если так, замените во всех функциях "Result" на название самой функции.
В более современных компиляторах с этим проблем нет.
Изображения
Тип файла: jpg 10_3_2009 20-56-27.jpg (12.9 Кб, 125 просмотров)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.03.2009, 11:08   #6
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

Еще раз спасибо.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка списка... Arkuz Помощь студентам 2 11.05.2008 00:53
Сортировка списка... Arkuz Компоненты Delphi 4 03.05.2008 23:21
Сортировка списка Александр из Перми Microsoft Office Excel 3 27.01.2007 22:46