Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

Ох, уж эти линейные списки..   Найти похожие ветки 

 
wera   (2003-05-28 10:55) [0]

Народ подскажите, как осуществить поиск в связном однонаправленном списке.


 
Palladin   (2003-05-28 10:59) [1]

как как... в цикле ессно...


 
Skier   (2003-05-28 11:00) [2]

>wera © (28.05.03 10:55)
Самое главное - это правильно организовать такой список.
Дальше будет легче...:)


 
wera   (2003-05-28 11:00) [3]

new(teck);
teck:=head;
a:=strtofloat(edit1.Text);
while (teck<>nil) and (a<>teck^.info) do
begin
pEnd:=teck;
teck:=teck^.link;
end;
if (teck=nil) and (a<>teck^.info) then
Label1.Caption:="


 
Skier   (2003-05-28 11:03) [4]

>wera © (28.05.03 11:00)
Что значит "не работает" ? По-конкретней... Как заполняешь этот
список ? Энто тоже важно...


 
Vlad Oshin   (2003-05-28 11:03) [5]

по цепочке, от первого елемента по ссылке на следующий и до nil последнего


 
wera   (2003-05-28 11:05) [6]

type
Zapis= ^Key;
Key = record
info:extended;
link: Zapis;
end;

var
Form1: TForm1;
pEnd,teck,head: Zapis;
a:extended;
procedure TForm1.FormCreate(Sender: TObject);
begin
new(head);
new(teck);
new(pEnd);
head^.link:=teck;
teck^.link:=nil;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
new(teck);
teck:=head;
a:=strtofloat(edit1.Text);
while (teck<>nil) and (a<>teck^.info) do
begin
pEnd:=teck;
teck:=teck^.link;
end;
if (teck=nil) and (a<>teck^.info) then
Label1.Caption:="


 
Palladin   (2003-05-28 11:06) [7]

while teck<>nil do
begin
if teck.info=a then break;
teck=teck.link;
end;


 
wera   (2003-05-28 11:07) [8]

:))! спасибочки.


 
Sandman25   (2003-05-28 11:08) [9]

if (teck=nil) OR (a<>teck^.info) then

new(tek) не надо.


 
wera   (2003-05-28 11:37) [10]

procedure TForm1.Button2Click(Sender: TObject);
begin
a:=strtofloat(edit1.Text);
teck:=head;
while (teck<>nil) and (a<>teck^.info) do
begin
if teck.info=a then
Label1.Caption:="


 
Palladin   (2003-05-28 11:39) [11]

см Sandman25 © (28.05.03 11:08)


 
Skier   (2003-05-28 11:39) [12]

>wera © (28.05.03 11:37)
см. Sandman25 © (28.05.03 11:08)


 
Palladin   (2003-05-28 11:40) [13]

procedure TForm1.Button2Click(Sender: TObject);
begin
a:=strtofloat(edit1.Text);
teck:=head;
while teck<>nil do
begin
if teck.info=a then break;
teck:=teck^.link;
end;
if teck<>nil then Label1.Caption:="


 
Palladin   (2003-05-28 11:41) [14]

:)))


 
Sandman25   (2003-05-28 11:42) [15]

if teck.info=a then

begin

Label1.Caption:="


 
wera   (2003-05-28 11:47) [16]

супер.спасибо, все заработало( правда всегда выдает запись найдена, но это наверное уже в другом месте ошибка)


 
DAC   (2003-05-28 12:09) [17]

Выражения типа:
if (teck<>nil) OR (a<>teck^.info) then
не корретны в Object Pascal.
Object Pascal не гарантирует, что в начале будет вычислено teck<>nil , а потом уже a<>teck^.info. В противном случае, может возникнуть ошибка. Это зависит от версии компилятора. Поэтому лучше писать:
if (teck<>nil) then if (a<>teck^.info) then


 
Skier   (2003-05-28 12:11) [18]

>DAC © (28.05.03 12:09)

> Это зависит от версии компилятора.

Это зависит от {$B+/-}


 
DAC   (2003-05-28 12:54) [19]


> Skier © (28.05.03 12:11)
Это зависит от {$B+/-}

Согласитесь, это опции компилятора, а не семантика языка.


 
Skier   (2003-05-28 12:59) [20]

>DAC © (28.05.03 12:54)

> а не семантика языка.

1)Ну а это-то здесь причём ?!
2) IMHO, ясно написано в вопросе D6.


 
Palladin   (2003-05-28 13:03) [21]

действительно, причем тут семантика?
с точки зрения синтаксиса и семантики выражение
if (teck<>nil) OR (a<>teck^.info) then
абсолютно безошибочно



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
14-26731
neg2001
2003-05-22 10:55
2003.06.09
Где можно бесплатно взять какой-нибудь UpdatePack для Delphi7


4-26832
Scorp
2003-04-10 19:20
2003.06.09
Перехват изменения системного реестра


14-26652
Knight
2003-05-23 23:10
2003.06.09
Буржуйские рассылки


1-26480
Nucl
2003-05-29 14:57
2003.06.09
Потоки


6-26635
sapsi
2003-04-09 10:46
2003.06.09
Обработка входящих сообщений Outlook





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский