Menu
CoddyTech

Ordenar e inverter

Parte da seção Fundamentos do Journey de GDScript da Coddy. Lição 76 de 92.

sort() coloca os elementos de um array em ordem crescente. Ele altera o próprio array:

var scores := [5, 1, 9, 3]
scores.sort()
print(scores)
[1, 3, 5, 9]

sort() não retorna nada, então print(scores.sort()) é um erro. Primeiro, ordene e depois imprima.

As strings são ordenadas alfabeticamente, e as letras maiúsculas vêm antes das minúsculas: ["bob", "Cleo", "ana"] se transforma em ["Cleo", "ana", "bob"].

reverse() inverte a ordem atual do array, sem ordená-lo. Para ordenar em ordem decrescente, ordene primeiro e depois inverta:

var hp := [7, 2, 9, 4]
hp.reverse()
print(hp)
hp.sort()
hp.reverse()
print(hp)
[4, 9, 2, 7]
[9, 7, 4, 2]

Atribuir um array a outra variável não o copia: ambas as variáveis passam a usar o mesmo array, e ordenar um ordena o outro. Para manter a ordem original, ordene uma cópia feita com duplicate():

var original := [5, 3, 9]
var sorted_copy := original.duplicate()
sorted_copy.sort()
print(original, " ", sorted_copy)
[5, 3, 9] [3, 5, 9]
challenge icon

Desafio

Fácil

O programa lê uma linha de números inteiros separados por vírgulas em numbers (já escrito). Imprima três linhas:

  1. Original: e os números na ordem original
  2. Ascending: e os números ordenados do menor para o maior
  3. Descending: e os números ordenados do maior para o menor

Para a entrada 5,3,9,1, a saída é:

Original: [5, 3, 9, 1]
Ascending: [1, 3, 5, 9]
Descending: [9, 5, 3, 1]

Experimente você mesmo

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var numbers: Array[int] = []
	for part in parts:
		numbers.append(int(part))
	# Escreva seu código abaixo
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 Fundamentos

Pratique por conta própria: Compilador de GDScript online