Menu
CoddyTech

Trovare minimo e massimo

Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 50 di 78.

Gli array hanno i metodi min() e max(), che restituiscono l'elemento più piccolo e quello più grande:

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

Le funzioni globali min() e max() confrontano i numeri che gli passi, il che è utile per due o tre valori:

print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, mai superiore a 100

Le stringhe vengono confrontate carattere per carattere, in base al loro codice Unicode. Ogni lettera maiuscola viene prima di ogni lettera minuscola:

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

La stessa regola si applica ai numeri memorizzati come testo: "9" è maggiore di "56", perché il carattere 9 viene dopo 5. Converti l’input con int() prima di confrontare i numeri.

Su un array vuoto, entrambi i metodi restituiscono null. Per trovare dove si trova il valore più grande, passalo a find(): temps.find(temps.max()) è 3. Per un dizionario, prendi il valore più grande tra i suoi valori e cerca la relativa chiave con find_key(), che restituisce la prima chiave con quel valore:

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

max() restituisce un valore di qualsiasi tipo, quindi dichiara il tipo della variabile (var best: int) invece di scrivere :=.

challenge icon

Sfida

Facile

Il programma legge due righe: numeri interi separati da spazi e parole separate da spazi. Ogni riga contiene almeno un valore.

Stampa il numero più piccolo e quello più grande, poi la parola più piccola e quella più grande, usando min() e max(). Confronta i numeri come numeri, non come testo. Per gli input 42 17 23 56 9 34 e kiwi apple banana cherry date, l'output è:

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

Provalo tu

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# Converti i numeri in int, poi stampa i quattro risultati
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online