Cursos / Automação Industrial / Lógica de Programação / Aula

arrow_back Aula 11 - Estruturas de Dados Homogêneas - Vetores

Exercício Resolvido - Sintaxe de Vetores

Você recorda do exercício realizado no início da aula? Nele, foi solicitado que você definisse um algoritmo que recebesse o nome de 10 alunos e que, em seguida, realizasse a impressão desses nomes na ordem em que foram lidos pelo algoritmo. Veja abaixo uma possível solução para esse problema, mas agora utilizando um único vetor.

x
1
var alunos := vetor[10]
2
3
alunos[0] := leia_texto
4
alunos[1] := leia_texto
5
alunos[2] := leia_texto
6
alunos[3] := leia_texto
7
alunos[4] := leia_texto
8
alunos[5] := leia_texto
9
alunos[6] := leia_texto
10
alunos[7] := leia_texto
11
alunos[8] := leia_texto
12
alunos[9] := leia_texto
13
14
escreva "{alunos[0]}"
15
escreva "{alunos[1]}"
16
escreva "{alunos[2]}"
17
escreva "{alunos[3]}"
18
escreva "{alunos[4]}"
19
escreva "{alunos[5]}"
20
escreva "{alunos[6]}"
21
escreva "{alunos[7]}"
22
escreva "{alunos[8]}"
23
escreva "{alunos[9]}"

O que achou dessa solução? Ela é bem fácil de implementar, não é verdade? Apesar disso, esse simples programa possui mais de 20 linhas de código! Por esse motivo, certamente, essa não é a melhor solução para esse exercício.

Ao analisar o código, você consegue notar algo em comum entre as linhas? Repare que há 10 linhas quase idênticas em que o comando leia_texto é utilizado e há mais 10 linhas em que se utiliza o comando escreva. A diferença entre elas é somente o índice que varia de uma linha para outra.

O índice que é utilizado entre os colchetes de um vetor e que indica a posição que se deseja acessar pode ser substituído por uma variável primitiva do tipo inteiro. Assim, você pode utilizar estruturas de repetição e simplificar a manipulação dos dados de um vetor. Veja a mesma solução apresentada acima, agora, utilizando uma estrutura com variável de controle e algumas mensagens de orientação ao usuário.

12
1
var alunos := vetor[10]
2
3
# ler 10 nomes.
4
para i de 0 até 9 faça
5
    escreva "O nome do {i+1}º aluno:"
6
    alunos[i] := leia_texto
7
fim
8
9
# imprimir os 10 nomes lidos
10
para i de 0 até 9 faça
11
    escreva "{i+1}º aluno: {alunos[i]}"
12
fim

O que achou dessa nova solução? Ela conta com pouco mais de 10 linhas de código e atende ao solicitado no exercício, além de ficar mais funcional e elegante do que a primeira solução apresentada.

Esse primeiro exemplo mostrou como utilizar uma variável do tipo vetor para armazenar texto, mas, em outras situações, você poderá precisar utilizar outro tipo de dado, como o inteiro e o real. Em todos os casos, você precisará indicar, na declaração da variável, que deseja criar um vetor. Veja, no exemplo abaixo, a declaração de dois vetores — um para armazenar dados do tipo inteiro e outro do tipo real.

15
1
var faltas := vetor[40]
2
var notas := vetor[40]
3
4
# ler as faltas e notas de 40 alunos.
5
para i de 0 até 39 faça
6
    escreva "Digite a quantidade de faltas do {i+1}º aluno:"
7
    faltas[i] := leia_inteiro
8
    escreva "Digite a nota do {i+1}º aluno:"
9
    notas[i] := leia_real
10
fim
11
12
# imprimir as faltas e notas de 40 alunos.
13
para i de 0 até 39 faça
14
    escreva "O {i+1}º aluno tem {faltas[i]} faltas e sua nota é {notas[i]}."
15
fim

Versão 5.3 - Todos os Direitos reservados