Alternativa B - Apenas o segundo código está correto.
Para resolver esta questão, é necessário compreender como funciona a manipulação de vetores de registros (ou estruturas) em programação estruturada. O objetivo é armazenar dados de 5 funcionários em uma lista, onde cada item possui múltiplas informações (idade, nome, salário, etc.).
Análise dos Algoritmos
A seguir, detalhamos o porquê de cada algoritmo estar certo ou errado:
- Algoritmo I (Incorreto):
- Declara um vetor
dados do tipo registo. - No entanto, dentro do laço
para i de 1 ate 5, ele tenta ler os dados diretamente nas variáveis simples (ex: leia(idade), leia(codigo)). - Erro: Ele não utiliza o índice do loop (
i) para salvar os dados no vetor (dados[i]). Além disso, as variáveis idade, nome, etc., não foram declaradas na seção Var, causando erro de compilação ou lógica. Os dados seriam perdidos a cada iteração. - Algoritmo II (Correto):
- Declara o vetor corretamente:
vetor <- vetor[1..5] do tipo registo. - No laço, utiliza a sintaxe correta para acessar o elemento específico do vetor e seu campo:
leia(vetor[i].codigo). - Sucesso: O uso de
[i] garante que cada funcionário tenha seus dados salvos em posições distintas do vetor. O uso de . garante que o dado seja salvo no campo correto daquele registro. - Algoritmo III (Incorreto):
- Declara o vetor
dados, mas nunca o utiliza. - Tenta ler os dados usando índices globais:
leia(idade[i]), leia(nome[i]). - Erro: As variáveis
idade, nome, etc., são campos definidos apenas dentro da estrutura tipo. Elas não foram declaradas como vetores globais na seção Var. Tentar acessar idade[i] gera erro pois idade não é um vetor independente.
Resumo
| Algoritmo | Status | Motivo Principal |
|---|
| I | ❌ Incorreto | Não referencia o índice do vetor (i) nem declara as variáveis de entrada. |
| II | ✅ Correto | Acessa corretamente o vetor pelo índice e pelo campo (vetor[i].campo). |
| III | ❌ Incorreto | Tenta indexar campos de estrutura como se fossem vetores globais não declarados. |
Portanto, apenas o Algoritmo II segue a lógica correta de inicialização de um vetor de registros.