Menu
CoddyTech

Znajdowanie minimum i maksimum

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 50 z 78.

Tablice mają metody min() i max(), które zwracają najmniejszy i największy element:

var temps := [18, 25, 9, 31, 22]
print(temps.min()) # 9
print(temps.max()) # 31

Funkcje globalne min() i max() porównują przekazane im liczby, co jest przydatne w przypadku dwóch lub trzech wartości:

print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, nigdy powyżej 100

Ciągi znaków są porównywane znak po znaku, według ich kodów Unicode. Każda wielka litera występuje przed każdą małą literą:

var words := ["kiwi", "apple", "Fig"]
print(words.min()) # Fig
print(words.max()) # kiwi

Ta sama zasada dotyczy liczb zapisanych jako tekst: "9" jest większe niż "56", ponieważ znak 9 występuje po 5. Przed porównaniem liczb skonwertuj dane wejściowe za pomocą int().

W przypadku pustej tablicy obie metody zwracają null. Aby znaleźć gdzie znajduje się największa wartość, przekaż ją do find(): temps.find(temps.max()) to 3. W przypadku słownika znajdź największą z jego wartości i wyszukaj jej klucz za pomocą find_key(), która zwraca pierwszy klucz o tej wartości:

var scores := {"Mia": 120, "Leo": 95, "Ana": 140}
var best: int = scores.values().max()
print(scores.find_key(best), " ", best) # Ana 140

max() zwraca wartość dowolnego typu, dlatego zadeklaruj typ zmiennej (var best: int) zamiast zapisywać :=.

challenge icon

Wyzwanie

Łatwy

Program odczytuje dwa wiersze: liczby całkowite oddzielone spacjami oraz słowa oddzielone spacjami. Każdy wiersz zawiera co najmniej jedną wartość.

Wypisz najmniejszą i największą liczbę, a następnie najmniejsze i największe słowo, używając min() i max(). Porównuj liczby jako liczby, a nie jako tekst. Dla danych wejściowych 42 17 23 56 9 34 i kiwi apple banana cherry date wynik to:

Smallest number: 9
Largest number: 56
Smallest word: apple
Largest word: kiwi

Spróbuj swoich sił

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# Przekonwertuj liczby na int, a następnie wypisz cztery wyniki
	pass
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online