Einheitsumrechner programmieren?
Hi letztens habe ich angefangen mit Java programmieren. Dann wusste ich nicht was ich programmieren soll . Doch dann kam mir ein Geistesblitz ich wollte eine App entwickeln zum Umrechnen von Einheiten. Nun wollte ich fragen wie ich das umsetzen soll oder mit welcher Programmiersprache.
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.
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
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
Bin jetzt selber kein Profi aber es gibt noch Wege das eben über wie du sagtest über hinterlegte Formeln zu machen
was meinst du mit effizient