Vergleichsoperatoren in Julia ähneln denen vieler anderer Sprachen, bieten aber ein paar Extras für Mathe-Fans.
Für Gleichheit gibt es die Operatoren == (gleich) und != oder ≠ (ungleich).
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
Außerdem gibt es noch die verschiedenen Größer-als- und Kleiner-als-Operatoren.
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
Wie so oft bei Julia macht ein passender Editor die Verwendung des mathematischen Symbols einfach. Tippe \ne, \le oder \ge und dann TAB, um ≠, ≤ oder ≥ zu erhalten.
Das vorige Beispiel verwendet nur Zahlen, aber wir werden in anderen Teilen des Lehrplans sehen, dass diverse weitere Typen eine Ordnung kennen und auf Größer-als/Kleiner-als geprüft werden können.
Vergleichsoperatoren lassen sich verketten, was eine klare und knappe Syntax ermöglicht:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
Das vorige Beispiel ist ein Synonym für 1 ≤ n && n ≤ 5.
if
Das ist die vollständige Form einer if-Anweisung:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
Klammern () oder geschweifte Klammern {} sind nicht nötig, und die Einrückung dient „nur“ der besseren Lesbarkeit (aber Lesbarkeit ist sehr wichtig!).
Sowohl elseif als auch else sind optional, und es kann mehrere elseif-Blöcke geben. Das end ist jedoch erforderlich.
Es ist möglich, if-Anweisungen zu verschachteln, doch für die Lesbarkeit kann ein durchdachter Einsatz von Klammern, Einrückungen und Kommentaren helfen.
Die kürzeste Form einer if-Anweisung sieht etwa so aus:
if n < 0
n = 0
end
Zur Erinnerung: Nur Ausdrücke, die zu true oder false ausgewertet werden, können als Bedingungen verwendet werden. Julia vermeidet bewusst jedes Konzept von „truthiness“, deshalb sind Nullwerte, leere Strings und leere Arrays nicht gleichbedeutend mit false.
Eine einfache und häufige Situation ist, abhängig von einer Bedingung einen von zwei Werten auszuwählen.
Julia hat wie viele Sprachen einen ternären Operator, um das knapper zu machen.
Die Syntax ist conditional ? value_if_true : value_if_false.
Das vorige Beispiel kann man also auch so schreiben:
n = n < 0 ? 0 : n
Der Compiler verlangt keine Klammern, aber sie können die Lesbarkeit verbessern.
In dieser Übung schreibst du Code, um die Produktion eines Fließbands in einer Autofabrik zu analysieren.
Die Geschwindigkeit des Fließbands kann von 0 (aus) bis 10 (Maximum) reichen.
Bei der niedrigsten Geschwindigkeit (1) werden 221 Autos pro Stunde produziert.
Die Produktion steigt linear mit der Geschwindigkeit.
Bei einer Geschwindigkeit von 4 sollten also 4 * 221 = 884 Autos pro Stunde produziert werden.
Höhere Geschwindigkeiten erhöhen jedoch die Wahrscheinlichkeit, dass fehlerhafte Autos produziert werden, die dann aussortiert werden müssen.
Du hast drei Aufgaben. Jede der benötigten Funktionen nimmt einen einzelnen Ganzzahl-Parameter entgegen, die Geschwindigkeit des Fließbands.
Implementiere die Methode success_rate(), um die Wahrscheinlichkeit zu berechnen, dass ein Auto bei einer gegebenen Geschwindigkeit fehlerfrei hergestellt wird.
Die folgende Tabelle zeigt, wie die Geschwindigkeit die Erfolgsquote beeinflusst:
0: 0 % Erfolgsquote.1 bis 4: 100 % Erfolgsquote.5 bis 8: 90 % Erfolgsquote.9: 80 % Erfolgsquote.10: 77 % Erfolgsquote.julia> success_rate(10)
0.77
Implementiere die Methode production_rate_per_hour(), um die Produktionsrate des Fließbands pro Stunde zu berechnen und dabei die Erfolgsquote zu berücksichtigen.
julia> production_rate_per_hour(6)
1193.4
Beachte, dass der Rückgabewert eine Gleitkommazahl ist.
Implementiere die Methode working_items_per_minute(), um zu berechnen, wie viele funktionsfähige Autos pro Minute produziert werden:
julia> working_items_per_minute(6)
19
Beachte, dass der Rückgabewert eine Ganzzahl ist: unvollständige Autos werden nicht mitgezählt.
Melde dich bei Exercism an, um Julia mit 35 Konzepte128 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.