Сортировка и обратный порядок
Часть раздела Основы путешествия по GDScript на Coddy. Урок 76 из 92.
sort() располагает элементы массива в порядке возрастания. Он изменяет сам массив:
var scores := [5, 1, 9, 3]
scores.sort()
print(scores)[1, 3, 5, 9]sort() ничего не возвращает, поэтому print(scores.sort()) — это ошибка. Сначала отсортируй, затем выведи на печать.
Строки сортируются в алфавитном порядке, причём заглавные буквы идут перед строчными: ["bob", "Cleo", "ana"] превращается в ["Cleo", "ana", "bob"].
reverse() меняет текущий порядок элементов массива, не сортируя его. Чтобы отсортировать массив по убыванию, сначала отсортируй его, а затем разверни:
var hp := [7, 2, 9, 4]
hp.reverse()
print(hp)
hp.sort()
hp.reverse()
print(hp)[4, 9, 2, 7]
[9, 7, 4, 2]Присваивание массива другой переменной не создаёт его копию: обе переменные используют один и тот же массив, и сортировка одного массива сортирует другой. Чтобы сохранить исходный порядок, отсортируй копию, созданную с помощью duplicate():
var original := [5, 3, 9]
var sorted_copy := original.duplicate()
sorted_copy.sort()
print(original, " ", sorted_copy)[5, 3, 9] [3, 5, 9]Задание
ЛегкоПрограмма считывает строку целых чисел, разделённых запятыми, в numbers (уже написано). Выведите три строки:
Original:и числа в исходном порядкеAscending:и числа, отсортированные от наименьшего к наибольшемуDescending:и числа, отсортированные от наибольшего к наименьшему
Для входных данных 5,3,9,1 вывод будет таким:
Original: [5, 3, 9, 1]
Ascending: [1, 3, 5, 9]
Descending: [9, 5, 3, 1]Попробуйте сами
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var numbers: Array[int] = []
for part in parts:
numbers.append(int(part))
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript