Menu
CoddyTech

Поиск минимального и максимального значений

Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 50 из 78.

У массивов есть методы min() и max(), которые возвращают наименьший и наибольший элементы:

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

Глобальные функции min() и max() сравнивают переданные им числа, что удобно для двух или трёх значений:

print(max(4, 12, 7)) # 12
var hp: int = min(120, 100) # 100, никогда не больше 100

Строки сравниваются посимвольно по их кодам Unicode. Каждая заглавная буква стоит перед каждой строчной:

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

То же правило применимо к числам, сохранённым как текст: "9" больше, чем "56", потому что символ 9 идёт после 5. Преобразуй ввод с помощью int(), прежде чем сравнивать числа.

Для пустого массива оба метода возвращают null. Чтобы найти, где находится наибольшее значение, передай его в find(): temps.find(temps.max()) — это 3. Для словаря возьми наибольшее из его значений и найди его ключ с помощью find_key(), который возвращает первый ключ с этим значением:

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

max() возвращает значение любого типа, поэтому укажи тип переменной (var best: int) вместо записи :=.

challenge icon

Задание

Легко

Программа считывает две строки: целые числа, разделённые пробелами, и слова, разделённые пробелами. В каждой строке есть хотя бы одно значение.

Выведите наименьшее и наибольшее число, затем самое маленькое и самое большое слово с помощью min() и max(). Сравнивайте числа как числа, а не как текст. Для входных данных 42 17 23 56 9 34 и kiwi apple banana cherry date вывод будет таким:

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

Попробуйте сами

extends Node

func _ready():
	var number_texts := OS.read_string_from_stdin().split(" ", false)
	var words := Array(OS.read_string_from_stdin().split(" ", false))
	# Преобразуйте числа в int, затем выведите четыре результата
	pass
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и потоки выполнения

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript