Aufgabe
Schreiben Sie ein Programm, das eine Verbindung nur aus Elementen mit einer Ordnungszahl kleiner oder gleich 92 (Uran) aufnimmt und die Molmasse der Verbindung in ausgibt grams/mole
.
Regeln und Einschränkungen
- Sie dürfen keine Funktion verwenden, die Molmassen direkt für Sie berechnet.
- Ihr Programm muss auf einem Offline-Computer ausgeführt werden können.
- Sie können eine separate Datendatei verwenden. Der Inhalt dieser Datei muss zur Verfügung gestellt werden.
- Ihre Punktzahl ist die Länge Ihres Programms in Bytes sowie die Länge Ihrer Datendatei in Bytes, falls Sie eine verwenden möchten.
- Dies ist Code-Golf , daher gewinnt die niedrigste Punktzahl.
Eingang
Eine Zeichenfolge, die die Verbindung enthält. Diese Zeichenfolge kann gelesen STDIN
, als Argument übergeben oder auf eine Variable gesetzt werden (bitte angeben, welche). Folgendes sind alle gültigen Eingaben:
CH2
(ein Kohlenstoff, zwei Wasserstoff)(CH2)8
(8 Kohlenstoffe, 16 Wasserstoffe)U
(1 Uran)
Ihr Programm muss weder für eingebettete Klammern (dh ((CH3)2N4)4
) noch für eine Verbindung funktionieren , die ein Element mit einer Ordnungszahl größer als 92 enthält. Wenn Ihr Programm in keinem der beiden oben genannten Fälle funktioniert, muss es in Invalid formula
diesen Fällen Folgendes ausgeben : kein undefiniertes Verhalten.
Ausgabe
Sie sollten STDOUT
die Molmasse der Verbindung in oder auf eine Variable ausgeben grams/mole
. Eine Liste der Atommassen von Elementen finden Sie hier (Wikipedia) . Ihre Antwort sollte bei Verbindungen mit weniger als 100 Atomen (gerundet) auf die Dezimalstelle genau sein.
Ist die Eingabe ungültig, Invalid formula
muss ausgegeben werden.
Informationen zur Berechnung der Molmasse einer Verbindung in grams/mole
(Wikipedia).
Beispiele
Input Output
H2O 18.015
O 15.999 (16 acceptable)
C6H2(NO2)3CH3 227.132
FOOF 69.995
C6H12Op3 Invalid formula
Np 237 (or Invalid formula)
((C)3)4 144.132 (or Invalid formula)
CodeGolf Invalid formula
13
wenn die Atommasse ist 12.999
?
U1000000
ist schwerer bis zum Komma zu bestimmen als die Masse vonU2