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()) # 31Funkcje 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 100Cią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()) # kiwiTa 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 140max() zwraca wartość dowolnego typu, dlatego zadeklaruj typ zmiennej (var best: int) zamiast zapisywać :=.
Wyzwanie
ŁatwyProgram 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: kiwiSpró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
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
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online