Denkanstoss

Moinsen,

ich habe da ein kleines Problem, wo ich mir bereits eine Lösung überlegt habe, aber gerne noch andere Vorschläge einholen möchte.

Das Problem ist diese Wertetabelle: HydroStatics

Und zwar muss ich Methoden definieren, mit der man mit bestimmten Werten in die Tabelle eingehen muss, um andere Werte herauszubekommen.

Beispiel:
Bestimmen Sie V wenn T = 7.25 beträgt.
oder
Bestimmen Sie LCB wenn TPC = 34.05 beträgt.
oder
Bestimmen Sie T wenn KMT = 12.46 beträgt.
usw…

Das heißt, dass ich mit jedem Wert eingehen können muss, um einen anderen herauszubekommen.
Wenn ich pauschal überschlage wären dies laut “n hoch k” 49 Methoden, was mir eindeutig zuviel ist.
Also habe ich mir überlegt, das ganze per “flags” aufzubauen.
Sprich, dass mit einem Wert mit dem in die Tabelle eingegangen wird, ein flag für die dazugehörige Tabellenspalte als auch ein flag für die zurückzugebene Spalte mitgeliefert wird.

Ungefähr so:

  return MCT_an_der_Stelle_wo_TPC_gleich_dem_Value;
}```
Die Flags würde ich dann als enums definieren, um halt alle Spalten unterzubringen und vergleichen zu können.

Nur müsste ich in diesem Fall halt wieder mit Unmengen an if-Abfragen arbeiten, weil es halt wieder 49 Varianten gibt...

Joah ... falls jemand ne bessere Idee vorzuweisen hat, wäre ich verbunden mir dies mitzuteilen ;-)

EDIT:

> Mir ist jetzt noch eingefallen, einfach die entsprechenden Flags vielleicht doch besser per Integer-Variablen mitzuliefern, um gleich an Spalten ranzukommen - die ja eh zuerst nach dem Auslesen der Datei als String-Array vorliegen.
> Da ich den Array-Inhalt jedoch zu einem Object umwandle - um per getTPC(), getMCT(), usw. an die Werte ranzukommen - will ich das ganze System jetzt nicht unnötig über den Haufen schmeißen.


Gruß,
Xan

nimm int Konstanten dann kannste switch-case machen

Moin,

Danke erstmal für die Antwort, Eagle.
Aber genau das wollte ich ja vermeiden … und habe ich nun auch g
Hab mir meine int Konstanten definiert, diesen eben genau den Wert der Spalte zugeordnet und
übergebe sie dann an zwei Methoden, welche mir den letzten Wert vor und nach dem eigentlichen raussuchen.

So schaut das erstmal ganz annehmbar aus :slight_smile:

Gruß,
Xan

Kannste auch mit enums machen - Das ist cooler und sicherer :stuck_out_tongue_winking_eye: . Hättest halt genau eine Zeile bzw. einen Befehl mehr.

[edit]Uuuppps, sehe gerade, dass der Beiträg doch schon ein bisschen älter ist. Naja, kann man nix machen