![]() |
Mini-Wettbewerb: Bedingter Vergleichs-Algo
Für folgendes Problem suche ich einen möglichst einfachen Algorithmus:
- es sollen bestimmte felder von 2 records vergleicht werden - es kann angegeben werden welche felder verglichen werden sollen - ergebnis = true wenn alle felder die vergleicht werden sollen übereinstimmen, false wenn nur eins nicht übereinstimmt Klingt einfach, isses so natursprachlich ausgedrückt auch, ist auch leicht verständlich, bloß das ganze programmiertechnisch umzusetzen ist relativ (zum Problem gesehen) aufwendig imo. Ich habe zwar schon eine Lösung, bloß die scheint mir anhand des Problems ziemlich komplex, da viele Blöcke, Variablen etc. Beispiel Record
Delphi-Quellcode:
Record 1, Record 2... Beispiele:
type TBsp = record
A: String; B: Integer; C: Double; end;
Delphi-Quellcode:
Vergleicht werden sollen A, B, C
Record1.A = 'asdf' Record1.B = 123 Record1.C = 123.45 Record2.A = 'asdf' Record2.B = 123 Record2.C = 123.45 result = true
Delphi-Quellcode:
Vergleicht werden soll C
Record1.A = 'asdf' Record1.B = 123 Record1.C = 123.45 Record2.A = 'jklö' Record2.B = 456 Record2.C = 123.45 result = true
Delphi-Quellcode:
Wer den kürzesten Delpih Algo abliefert kriegt... respekt :) :kiss:
Vergleicht werden sollen A, C
Record1.A = 'asdf' Record1.B = 123 Record1.C = 123.45 Record2.A = 'jklö' Record2.B = 456 Record2.C = 123.45 result = false |
Re: Mini-Wettbewerb: Bedingter Vergleichs-Algo
Hallo :hi:,
gibt es immer nur A, B und C oder ist die Anzahl variabel? MfG freak |
Re: Mini-Wettbewerb: Bedingter Vergleichs-Algo
Hm, also wenn schon als Wettbewerb, dann bitte mit (annerkennugns) Preis,
Respekt kann man hier doch ohne Einschränkungen dne meisten zugestehen. Grüße // Martin |
Re: Mini-Wettbewerb: Bedingter Vergleichs-Algo
Da, büdde :)
Delphi-Quellcode:
Ich hoffe es hilft dir ;)
type
TBspField = (bfA, bfB, bfC); TBspFieldSet = set of TBspField; function Compare(A, B: TBsp; Fields: TBspFieldSet): Boolean; begin Result := True; if bfA in Fields then Result := Result and (A.A = B.A); if bfB in Fields then Result := Result and (A.B = B.B); if bfC in Fields then Result := Result and (A.C = B.C); end; |
Re: Mini-Wettbewerb: Bedingter Vergleichs-Algo
Zitat:
in meiner umsetzung hatte ich mir eine enumeration mit allen feldern gebaut + ein set davon damit ich wusste welche vergleicht werden sollen. alternativ wäre noch eine nachbildung des records bloß mit boolschen variablen vorstellbar. dynamischer brauchts wegen mir also nicht zu sein. Zitat:
Zitat:
|
Re: Mini-Wettbewerb: Bedingter Vergleichs-Algo
Dann eben so ^^
Delphi-Quellcode:
type
TBspField = (bfA, bfB, bfC); TBspFieldSet = set of TBspField; function Compare(A, B: TBsp; Fields: TBspFieldSet): Boolean; begin Result := Fields <> []; if bfA in Fields then Result := Result and (A.A = B.A); if bfB in Fields then Result := Result and (A.B = B.B); if bfC in Fields then Result := Result and (A.C = B.C); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 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