Minimum und Maximum finden
Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 50 von 78.
Arrays haben die Methoden min() und max(), die das kleinste und das größte Element zurückgeben:
var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31Die globalen Funktionen min() und max() vergleichen die Zahlen, die du ihnen übergibst. Das ist praktisch für zwei oder drei Werte:
print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, niemals über 100Strings werden Zeichen für Zeichen anhand ihres Unicode-Codes verglichen. Jeder Großbuchstabe kommt vor jedem Kleinbuchstaben:
var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwiDieselbe Regel gilt für Zahlen, die als Text gespeichert sind: "9" ist größer als "56", weil das Zeichen 9 nach 5 kommt. Wandle die Eingabe mit int() um, bevor du Zahlen vergleichst.
Bei einem leeren Array geben beide Methoden null zurück. Um herauszufinden, wo sich der größte Wert befindet, übergib ihn an find(): temps.find(temps.max()) ergibt 3. Nimm bei einem Dictionary den größten seiner Werte und suche mit find_key() nach dem zugehörigen Schlüssel. Die Methode gibt den ersten Schlüssel mit diesem Wert zurück:
var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140max() gibt einen Wert eines beliebigen Typs zurück. Deklariere daher den Typ der Variablen (var best: int), anstatt := zu schreiben.
Aufgabe
EinfachDas Programm liest zwei Zeilen ein: ganze Zahlen, die durch Leerzeichen getrennt sind, und Wörter, die durch Leerzeichen getrennt sind. Jede Zeile enthält mindestens einen Wert.
Gib die kleinste und die größte Zahl aus, dann das kleinste und das größte Wort, mit min() und max(). Vergleiche die Zahlen als Zahlen, nicht als Text. Für die Eingaben 42 17 23 56 9 34 und kiwi apple banana cherry date lautet die Ausgabe:
Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwiProbier es selbst
extends Node
func _ready():
var number_texts := OS.read_string_from_stdin().split(" ", false)
var words := Array(OS.read_string_from_stdin().split(" ", false))
# Wandle die Zahlen in int um und gib dann die vier Ergebnisse aus
pass
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler