![]() |
Re: Doppelt verkettete Liste sortieren
Zitat:
Zitat:
wenn ich hingegen
Delphi-Quellcode:
schriebe kann jeder compiler das anderst interpretieren.
while leer(mylist) do
Wer sagt mir denn das es in 10 Jahren nicht ein Compiler gibt, der diesen Ausdruck standardmäßig auf false Prüft, und nicht wie Delphi auf true? und eigentlich wollte ich meine Proggs in 10 Jahren auch noch benutzen.. daher einfach true oder false dahinter o.O aber such mal bitte den Artikel.. bin auch auf der Suche... das Interessiert mich jetzt. |
Re: Doppelt verkettete Liste sortieren
|
Re: Doppelt verkettete Liste sortieren
Zitat:
|
Re: Doppelt verkettete Liste sortieren
Falscher Thread
|
Re: Doppelt verkettete Liste sortieren
Zitat:
Die Sache ist einfach die, das Boolean intern ein Byte groß ist. Wenn dieses Byte den Wert 0 hat, bedeutet das "Aus". Jeder Wert <> 0 bedeutet "An". Das Problem ist, dass die Konstanten True und False als 0 und 1 festgelegt sind. Wenn du also "=True" schreibst, wird also nicht auf Wahrheit überprüft, sondern auf die Zahl 1. Da kann es passieren, dass eine Prüfung false ergibt, obwohl sie wahr gewesen wäre: In VB bedeutet True beispielsweise nicht 1, sondern -1. Wenn du nun den Rückgabewert aus einer VB-Dll prüfst, wird deine Schreibweise imemr False ergeben! Theoretisch könnte man zumindest "variable = false" schreiben statt "not variable", aber erstens ist letzteres kürzer und zweitens ist es konsequenter. Ein kleines Konsolenprogramm zum Beweisen:
Delphi-Quellcode:
Ich hoffe, ich habe es einigermaßen verständlich rüberbringen können (Habs manchmal nicht so mit dem Erklären^^)
var
b: boolean; s: string; // Für Readln begin b := true; writeln('Test 1: b='+inttostr(ord(b))); if b then writeln(' a) Wahr') else writeln(' a) Falsch'); if b=True then writeln(' b) Wahr') else writeln(' b) Falsch'); b := boolean(byte(-1)); writeln('Test 2: b='+inttostr(ord(b))); if b then writeln(' a) Wahr') else writeln(' a) Falsch'); if b=True then writeln(' b) Wahr') else writeln(' b) Falsch'); readln(s); // Damit sich das Prrogramm nicht sofort beendet end. //Edit: kein roter Kasten... naja schadet ja nicht //Edit²: @quendolineDD: Uppsi, sorry ._. Ich weiß wirklich nicht, wie das passiert ist^^ Hab's geändert. |
Re: Doppelt verkettete Liste sortieren
Hey du hast falsch zitiert, das habe ich nie gesagt :-\
|
Re: Doppelt verkettete Liste sortieren
Hallo, für verkettete Listen eignet sich
![]() Mergesort ist zwar ein rekursiver Algorithmus, allerdings garantiert er dir eine Rekursionstiefe von log(n). Wenn du also 1267650600228229401496703205376 Werte sortierst, hast du trotzdem nur eine Rekursionstiefe von ~100. |
Re: Doppelt verkettete Liste sortieren
Zitat:
Werde ich mir mal zu Gemüte führen. OT: endlich back @ Topic^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz