Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by Amateurprofi,
21. Mär 2012
Hallo Horst,
sorry, aber bei mir passiert das nicht.
Zumindest dann nicht, wenn ich tData=integer deklariere.
Wenn ich, wie du es gemacht hast tData=cardinal deklariere, dann wird nicht compiliert, anstatt kommt in der Prozedur FillArray bei der Zeile
d := delta * MAXDATCOUNT; eine Fehlermeldung :
Intersect_Main.pas(318): E2099 Überlauf bei Konvertierung oder arithmetischer Operation...
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by Amateurprofi,
18. Mär 2012
Eigentlich kann das gar nicht angehen….
Aber vom Brand von Hamburg hatten auch alle gedacht, er könne nicht angehen.
Und dann ist er doch angegangen – und wie!
Das war am 5. Mai 1842, und die haben damals ziemlich dumm geguckt.
So wie ich eben!
Die Funktion ist für Arrays ausgelegt, die keine Zahlen mehrfach enthalten und aufsteigend sortiert sind. Eine weitere Einschränkung ist, dass...
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by Amateurprofi,
17. Mär 2012
Hallo Horst,
das ist 'ne 32 Bit - Version.
Mir war schon klar, dass in #1 über 64 Bit Daten gesprochen wurde.
Aber ich hatte ja gegen #19 geschrieben aus der leider nicht hervorging ob TSampleArray 32 oder 64 Bit ist.
Aus #28
hatte ich dann geschlossen, dass #19 mit 32 Bit arbeitet.
Dummerweise habe dann aber auch ich die Definition von TSampleArray nicht explizit angegeben.
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by Amateurprofi,
15. Mär 2012
Hallo Furtbichler,
mich hat das auch interessiert und ich habe das mit binärer Suche versucht – war aber, die Performance betreffend, ein Flop.
Also hab ich mir mal deine Lösung angeschaut.
Sehr interessanter Ansatz, leider aber fehlerhaft.
for I := 0 to High(data) - 1 do begin
Das " – 1 " gehört da m.E. nicht hin. Es verursacht, dass das letzte Element von data nicht in Intersect...