O que são vetores e arrays
Entenda como vetores e arrays organizam valores relacionados por posição, aprenda a usar índices e tamanho e diferencie coleções fixas de sequências dinâmicas.

Um array reúne valores relacionados sob um único nome
Um array é uma coleção ordenada de elementos acessados por posição. Em materiais introdutórios em português, um array de uma dimensão também costuma ser chamado de vetor. Em vez de criar uma variável para cada valor relacionado, você mantém uma única coleção e usa um índice para indicar qual elemento deseja ler ou alterar.
Considere cinco temperaturas registradas em horários consecutivos:
18, 21, 23, 20, 19
Com variáveis separadas, a relação entre as medições existe apenas nos nomes:
temperatura0 = 18
temperatura1 = 21
temperatura2 = 23
temperatura3 = 20
temperatura4 = 19
Em uma coleção, a relação e a ordem passam a fazer parte da própria estrutura:
temperaturas = [18, 21, 23, 20, 19]
O ganho não é apenas escrever menos. Agora o algoritmo pode tratar as medições como um conjunto coerente: sabe quantos elementos existem, pode selecionar uma posição e, mais adiante, poderá percorrer todas as posições com uma regra única.
Nome, elemento, índice, valor e tamanho não são a mesma coisa
Na expressão temperaturas[2], cada parte tem uma função:
temperaturasé o nome da coleção;2é o índice, isto é, a posição lógica solicitada;23é o valor armazenado nessa posição;- cada posição ocupada contém um elemento;
5é o tamanho, pois a coleção possui cinco elementos.
Na maioria das linguagens usadas nesta trilha, os índices começam em zero. Por isso, uma coleção de tamanho 5 possui os índices válidos 0, 1, 2, 3 e 4.
tamanho - 1 em uma coleção iniciada em zero.Use estas relações como invariantes:
primeiro índice = 0
último índice = tamanho - 1
quantidade de índices válidos = tamanho
Para tamanho = 5, o último índice é 4. Confundir tamanho com último índice é um dos erros mais frequentes: temperaturas[5] pediria uma sexta posição que não existe nesse modelo.
Uma coleção vazia tem tamanho 0 e não possui primeiro nem último elemento. Aplicar mecanicamente tamanho - 1 produziria -1, mas isso não transforma -1 em posição válida. Antes de acessar as extremidades, confirme que a coleção não está vazia.
Vetor e array podem nomear a mesma ideia introdutória
Nesta trilha, vetor significa um array de uma dimensão: uma sequência linear de posições. Essa convenção aparece em ambientes didáticos como o Portugol Studio e em muitos cursos brasileiros.
O termo não é universal. Em outros contextos, “vetor” pode significar:
- uma grandeza matemática com direção e magnitude;
- uma coleção redimensionável de uma biblioteca específica;
- um tipo otimizado para cálculos numéricos;
- uma representação de características em aprendizado de máquina.
Por isso, não conclua que todo tipo chamado Vector, Array ou List possui as mesmas regras. Primeiro reconheça o modelo comum — valores ordenados e acesso por posição — e depois consulte o contrato da linguagem ou biblioteca usada.
Declare, leia e substitua um elemento
Um pseudocódigo independente de linguagem pode representar as operações essenciais:
temperaturas <- [18, 21, 23, 20, 19]
primeira <- temperaturas[0]
terceira <- temperaturas[2]
temperaturas[3] <- 22
Após a substituição, a coleção é:
[18, 21, 23, 22, 19]
O índice 3 continua existindo e o tamanho continua sendo 5; apenas o valor daquela posição mudou. Isso é diferente de inserir um novo elemento entre 23 e 20, pois uma inserção aumentaria ou reorganizaria a sequência se o tipo de coleção permitisse essa operação.
O mesmo modelo aparece com sintaxes próximas:
const temperaturas = [18, 21, 23, 20, 19];
const terceira = temperaturas[2];
temperaturas[3] = 22;
console.log(terceira); // 23
console.log(temperaturas); // [18, 21, 23, 22, 19]
int[] temperaturas = [18, 21, 23, 20, 19];
int terceira = temperaturas[2];
temperaturas[3] = 22;
Console.WriteLine(terceira); // 23
Console.WriteLine(temperaturas.Length); // 5
temperaturas = [18, 21, 23, 20, 19]
terceira = temperaturas[2]
temperaturas[3] = 22
print(terceira) # 23
print(len(temperaturas)) # 5
As três versões permitem acesso por índice e substituição, mas os tipos criados não são idênticos. Em C#, int[] é um array com comprimento fixado na criação. Em JavaScript, Array pode crescer, diminuir e até possuir posições vazias. Em Python, o exemplo cria uma list, que também pode crescer ou diminuir.
Tamanho fixo e sequência dinâmica são decisões diferentes
Um array clássico costuma reservar uma quantidade definida de posições. Depois de criado, você troca os valores, mas não altera o comprimento daquela instância. Se precisa de outro tamanho, cria outra coleção e, quando necessário, copia os elementos.
Uma lista dinâmica oferece operações para adicionar e remover elementos. Internamente, algumas implementações usam um array redimensionável, mas esse detalhe não transforma toda lista em um array fixo nem garante o mesmo comportamento entre linguagens.
| Necessidade | Estrutura adequada em princípio |
|---|---|
| quantidade conhecida e estável de posições | array de tamanho fixo |
| adicionar ou remover valores durante a execução | lista ou sequência dinâmica |
| localizar valores por uma chave como CPF ou código | mapa ou dicionário |
| guardar um único valor sem relação sequencial | variável simples |
Esses critérios descrevem a intenção, não substituem a documentação. C#, JavaScript e Python dão nomes e garantias diferentes às coleções. Escolher o tipo exige combinar o problema com o contrato real da linguagem, assim como você fez ao escolher tipos de dados.
Elementos relacionados devem compartilhar um significado
Um array não deve ser apenas uma caixa para valores aleatórios. Uma boa coleção possui uma regra que explica por que seus elementos estão juntos e o que a ordem representa.
Em temperaturas, todos os valores são medições na mesma unidade e cada posição corresponde a um horário consecutivo. Em etapas = ["planejar", "implementar", "testar"], a ordem representa a sequência do processo.
Arrays clássicos de C# e Java possuem um tipo de elemento declarado. JavaScript permite misturar números, textos, objetos e outros valores no mesmo Array; listas de Python também aceitam tipos diferentes. Essa permissão não torna a mistura automaticamente clara:
const registroAmbiguo = ["Sala 2", 23, true, "2026-09-22"];
O leitor precisa decorar o significado de cada posição. Quando os campos representam propriedades diferentes de uma entidade, um objeto com nomes como sala, temperatura, ativo e data costuma comunicar melhor. Use uma coleção indexada quando os elementos compartilham um papel e a posição possui sentido.
Valide o índice antes de depender do elemento
O intervalo válido depende do tamanho atual da coleção:
índice válido quando 0 <= índice < tamanho
O teste usa < tamanho, não <= tamanho. Para uma coleção de tamanho 5, índice = 5 já está fora do intervalo.
SE indice < 0 OU indice >= tamanho(temperaturas) ENTÃO
ESCREVER "posição inválida"
SENÃO
ESCREVER temperaturas[indice]
FIM SE
Esse cuidado é especialmente importante quando o índice vem de uma entrada externa ou de um cálculo. A validação de entradas e regras de negócio deve acontecer antes do acesso.
Linguagens reagem de maneiras diferentes a uma posição ausente. Java verifica o limite e lança uma exceção; C# também sinaliza acesso fora dos limites; uma leitura inexistente em um Array de JavaScript pode produzir undefined; Python permite índices negativos com significado próprio, mas rejeita um índice positivo além da lista. Não escreva um algoritmo portável supondo que um acesso inválido sempre produzirá zero, vazio ou o último elemento.
Evite quatro confusões comuns
Confundir índice com valor
Em temperaturas[2], o índice é 2 e o valor é 23. Procurar o valor 2 seria outra operação, que pertence à busca em coleções.
Usar o tamanho como índice
Se o tamanho é 5, o último índice é 4. O padrão colecao[tamanho] fica uma posição depois do fim.
Supor que toda coleção cresce
Substituir temperaturas[3] não adiciona uma sexta medição. Arrays fixos não mudam de comprimento; listas e arrays dinâmicos só crescem por operações específicas.
Escolher uma coleção sem definir a ordem
“Guardar cinco notas” não explica se a posição representa prova, aluno ou data. Antes de declarar o array, escreva uma frase como: “o índice identifica a ordem das avaliações de um mesmo aluno”. Essa regra impede que o significado se perca.
Pratique com leituras horárias
Modele seis leituras de consumo de energia:
[12, 15, 14, 18, 17, 13]
Execute o roteiro sem usar laços ainda:
- dê à coleção um nome que informe unidade e contexto;
- anote tamanho, primeiro índice e último índice;
- escreva a expressão que lê o quarto valor;
- corrija o valor do índice
4para16; - mostre a coleção resultante;
- verifique os índices
-1,0,5e6segundo a regra abstrata0 <= índice < tamanho; - explique se adicionar uma sétima leitura exige ou não outra instância no tipo escolhido.
Resultado esperado para as operações centrais:
tamanho = 6
primeiro índice = 0
último índice = 5
quarto valor = leituras[3] = 18
após a correção = [12, 15, 14, 18, 16, 13]
O exercício está completo quando você consegue separar posição, valor e quantidade sem testar ao acaso no código.
O que você deve guardar
Vetores e arrays organizam valores relacionados em uma sequência acessível por posição. Cada elemento ocupa um índice; quando a indexação começa em zero, uma coleção de tamanho N usa posições de 0 a N - 1.
Nesta trilha, “vetor” nomeia um array unidimensional, mas as implementações variam. Um array de C# tem comprimento fixo, enquanto Array em JavaScript e list em Python são sequências dinâmicas com contratos próprios. Use o modelo conceitual para raciocinar e a documentação da linguagem para implementar.
Depois de aprender a criar, acessar e substituir posições específicas, o próximo passo é percorrer um vetor inteiro sem repetir manualmente uma instrução para cada elemento.
Referências
- Microsoft Learn — C# language specification: Arrays. Acesso em 22 set. 2026.
- Microsoft Learn — Common collection types in C#. Acesso em 22 set. 2026.
- MDN Web Docs — Indexed collections. Acesso em 22 set. 2026.
- Python 3 Documentation — An informal introduction to Python: Lists. Acesso em 22 set. 2026.
- Oracle — Java Language Specification, Java SE 26, Chapter 10: Arrays. Acesso em 22 set. 2026.
- UNIVALI — Portugol Studio: exemplo e biblioteca de vetores. Acesso em 22 set. 2026.