Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação
Material Teórico
Conceitos de Vetores e Matrizes
Revisão Técnica:
Prof. Me. Douglas Almendro
Revisão Textual:
Prof. Me. Selma Aparecida Cesarin
a
Conceitos de Vetores e Matrizes
• Estruturas de Dados
• Vetor e Matriz
·· Nesta Unidade, o aluno terá uma visão do que vem a ser vetores e matrizes, suas
formas de acesso e manipulação, bem como irá entender também o pensamento
de programação computacional.
Hoje, veremos alguns assuntos introdutórios na nossa Disciplina e aproveito para apresentar
alguns conceitos que utilizaremos na estrutura de todas as nossas Unidades.
Para obter um bom aproveitamento, vamos conferir a estrutura desta Unidade:
··Conteúdo Teórico: neste link, você encontrará o material principal de estudos na forma
de texto escrito;
··Atividade de Sistematização: os exercícios disponibilizados são de autocorreção e visam
a que você pratique o que aprendeu na Disciplina e que identifique os pontos em que
precisa prestar mais atenção, ou pedir esclarecimentos a seu tutor. Além disso, as notas
atribuídas aos exercícios serão parte de sua média final na Disciplina;
··Atividade de Aprofundamento: é uma atividade dissertativa ou de pesquisa;
··Material Complementar e Referências Bibliográficas: nestes links, você poderá ampliar
seus conhecimentos;
··Videoaula: nestes links serão apresentadas algumas ferramentas na prática e também a
resolução de alguns exercícios de forma prática.
Lembramos a você da importância de realizar todas as atividades propostas dentro do prazo
estabelecido para cada Unidade, dessa forma, você evitará que o conteúdo se acumule e que
você tenha problemas ao final do semestre.
Uma última recomendação, caso tenha problemas para acessar algum item da Disciplina,
ou dúvidas com relação ao conteúdo, não deixe de entrar em contato com seu professor tutor
pelo botão mensagens ou fóruns.
Bom estudo!
5
Unidade: Conceitos de Vetores e Matrizes
Contextualização
A variável é capaz de armazenar apenas um valor de cada vez. Existem situações em que há
necessidade de armazenar uma grande quantidade de valores e para isso não iremos declarar
várias variáveis, mas não se preocupem; isso é normal. Para solucionarmos esses problemas,
utilizaremos recursos da lógica de programação chamados de malhas ou repetições aplicados
a vetores e matrizes.
Com os vetores e matrizes podemos utilizar a mesma variável apenas informando a posição
que iremos armazenar.
Em nosso material estaremos explorando os conceitos iniciais tanto de estruturas de
dados quanto de vetores, matrizes e principalmente a grande influência que temos em usar
estruturas de repetição, nos algoritmos, tanto para as inserções nos vetores quanto nas
remoções e alocações.
6
Estruturas de Dados
A variável é capaz de armazenar apenas um valor de cada vez. Existem situações em que
há necessidade de armazenar uma grande quantidade de valores, mas para isso não iremos
declarar várias variáveis.
Para resolver esse problema, construímos novos tipos que têm um formato denominado
estrutura de dados, que define como os tipos primitivos estão organizados.
Vetor e Matriz
7
Unidade: Conceitos de Vetores e Matrizes
Vetor – Declaração
• Pseudocódigo
• Java
Inicialização de um vetor:
8
Exemplo 1
Declaração de um vetor com 4 elementos inteiros.
• Pseudocódigo
inteiro c [4]
• Java
Reforçando que:
c[0]
Conteúdo
c[1]
c[2]
c[3]
Vetores – Características
· Tamanho fixo: vetores não podem ser redimensionados após sua construção;
· Verificados em tempo de execução: armazenar ou acessar um elemento em um local que
não foi declarado;
· Tipo definido: restringimos o tipo dos elementos que podem ser armazenados.
· Cada elemento do vetor é inicializado com um valor padrão, dependendo do
tipo de dados:
· null para Objetos (como String etc.)
· 0 para números (int, float, double, byte etc.)
· false para booleanos (boolean).
9
Unidade: Conceitos de Vetores e Matrizes
• Pseudocódigo
inteiro c[1000]
para (i=0; i<1000; i++ )
escreva (“Digite um número”)
leia c[i]
fim para
• Java
A utilização de um vetor está associada a uma estrutura de repetição. Com isso, podemos
facilmente percorrer um vetor para consultas ou atualizações.
inteiro i
para (i=0; i<4; i++ )
processar o elemento a[i]
fim para
10
Exemplo 2
Acessar, armazenar e mostrar valores do vetor.
• Pseudocódigo
real salario[5]
//Preenchimento do vetor
para (i=0; i<5; i++ )
escreva (“Entre com salario”)
leia salario[i]
fim para
//mostrando valores armazenados
para (i=0; i<5; i++ )
escreva (“Funcionário: ”+
(i+1)+ “ Salário: “ + salario[i])
fim para
• Java
11
Unidade: Conceitos de Vetores e Matrizes
Exemplo 3
Obter 8 números e armazená-los em um vetor. Somar os valores do vetor, calcular e
mostrar a média.
• Pseudocódigo
Algoritmo soma
real soma, media, a[8]
início
soma = 0
para (i=0; i<8; i++ )
escreva (“Digite um número”)
leia a[i]
fim para
para (i=0; i<8; i++ )
soma += a[i]
fim para
media = soma / 8
escreva (“A Média é: “ + media)
fim
Observe que, como os valores ficaram armazenados no vetor, não necessitamos e não
devemos efetuar a leitura novamente; apenas processar os valores do vetor.
• Java
Neste exemplo, estamos utilizando a classe Scanner para facilitar a digitação, mas poderíamos
utilizar o JOptionPane.showInputDialog para inserir os valores.
12
Exemplo 4
Elabore um algoritmo que leia os salários de 10 trabalhadores de uma empresa e os
armazene dentro de um vetor. Depois, em ciclos independentes:
– Calcule a média desses salários;
– Determine o maior dos salários desta empresa;
– Conte os salários menores de R$850,00.
• Pseudocódigo
Algoritmo Empresa
real sal[10], soma=0, media, maior
inteiro i,quant = 0
início
//Preenchimento do vetor
para (i=0; i<10 ; i++)
escreva (“Digite o salário do trabalhador ” + (i+1) + “:”)
leia sal[i]
fim para
//Somando valores armazenados no vetor
para (i=0; i<10 ; i++)
soma += sal[i]
fim para
//Cálculo da média
media = soma / 10
escreva (“A média dos salários é R$” + media)
//Encontrando o maior valor
maior=sal[0]
para (i=0; i<10 ; i++)
se (sal[i] > maior)
= sal[i]
fim se
fim para
escreva (“O maior salário é R$” + maior)
//Quantidade de salários menores que R$850,00
para (i=0; i<10 ; i++)
se (sal[i] < 850)
quant++
fim se
fim para
escreva (“Quant. de salários < R$850: ” + quant)
fim
13
Unidade: Conceitos de Vetores e Matrizes
• Java
Exemplo 5
Faça um algoritmo que receba a quantidade de peças vendidas por vendedor e armazene
essas quantidades em um vetor.
Receba também o preço da peça vendida de cada vendedor e armazene esses preços em
outro vetor.
Existem apenas dez vendedores e cada vendedor pode vender apenas um tipo de peça, isto
é, para cada vendedor existe apenas um preço.
Calcule e mostre a quantidade total de peças vendidas por todos os vendedores e para cada
vendedor calcule e mostre o valor total da venda, isto é, a quantidade de peças e o preço da peça.
14
• Pseudocódigo
Algoritmo vendedor
inteiro qtde[10], i
real preco[10], tot_geral, tot_vend
inicio
tot_geral = 0
para (i=0;i<10;i++)
escreva (“Entre com a quantidade vendida pelo vendedor” + (i+1))
leia qtde[i]
escreva (“Digite o preço do produto”)
leia preco[i]
fim para
para (i=0;i<10;i++)
tot_vend = qtde[i]*preco[i]
escreva (“O total vendido pelo vendedor” + (i+1) + “ é ” + tot_vend)
fim para
para (i=0;i<10;i++)
tot_geral = tot_geral + qtde[i]
fim para
escreva (“O total vendido por todos os vendedores é” + tot_geral)
fim
• Java
15
Unidade: Conceitos de Vetores e Matrizes
Processamento em Vetor
Exemplo 7
Exemplo de processamento de uma matriz em ordem de colunas.
inicialização geral
Exemplo 8
Exemplo de processamento de uma única linha k.
16
Exemplo 9
Exemplo de processamento de uma única coluna k
Exemplo 10
Exemplo da utilização de uma matriz.
Vamos supor que a matriz A contenha:
real soma
para ( i = 0; i < 3; i++ )
soma=0
para ( j = 0; j < 3; j++ )
soma += a[i][j]
fim para
escreva “Média do aluno “ + (i+1) + “ é ” + soma/3
fim para
Esta lógica calcula e visualiza a média das notas de cada aluno (cada linha é um aluno).
17
Unidade: Conceitos de Vetores e Matrizes
real soma
para ( j = 0; j < 3; j++ )
soma = 0
para ( i = 0; i < 3; i++ )
soma += a[i][j]
fim para
escreva “Média da disc. “ + (j+1) + “ é ” + soma/3
fim para
Exemplo 11
Vamos agora para um exemplo completo.
Leia uma matriz 5 x 4. Leia também um valor x. O programa deverá fazer uma busca
desse valor na matriz e, ao final, escrever a localização (linha e coluna) ou uma mensagem
de “não encontrado”.
• Pseudocódigo
Algoritmo Matriz5x4
inteiro matriz[5][4]
inteiro busca, i, j, i1, j1
logico achou
início
para(i=0; i<5; i++)
para(j=0; j<4; j++)
escreva(“Posição [“ + i + “][“ + j + “]”)
leia(matriz[i][j])
fim para
fim para
achou = falso
i1=0
j1=0
escreva(“Qual o valor a buscar?”)
leia(busca)
para(i=0; i<5; i++)
para(j=0; j<4; j++)
se(matriz[i][j] == busca)
achou=verdadeiro
i1 = i
j1 = j
fim se
fim para
fim para
se(achou == falso)
escreva(“Elemento não encontrado”)
senão
escreva(“Encontrado na posição “ + i1 + “,” + j1)
fim se
fim
18
• Java
import javax.swing.JOptionPane;
public Class Matriz01{
public static void main(String args[]){
int[][] matriz = new int[5][4];
int busca, i, j, i1=0, j=0;
boolean achou = false;
for(i=0; i<5;i++){
for(j=0; j<4;j++){
matriz[i][j]= Integer.parseInt(JOptionPane.
showInputDialog (“Posição [“+i+ “][“+j+”]”));
}
}
Busca= Integer.parseInt(JOptionPane.
showInputDialog(“Qual o valor a buscar?”));
for(i=0; i<5;i++){
for(j=0; j<4;j++){
if(matriz[i][j]==busca){
achou= true;
i1=i;
j1=j;
}
}
}
if (achou==false){
JOptionPane.showMessageDialog(null, “Elemento
não encontrado”);
}
else{
JOptionPane.showMessageDialog(null, “Elemento
encontrado na posição ”+i1+”, “+j1);
}
}
}
19
Unidade: Conceitos de Vetores e Matrizes
Exemplo 12
Faça um programa que leia uma matriz 5x5 de números inteiros e em seguida calcule e
imprima a soma de sua diagonal principal.
diagonal principal i = j
diagonal secundária i + j = n + 1
• Pseudocódigo
Algoritmo Matriz5x5
inteiro matriz[5][5]
inteiro i, j, soma
início
para(i=0; i<5; i++)
para(j=0; j<5; j++)
escreva(“Posição [“ + i + “][“ + j + “]”)
leia(matriz[i][j])
fim para
fim para
soma = 0
para(i=0; i<5; i++)
soma += matriz[i][i]
fim para
escreva(“A soma deu ” + soma)
fim
20
Exemplo 13
Ler uma matriz de Strings de 5 x 10 e em seguida imprima a matriz na tela.
• Pseudocódigo
21
Unidade: Conceitos de Vetores e Matrizes
Material Complementar
Livros:
WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Ltc-Livros Técnicos
e Científicos, 1999.
22
Referências
DEITEL, H. M. Java: Como Programar. 6.ed. Porto Alegre: Bookman, 2003. (e-book)
23
Unidade: Conceitos de Vetores e Matrizes
Anotações
24