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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> динамические структуры
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской
Реальное имя: Дима

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


помогите.... мне надо надо составить программу для упорядочивания в порядке возрастания элементов однонаправленного списка.
можно ли ее сделать так? если нет,то подскаите......запутался уже. wacko.gif

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
type
TPWord1=^TL;
TL=record
st:string[20];
next:TPWord1; end;


var
head1:TPWord1;
count,i,j:integer; curr:TPWord1; st:string;
mass1:array[1..10]of byte;
n,a:byte;

procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=Memo1.Lines.Capacity downto 0 do
begin
inc(count);
new(curr);
curr^.st :=Memo1.Lines.Strings[i] ;
curr^.next := head1;
head1 := curr;
end;
Button1.Enabled:=false;
a:=0;
n:=0; curr:=head1;
while n < count-1 do begin
inc(n);
mass1[n]:=strtoint(curr^.st);
curr := curr^.next;
end;
for i:=1 to count-1 do
for j:=1 to count-2 do
if mass1[j]>mass1[j+1]
then
begin
a:=mass1[j];
mass1[j]:=mass1[j+1];
mass1[j+1]:=a;

end;
n:=0;
for i:=1 to count-1 do begin
new(curr);

curr^.st :=inttostr(mass1[i]);
curr^.next := head1;
head1 := curr;
end;


while n < count-1 do
begin

inc(n);
st:=st+#13+curr^.st;
curr := curr^.next;
end;
if st='' then ShowMessage('Ñïèñîê ïóñò')
else ShowMessage('Ðåçóëüòàò:'+st);

end;
end.


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


Гость






Цитата
Где ошибки?
В заполнении списка:

type
plist=^node;
node=record
data: integer;
next:plist;
end;

// insert_sort ...

Var
first, last, p: plist;
c: char;
X: integer;

begin

// Zapolnenie spiska

c := 'y';
while c <> 'n' do begin

write('number = '); readln(X);
new(p);
p^.data := X; p^.next := nil;

if first = nil then first := p
else last^.next := p;
last := p;

write('more? [y/n]'); readln©;

end;

//VIZOV
first := insert_sort(first);

p := first;
while p <> nil do begin
write(':::::', p^.data:6);
p := p^.next;
end;
readln;
end.


P.S. В следующий раз большая просьба - не коверкай программу! Ты по ссылке нашел какой код? Отформатированный, так что сразу понятно, что за чем идет... Вот и выкладывай сюда так же отформатированный код!

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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