Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Aula 5 de 6

Organize listas e decomponha a solução em funções

Percorra vetores por índice, trate posições ausentes e divida validação, cálculo e apresentação em funções pequenas.

30 minutos · leitura + prática · nível iniciante

Ao terminar esta aula, você vai conseguir

  • Relacionar quantidade e índices válidos
  • Percorrer e buscar valores numa lista
  • Decompor uma solução por entrada e retorno

Vetor reúne valores numa sequência; função reúne passos sob um nome e um contrato. Nesta aula, você vai percorrer notas sem sair dos índices válidos e separar validação, cálculo e classificação para testar cada regra isoladamente.

Pense num armário com gavetas numeradas. O vetor é o conjunto, o índice localiza uma gaveta e o valor é o conteúdo. O primeiro índice é zero porque representa deslocamento zero a partir do começo. A analogia termina porque arrays JavaScript crescem, podem ter lacunas e podem misturar tipos.

Planeje lista e funções no papel

Antes da sintaxe, escreva estrutura e responsabilidades:

text
RECEBER lista de notas
VALIDAR se há notas e se cada uma está entre 0 e 10
SE validação falhar
  INFORMAR erro
SENÃO
  CALCULAR média percorrendo a lista
  CLASSIFICAR a média
  INFORMAR média e situação
FIM SE

Os verbos VALIDAR, CALCULAR, CLASSIFICAR e INFORMAR sugerem fronteiras. Cada função precisa de uma entrada mínima e devolve um resultado; nenhuma depende de variável escondida.

Índice e quantidade não são o mesmo número

Para [8, 7, 9], a quantidade é três e os índices válidos são zero, um e dois. Um laço por índice continua enquanto indice for menor que notas.length. Quando chega a três, encerra antes de ler posição ausente.

js
const notas = [8, 7, 9];
for (let indice = 0; indice < notas.length; indice += 1) {
  console.log(indice, notas[indice]);
}

No Node v26.3.0, aparecem 0 8, 1 7 e 2 9. Trocar menor por menor ou igual cria uma quarta leitura undefined. O erro pode surgir depois, quando alguém chama um método num valor que não existe.

Quando a posição não importa, for...of reduz o risco de limite errado. Quando você busca e precisa devolver a posição, o índice é parte do resultado. Escolha pela informação necessária.

Dê um contrato a cada função

validar recebe notas e devolve booleano. calcularMedia recebe uma lista já válida e devolve número. classificar recebe média e devolve texto. A função externa coordena e apresenta.

Essa separação permite testar média com [8, 7, 9] sem executar apresentação. Permite testar classificação com 6,9, 7 e 10 sem montar lista. Quando um caso falha, a área de investigação é pequena.

Imprimir dentro de calcularMedia seria um erro de contrato: o terminal mostra oito, mas o chamador recebe undefined. Use return para entregar resultado e deixe console.log na borda.

No laboratório, altere a regra de aprovação para 7,5. Somente classificar deveria mudar. Depois passe lista vazia e confirme que a validação impede a divisão. Se você precisa mexer em cálculo para trocar a política de aprovação, as responsabilidades ainda estão misturadas.

Busque também o ausente

Toda busca tem ao menos três casos: primeiro item, último item e nenhum item. Em JavaScript, findIndex devolve zero para o primeiro e menos um para ausente. Não use if (indice), porque zero é falso e menos um é verdadeiro; compare com -1.

Na missão, uma função encontra o aluno e outra calcula média. O critério é produzir média para primeiro e último, e uma resposta explícita para ausente sem tentar acessar undefined. Na próxima aula, você reunirá as peças no projeto e documentará o teste de mesa.

Laboratório ao vivo

Boletim dividido em funções

Leia o pseudocódigo comentado, execute o boletim e altere uma função por vez. Rejeite lista vazia sem misturar validação e apresentação.

Pronto para testar
Resultado

Pare e pense

Qual é o último índice válido de um vetor com três itens?

Escolha uma resposta
Missão da aula

Faça sem copiar

Crie funções para buscar um aluno e calcular sua média. Teste aluno no primeiro índice, no último e ausente, com resultados distintos.

Fontes para consultar

Terminou a missão?

Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.

Próxima: Projeto final: resolva, rastreie e prove o algoritmo →