Поиск минимального и максимального значений
Часть раздела Логика и потоки выполнения путешествия по 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 140max() возвращает значение любого типа, поэтому укажи тип переменной (var best: int) вместо записи :=.
Задание
ЛегкоПрограмма считывает две строки: целые числа, разделённые пробелами, и слова, разделённые пробелами. В каждой строке есть хотя бы одно значение.
Выведите наименьшее и наибольшее число, затем самое маленькое и самое большое слово с помощью 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
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатов9Расширенная агрегация данных
Суммирование значенийПоиск минимального и максимального значенийПользовательская сортировкаПовторение — сортировщик словарейПотренируйтесь самостоятельно: Онлайн-компилятор GDScript