Menu
CoddyTech

Encontrando o Mínimo e o Máximo

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 50 de 78.

Arrays têm os métodos min() e max(), que retornam o menor e o maior elemento:

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

As funções globais min() e max() comparam os números que você passa para elas, o que é útil para dois ou três valores:

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

As strings são comparadas caractere por caractere, pelo seu código Unicode. Todas as letras maiúsculas vêm antes de todas as letras minúsculas:

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

A mesma regra se aplica a números armazenados como texto: "9" é maior que "56", porque o caractere 9 vem depois de 5. Converta a entrada com int() antes de comparar números.

Em um array vazio, ambos os métodos retornam null. Para encontrar onde está o maior valor, passe-o para find(): temps.find(temps.max()) é 3. Para um dicionário, pegue o maior valor entre seus valores e procure sua chave com find_key(), que retorna a primeira chave com esse valor:

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

max() retorna um valor de qualquer tipo, então declare o tipo da variável (var best: int) em vez de escrever :=.

challenge icon

Desafio

Fácil

O programa lê duas linhas: números inteiros separados por espaços e palavras separadas por espaços. Cada linha tem pelo menos um valor.

Imprima o menor e o maior número, depois a menor e a maior palavra, com min() e max(). Compare os números como números, não como texto. Para as entradas 42 17 23 56 9 34 e kiwi apple banana cherry date, a saída é:

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

Experimente você mesmo

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# Converta os números para int e depois imprima os quatro resultados
	pass
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online