12.º anoPercurso edumaterial
O que vais aprender
- Executar operações básicas sobre arrays respeitando índices válidos.
Compreender
Um índice localiza um elemento, enquanto o valor é o dado guardado nesse lugar. Na lista 12, 15 e 14 segundos, o máximo é 15, encontra-se na posição 1 e o último valor é 14 na posição 2. Confundir tamanho 3 com índice 3 conduz a acesso inválido. Uma operação de máximo deve ainda prever o caso de lista vazia.
Valor e posição respondem a perguntas diferentes: 15 é o maior tempo registado, e 1 é o índice onde se encontra. Se dois tempos fossem iguais, uma procura do máximo precisaria de definir se devolve a primeira posição, todas as posições ou apenas o valor. Um array vazio não possui máximo sem regra suplementar. Esses casos de fronteira pertencem ao contrato da operação, não a detalhes invisíveis do código. A frase «Ter três elementos torna o índice 3 válido porque três é o tamanho da lista.» ultrapassa aquilo que foi demonstrado. Para a corrigir, é necessário verificar comprimento e percorrer apenas índices de zero a comprimento menos um. A decisão resulta da comparação entre o dado, o conceito e a condição que ficou por testar.
A lista [12, 15, 14] tem comprimento 3 e índices 0, 1 e 2. Um algoritmo de máximo começa pelo primeiro valor, compara os restantes e pode guardar também o índice onde encontrou 15. A posição 3 não existe, embora 3 seja o comprimento. Para um vetor vazio, não se pode iniciar o máximo com a posição 0; o programa precisa de devolver uma indicação de ausência de dados ou rejeitar a operação segundo um contrato declarado.
Exemplo resolvido
Na lista de três tempos da teoria, [12, 15, 14] segundos, calcula a média e indica quantos índices são válidos sem confundir índice com valor.
- Somando os valores, obtenho 12 + 15 + 14 = 41 segundos.
- Divido 41 por três elementos e mantenho a unidade segundos: 41/3, aproximadamente 13,67 segundos.
- O comprimento é três, logo os índices válidos continuam a ser 0, 1 e 2, independentemente da média calculada.
A média é 41/3 s, cerca de 13,67 s, e há três índices válidos: 0, 1 e 2.
Atenção ao erro
Ter três elementos torna o índice 3 válido porque três é o tamanho da lista.

Verifica agora
Qual é o maior tempo, em que índice está e qual é o último tempo?
Ver solução explicada
Resposta: O maior é 15 segundos no índice 1; o último é 14 segundos no índice 2.
Separa máximo, posição e último elemento.
Um colega toma a seguinte conclusão como demonstrada: «Ter três elementos torna o índice 3 válido porque três é o tamanho da lista.». Localiza o salto e corrige a frase.
Ver solução explicada
Resposta: A conclusão excede o recorte. Índice é posição, não valor; aceder à posição 3 excede uma lista com três elementos. O máximo dos valores é 15 na posição 1; o último valor é 14 na posição 2.
Refuta a inferência com uma condição concreta do caso.
Se o tempo da posição 2 mudar de 14 para 17 segundos, qual passa a ser o máximo e em que índice?
Ver solução explicada
Resposta: O máximo passa a 17 segundos na posição 2; o comprimento e os índices válidos continuam 3 e 0, 1, 2.
Atualiza o máximo sem alterar indevidamente o intervalo de índices.
Define um teste para uma lista vazia que evite um acesso inválido ao primeiro elemento.
Ver solução explicada
Resposta: Entrada: lista []. Resultado esperado: indicação explícita de que não existe máximo, ou erro de entrada documentado; o programa não deve tentar ler o índice 0.
Declara comportamento esperado para comprimento zero e previne acesso fora dos limites.
Alinhamento curricular e fontes
- Introdução à programação, arrays, página 6. Objetivo oficial parafraseado: Executar operações básicas sobre arrays respeitando índices válidos.. O exemplo, a sequência e os exercícios são editoriais. · Aprendizagens Essenciais · aplicacoes-informaticas-b · 12-ano

