You are on page 1of 10

Lógica de Programação e Algoritmos - LPA

Vetor

O vetor – ou matriz unidimensional – é um arranjo de variáveis do mesmo tipo, ou seja,


variáveis homogêneas, com o mesmo nome mas diferenciadas por um ou mais índices.

O vetor possui uma única dimensão e, um único índice.

A sintaxe para se declarar um vetor é:

Nome_do_Vetor : conjunto[<dimensão>] de <tipo_de_dado>

Exemplo:

Endereco : conjunto[1..15] de caractere

Como exemplo de utilização de vetores, vamos considerar o seguinte problema: “Calcular


e apresentar a média geral de uma turma de 8 alunos. A média a ser obtida deve ser a
média geral das médias de cada aluno obtida durante o ano letivo”.

Desta forma, será necessário somar todas as médias e dividi-las por 8. A tabela abaixo
apresenta o número de alunos, suas notas bimestrais e respectivas médias anuais. É da
média de cada aluno que será efetuado o cálculo da média da turma.

Aluno Nota1 Nota2 Nota3 Nota4 Média


1 4.0 6.0 5.0 3.0 4.5
2 6.0 7.0 5.0 8.0 6.5
3 9.0 8.0 9.0 6.0 8.0
4 3.0 5.0 4.0 2.0 3.5
5 4.0 6.0 6.0 8.0 6.0
6 7.0 7.0 7.0 7.0 7.0
7 8.0 7.0 6.0 5.0 6.5
8 6.0 7.0 2.0 9.0 6.0
Sem a utilização de vetores, criaríamos 8 variáveis distintas para efetuar a leitura de cada
nota, onde cada variável armazenaria um valor por vez. Ficaria mais ou menos assim:

MD0 = 4.5
MD1 = 6.5
MD2 = 8.0

1
Lógica de Programação e Algoritmos - LPA

MD3 = 3.5
MD4 = 6.0
MD5 = 7.0
MD6 = 6.5
MD7 = 6.0

Já o vetor, possui a capacidade de armazenar mais de um valor por vez, e para o


problema acima, poderíamos representá-lo da seguinte forma:

MD[0] = 4.5
MD[1] = 6.5
MD[2] = 8.0
MD[3] = 3.5
MD[4] = 6.0
MD[5] = 7.0
MD[6] = 6.5
MD[7] = 6.0

Note que somente uma variável foi criada, o que muda é a informação indicada dentro
dos colchetes. A esta informação dá-se o nome de índice, sendo este o endereço onde o
elemento está armazenado.

Importante:

Elemento é o conteúdo do vetor, neste caso, as notas.


Índice é o endereço cujo elemento está armazenado.

Pseudocódigo

Programa Media_Turma_A
var
MD : conjunto[1..8] de real
soma, media : real
i : inteiro
início
soma ← 0
para i de 0 até 7 passo 1 faça
leia (MD[i])
soma ← soma + MD[i]
fim_para
media ← (soma / 8)
escreva (“A média da turma é:”, media)
fim

Diagrama de Bloco

2
Lógica de Programação e Algoritmos - LPA

Podemos notar que o programa ficou mais compacto. Além disso, se quisermos calcular
um número maior de alunos, basta redimensionar o vetor e mudar a instrução de
repetição (para).

Escrevendo os dados de um vetor

O processo de escrita dos dados de um vetor é parecido com o processo de leitura de


seus elementos. Vamos supor que após a leitura das 8 notas, houvesse a necessidade de
exibi-las antes da apresentação do valor da média.

Pseudocódigo

Programa Media_Turma_B
var
MD : conjunto[1..8] de real
soma, media : real
i : inteiro
início
soma ← 0
para i de 0 até 7 passo 1 faça
leia (MD[i])
soma ← soma + MD[i]
fim_para
media ← (soma / 8)
para i de 0 até 7 passo 1 faça
escreva (MD[i])
fim_para
3
Lógica de Programação e Algoritmos - LPA

escreva (“A média da turma é:”, media)


fim

Diagrama de Bloco

Exercício para Fixação

Desenvolver em descrição narrativa, pseudocódigo e diagrama de blocos, um programa


que efetue a leitura de 10 elementos de um vetor A. Construir um vetor B do mesmo tipo,
observando a seguinte lei de formação: se o valor do índice for par, o valor do elemento
deverá ser multiplicado por 5; sendo ímpar, deverá ser somado com 5. Ao final, mostrar o
conteúdo dos dois vetores.

Descrição narrativa

Passo 1. Iniciar o contador de índice, variável “i” como 1 em um contador até 10;
Passo 2. Ler os 10 valores, um a um;
Passo 3. Verificar se o índice é par;
se sim, multiplicar por 5 e armazenar no vetor B
se não, somar 5 e armazenar no vetor B;
Passo 4. Apresentar o conteúdo dos dois vetores.

Pseudocódigo

Programa Verifica_Indice
var
A, B : conjunto[1..10] de real
i : inteiro
início
para i de 0 até 9 passo 1 faça
leia (A[i])
fim_para
para i de 0 até 9 passo 1 faça
4
Lógica de Programação e Algoritmos - LPA

r ← i mod 2
se (r = 0) então
B[i] ← A[i] * 5
senão
B[i] ← A[i] + 5
fim_se
fim_para
para i de 0 até 9 passo 1 faça
escreva (A[i], B[i])
fim_para
fim

Diagrama de Bloco

Matriz com Duas Dimensões

A matriz é um arranjo definido por duas ou mais dimensões, portanto, possui dois ou mais
índices.

Uma matriz com duas dimensões se parece com uma tabela.

5
Lógica de Programação e Algoritmos - LPA

Sintaxe:

Nome_Matriz : conjunto[<dimensão1, dimensão2>] de <tipo_de_dado>

Exemplo:

Notas : conjunto[1..8, 1..4] de real

O número de loopings utilizado para o controle de uma matriz equivale à sua dimensão.
Portanto, para uma matriz com duas dimensões, efetuamos o seu controle com dois
loopings.

Os elementos da matriz também são manipulados de forma individualizada, sendo a


referência feita sempre através de dois índices: o primeiro para indicar a linha e o
segundo para indicar a coluna. Desta forma, MATRIZ[2,3] indica que está sendo feita uma
referência do elemento armazenado na linha 2 e coluna três da tabela MATRIZ.

Leitura de Dados de uma Matriz

Como exemplo de utilização de leitura de dados em uma matriz, vamos considerar o


seguinte problema: “Efetuar a leitura de 4 notas bimestrais de 8 alunos”.

Pseudocódigo

Programa Leitura_Elementos
var
notas : conjunto[1..8, 1..4] de real
i,j : inteiro
início
para i de 0 até 7 passo 1 faça
para j de 0 até 3 passo 1 faça
leia (notas[i,j])
fim_para
fim_para
fim

6
Lógica de Programação e Algoritmos - LPA

Observação: o primeiro looping é o principal, e tem a função de controlar o


posicionamento na tabela por aluno. O segundo looping, mais interno, controla o
posicionamento das notas.

Diagrama de Bloco

7
Lógica de Programação e Algoritmos - LPA

Assim que o preenchimento da tabela é iniciado, o primeiro valor é alocado na posição


notas[0,0], assim sendo, será então digitado para o primeiro aluno a sua primeira nota.
Depois é incrementado mais 1 em relação à coluna, sendo alocada para a entrada da
nota 2 do aluno a posição notas[1,2], e assim sucessivamente, até que o contador de
coluna, ou seja, o looping da variável j, atinja 3 e seja encerrado.

A partir daí, a variável i será incrementada de mais 1, e na posição notas[1,0] será


digitada a primeira nota do segundo aluno. O processo é o mesmo até que todas as notas
dos oito alunos sejam digitadas.
Nota 1 Nota 2 Nota 3 Nota 4
↓ ↓ ↓
Aluno 1 → 10 9 9,5 8
Aluno 2 → 7 8 6 4
Aluno 3 → 3,5 7 7 7
Aluno 4 → 8 8,5 8,5 10
Aluno 5 → 10 10 9,5 10
Aluno 6 → 6 7 7 6
Aluno 7 → 2 3 6 7
Aluno 8 → 9 7 9 8

O processo para
escrever os
elementos da
matriz é
semelhante ao
processo de
leitura dos
elementos.

8
Lógica de Programação e Algoritmos - LPA

Exercícios Resolvidos:

1 - Ler 10 elementos de um vetor e apresentar os valores lidos.

Programa Um
var
A : conjunto[1..10] de real
i : inteiro
início
para i de 0 até 9 passo 1 faça
leia (A[i])
fim_para
para i de 0 até 9 passo 1 faça
escreva (A[i])
fim_para
fim

2 - Ler um vetor A com 15 elementos. Construir um vetor B de mesmo tipo, sendo


que cada elemento do vetor B seja o fatorial do elemento correspondente do vetor A.
Apresentar o vetor B.

Programa Dois_A
var
A, B : conjunto[1..15] de inteiro
i, contador, fatorial : inteiro
início
para i de 0 até 14 passo 1 faça
leia (A[i])
fim_para
fatorial ← 1
para i de 0 até 14 passo 1 faça
para contador de 1 até A[i] faça
fatorial ← fatorial * contador
fim_para
B[i] ← fatorial
fim_para
para i de 0 até 14 passo 1 faça
escreva (B[i])
fim_para
fim

3 - Ler 20 elementos para uma matriz qualquer, considerando que esta matriz
tenha o tamanho de 4 linhas por 5 colunas. Apresentar os valores lidos.

Programa Um
var
mat : conjunto[1..4, 1..5] de inteiro
i,j : inteiro
início
9
Lógica de Programação e Algoritmos - LPA

para i de 0 até 3 passo 1 faça


para j de 0 até 4 passo 1 faça
leia (mat[i,j])
fim_para
fim_para
para i de 0 até 3 passo 1 faça
para j de 0 até 4 passo 1 faça
escreva (mat[i,j])
fim_para
fim_para
fim

4 - Ler duas matrizes A5x3 e B5x3. Construir uma matriz C de mesma dimensão, onde C é
formada pela soma dos elementos da matriz A com os elementos da matriz B.
Apresentar a matriz C.

Programa Dois
var
A, B, C : conjunto[1..5, 1..3] de inteiro
i,j : inteiro
início
para i de 0 até 4 passo 1 faça
para j de 0 até 2 passo 1 faça
leia (A[i,j])
leia (B[i,j])
C[i,j] ← A[i,j] + B[i,j]
fim_para
fim_para
para i de 0 até 4 passo 1 faça
para j de 0 até 2 passo 1 faça
escreva (C[i,j])
fim_para
fim_para
fim

Material Cedido Por:


Antônio Viana
Ecila Oliveira
Luciana Abiuzi
Sidinei Akira

10

You might also like