Menu
CoddyTech

Cómo encontrar el mínimo y el máximo

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 50 de 78.

Los arreglos tienen los métodos min() y max(), que devuelven el elemento más pequeño y el más grande:

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

Las funciones globales min() y max() comparan los números que les pasas, lo cual resulta práctico para dos o tres valores:

print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, nunca por encima de 100

Las cadenas se comparan carácter por carácter, según su código Unicode. Cada letra mayúscula va antes que cada letra minúscula:

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

La misma regla se aplica a los números almacenados como texto: "9" es mayor que "56", porque el carácter 9 viene después del 5. Convierte la entrada con int() antes de comparar números.

En una matriz vacía, ambos métodos devuelven null. Para encontrar dónde está el valor más grande, pásalo a find(): temps.find(temps.max()) es 3. Para un diccionario, toma el mayor de sus valores y busca su clave con find_key(), que devuelve la primera clave con ese valor:

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

max() devuelve un valor de cualquier tipo, así que declara el tipo de la variable (var best: int) en lugar de escribir :=.

challenge icon

Desafío

Fácil

El programa lee dos líneas: números enteros separados por espacios y palabras separadas por espacios. Cada línea tiene al menos un valor.

Imprime el número más pequeño y el más grande, después la palabra más pequeña y la más grande, con min() y max(). Compara los números como números, no como texto. Para las entradas 42 17 23 56 9 34 y kiwi apple banana cherry date, la salida es:

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

Pruébalo tú mismo

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# Convierte los números a int y luego imprime los cuatro resultados
	pass
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online