Thema: Delphi Einheiten parsen

Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#17

AW: Einheiten parsen

  Alt 9. Mär 2015, 17:28
Deine Basiseinheiten definierst du weiter als Aufzählungstyp:
Delphi-Quellcode:
type
  TFundamentalUnit = (fuKN, fuM);
Die zusammengesetzten Einheiten lassen sich auch in Exponentenschreibweise aufschreiben. Die Exponenten kannst du dann einfach in einem Array speichern.
Delphi-Quellcode:
type
  TDerivedUnit = array[fuKN..fuM] of Integer.
TUnitStyle Exponentenschreibweise Arrayinhalt
usNone kN^0 * m^0 0, 0
usKNdivM3 kN^1 * m^(-3) 1, -3
usKNM kN^1 * m^1 1, 1
sKN kN^1 * m^0 1, 0
usM3 kN^0 * m^3 0, 3

Zum Beispiel die Multiplikation kann man nun ganz einfach auf eine Addition der Array-Einträge abbilden (quasi mit den Rechenregeln für Potenzen):
  1. usM3 * usKNdivM2
  2. (kN^0 * m^3) * (kN^1 * m^(-2))
  3. (kN^(0+1) * m^(3-2)
  4. kN^1 * m^1
  5. usKNM

Ich hoffe das ist verständlicher

Geändert von BUG ( 9. Mär 2015 um 17:40 Uhr)
  Mit Zitat antworten Zitat