Einheitsumrechner programmieren?

3 Antworten

Im Grunde läuft es ja darauf hinaus, dass du eine Zahl mit einem bestimmten Faktor multiplizieren musst.

Beispiel: Berechnung von Inch nach Zentimeter, indem die Länger mit dem Faktor 2,54 multipliziert wird.

Bei Gleitkommazahlen kann sich der Computer "verrechnen". Die genauen Gründe werde ich an dieser Stelle nicht erläutern, aber falls es dich interessiert, schaue dir mal IEEE 754 an. Dies musst du bei deinem Rechner berücksichtigen.

Das ganze kannst du mit Java programmieren, wenn du dich damit auskennst. ich würde es über ein Shellskript machen und in einer separaten Datei anhand eines passenden Formats die Faktoren für die Umrechnung speichern. So könnte ich wahlweise weitere Einheiten hinzufügen und mein Skript würde die Informationen einfach auslesen.

Was ich hier beschreibe ist das sog. Data-driven Programming. Meine separate Umrechnungstabelle steuert also das Programm.

Mathias4 
Fragesteller
 27.07.2020, 20:53

aber darum gibt es doch primitive datentypen z.B.: double

0

Die Programmiersprache kannst du dir aussuchen, so wie du magst. Das sind einfache Dreisatzaufgaben, die man fast in jeder Programmiersprache einfach bauen kann. Ich würd's am ehesten in Java oder C# machen. Du kannst es aber natürlich auch in QBasic oder VBA oder als Excel-Tabelle machen. Wahrscheinlich könnte man es sogar in Batch oder PowerShell programmieren.

Am besten machst du übergeordnete Kategorien (z.B. Längen, Temperatur, Währung, Fläche, Geschwindigkeit etc.) und überlegst, welche Maßeinheiten du in den Kategorien haben willst. Z.B. bei Längen: mm, cm, m, km, Meile, Seemeile, Zoll, Yard, AE, Parsec, Lichtsekunde, Lichtjahr etc.

Dann nimmst du pro Kategorie eine Einheit als Basis und hinterlegst für jede andere Einheit den Faktor, mit dem man zu der Basiseinheit rechnet. (mm: 0,001; cm: 0,01; m: 1; km: 1000; Meile: 1609,344; Seemeile: 1852; Zoll: 0,0254; Yard: 0,9144; AE: 149597870700; Parsec: 30857000000000000; Lichtsekunde: 299792458; Lichtjahr: 9460730472580800)

Und dann rechnest du halt immer erst in die Basiseinheit und von da in die Zieleinheit. Bei Temperaturen musst du allerdings aufpassen. Die haben verschiedene Nullpunkte

Einfach währe es variablen festzulegen für die verschiedenen Einheiten und variablen für die eingegebenen Werte, dann könnte man mit Bedingungen arbeiten wie es umgerechnet werden soll. Das ist zwar nicht wirklich effizient aber einfach umzusetzen

Woher ich das weiß:eigene Erfahrung
Mathias4 
Fragesteller
 27.07.2020, 20:49

was meinst du mit effizient

0
ButterkeksLp1  27.07.2020, 20:51
@Mathias4

Naja es währe vergleichsweise viel Quellcode für eine einfache Aufgabe. Das bekommst du zwar ein relativ kurzer Zeit fertig aber es gäbe es ein einfachere Methoden für erfahrene Programmierer

0
Mathias4 
Fragesteller
 27.07.2020, 20:56

aber kann man da nicht eine formel hinterlegen

0
ButterkeksLp1  30.07.2020, 19:53
@Mathias4

Bin jetzt selber kein Profi aber es gibt noch Wege das eben über wie du sagtest über hinterlegte Formeln zu machen

0