![]() |
Kleinster Wert in set
Hi Leute,
ich hab folgendes:
Delphi-Quellcode:
Ich möchte gerne den kleinsten Wert herausfinden, der in der Menge ist. Irgendwie hab ich nix dazu gefunden?! :wall: :gruebel:
var Indizes: set of 1..20;
|
Re: Kleinster Wert in set
Delphi-Quellcode:
Gruss
var
I: Integer; begin for I:= 1 to 20 do if I in Indizes then Break; Caption:= IntToStr(I); end; Shaman |
Re: Kleinster Wert in set
:roll: Jaaaa, das ist nur ein Beispiel, wenn ich jetzt set of 1..30 hab??? Gibt's nicht was generisches?
|
Re: Kleinster Wert in set
Wie ist denn deine allgemeine Deklaration von Indizes?
|
Re: Kleinster Wert in set
Sonst mach halt
Delphi-Quellcode:
for I:= 1 to SizeOf(Indizes) shl 3 do
if I in Indizes then Break; |
Re: Kleinster Wert in set
Ich hab's jetzt so gemacht:
Delphi-Quellcode:
Dann kann ich an eine Prozedur einen Parameter vom Typ TSortiSet übergeben...
type
TSortiIndizes = 1..20; TSortiSet = set of TSortiIndizes; var Indizes: TSortiSet; Aber sets sind doch eigentlich Bit-Flags (oder so, das ist nicht so mein Bereich :mrgreen:) Kann man dann nicht - egal welcher Typ - irgendwie herausfinden, welcher Wert der kleinste ist? Ungefähr so (ich weiß, nicht ganz richtig):
Delphi-Quellcode:
Und diese Funktion ermittelt dann das Minimum?
funktion Min(pSet: pointer; pSetTyp: pointer): Integer;
P.S. Was macht denn
Delphi-Quellcode:
for I:= 1 to SizeOf(Indizes) shl 3 do
if I in Indizes then Break; |
Re: Kleinster Wert in set
Delphi-Quellcode:
Das sollte das machen, was Du willst. I ist dann das kleinste Element.
type
TSortiIndizes = 1..20; TSortiSet = set of TSortiIndizes; var Indizes: TSortiSet; I: TSortiIndizes begin for I:= TSortiIndizes(0) to TSortiIndizes(SizeOf(Indizes) shl 3 - 1) do if I in Indizes then Break; end; Gruss Shaman |
Re: Kleinster Wert in set
Da gibt es ein bessere variante, die ohne das gekröse mit sizOf auskommt:
Delphi-Quellcode:
:-D
type
TSortiIndizes = 1..20; TSortiSet = set of TSortiIndizes; var Indezes: TSortiSet; i:TSortiIndizes; .. for i := low(i) to high(i) do if i in Indezes then break; |
Re: Kleinster Wert in set
Ist doch langweilig so :wink:
|
Re: Kleinster Wert in set
Ich grab den Thread nochmal aus...weil es um was ganz ähnliches geht^^
ich habes folgendes Konstrukt:
Delphi-Quellcode:
wobei es halt unterschiedlich sein kann...könnte auch ['c'..']'] sein...
Bereich: Set of Char = ['a'..'Z'];
und brauche nun den höchsten und den niedrigsten wert...wäre auch egal wenn es der Ord() wäre oder ähnliches... Wie mache ich das? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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