Você está na página 1de 41

Tec.

de Desenvolvimento
de Algoritmos
R E V I S Ã O V E TO R E S
E X E M P LOS E E X E RC Í C I OS M AT R I Z E S

Professores: Alcides/Ana/Cristiane/Ledón/Marco 2021


Na aula anterior...
Uma 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.

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.
Na aula anterior...
Um arranjo é um grupo/conjunto de elementos ou itens que
respondem a um mesmo nome e que podem ser acessados
segundo a posição (índice) que ocupam dentro do arranjo.

Um arranjo poderá ter várias dimensões.


 Vetores são arranjos unidimensionais (um índice).
 Matrizes são arranjos bidimensionais (dois ou mais índices).
2 30 21
30 2 10
10 15 25
vetor 3 31 4

matriz
Na aula anterior...
Declaração de um vetor c com 4 elementos inteiros, em pseudocódigo:
inteiro c [4]
Conteúdo
c[0] 10 c[0]=10
Nome do vetor
c[1] 3 c[1]= 3
c[2] 13 c[2]=c[0]+c[1]
c[3] 30 c[3]=2*15
Índice do elemento no vetor c (tem
de ser obrigatoriamente inteiro).
O valor do índice não deve ser
confundido com o conteúdo da E se fosse um vetor com 1000
posição do vetor. elementos???
Na aula anterior...
Vetores: atribuição de valores

A utilização de um vetor está associado a uma estrutura de


repetição.
Com isso podemos facilmente percorrer um vetor para
consultas ou atualizações.
Exercícios de revisão
1 Faça um algoritmo que receba o RGM e as avaliações A1 e A2 de 10 alunos, calcule e
exiba na tela o RGM, a nota final (A1 + A2) e a situação do aluno, seguindo o critério:
 Nota final >= 6.0 = APROVADO
 Nota final < 6.0 = Avaliação Final
Exercícios de revisão
1
Exercícios de revisão
2 Faça um algoritmo que leia a temperatura média de cada mês do ano e armazene em
um vetor. Calcule e mostre a temperatura média anual e o mês que registrou a maior
temperatura.
Exercícios de revisão
2
Exercícios de revisão
3 Faça um algoritmo que receba o nome, salário e tempo de empresa de cinco
funcionários, calcule e mostre na tela um relatório com o nome e o salário
reajustado, conforme os critérios:
Salário atual Tempo de serviço Percentual de reajuste
Até R$ 1000,00 Igual ou inferior a 2 anos 8%
Até R$ 1000,00 Superior a 2 anos 5%
Acima de R$ 1000,00 Igual ou inferior a 5 anos 3%
Acima de R$ 1000,00 Superior a 5 anos Não tem aumento
Exercícios de revisão
3
Parâmetros por valor e por referência
Parâmetro por valor: um valor será enviado para o método. O valor poderá ser
alterado, mas não afetará a variável utilizada na chamada.

Parâmetro por referência: neste caso, será enviada para o método uma referência (o
endereço) da variável utilizada na chamada. Se o método alterar o valor deste
parâmetro, o valor da variável utilizada na chamada também será modificado.

Cada linguagem de programação estabelece como considerará os parâmetros por


valor e por referência. Exemplo: Visual Basic utiliza ByVal e ByRef.
Em Java e outras linguagens de programação, os vetores e matrizes são considerados
sempre como parâmetros por referência.
Vetor como parâmetro para métodos
Um método que recebe um parâmetro que é um vetor
Matriz
São muitas as situações do dia a dia onde utilizamos matrizes...

Jan Fev Mar


Depto. 1 34 56 65
Depto. 2 3.21 1.34 56
Depto. 3 35.3 56 47
Depto. 4 3.22 1.35 38
Matriz
Processamento de uma matriz em ordem de linhas
j=0 j=1 j=2 ... j=n-1
i=0 a00 a01 a02 ... a0 n-1
i=1 a10 a11 a12 ... a1 n-1
i=2 a20 a21 a22 ... a2 n-1
... ... ... ... ... ...
i=m-1 am-1 0 am-1 1 am-1 2 ... am-1 n-1
Processamento de uma matriz em ordem de colunas
j=0 j=1 j=2 ... j=n-1
i=0 a00 a01 a02 ... a0 n-1
i=1 a10 a11 a12 ... a1 n-1
i=2 a20 a21 a22 ... a2 n-1
... ... ... ... ... ...
i=m-1 am-1 0 am-1 1 am-1 2 ... am-1 n-1
Processamento de uma única linha k
j=0 j=1 j=2 ... j=n-1
i=0 a00 a01 a02 ... a0 n-1
i=1 a10 a11 a12 ... a1 n-1
... ... ... ... ... ...
i=k ak0 ak1 ak2 ak3 ak4
i=m-1 am-1 0 am-1 1 am-1 2 ... am-1 n-1
Processamento de uma única coluna k
j=0 j=1 j=k ... j=n-1
i=0 a00 a01 a0k ... a0 n-1
i=1 a10 a11 a1k ... a1 n-1
i=2 a20 a21 a2k ... a2 n-1
... ... ... ... ... ...
i=m-1 am-1 0 am-1 1 am-1 k ... am-1 n-1
Matriz a com notas de alunos
Matriz a com as notas de alunos
Considere uma matriz que exibe uma lista de alunos e suas respectivas notas por
disciplinas:
disciplina 0 disciplina 1 disciplina 2
aluno 0 a00 a01 a02
aluno 1 a10 a11 a12
aluno 2 a20 a21 a22

Vamos fazer um algoritmo que possa calcular e exibir a média


de cada aluno!
Matriz a com notas de alunos
Matriz a com as notas de alunos
Considere uma matriz que exibe uma lista de alunos e suas respectivas notas por
disciplinas:

Observe que esta lógica calcula e visualiza a média das notas de cada aluno (cada
linha é um aluno)
Processamento da diagonal principal (matriz quadrada)
a00 a01 a02 ... a0 n-1
a10 a11 a12 ... a1 n-1
a20 a21 a22 ... a2 n-1
... ... ... ... ...
am-1 0 am-1 1 am-1 2 ... am-1 n-1
Exemplos
1 Faça um algoritmo que solicite ao usuários os nomes de 6 pessoas e armazene os
dados em matriz 2 x 3 e em seguida mostre os nomes armazenados na matriz.
0 1 2
0
1
Exemplos
1
Exemplos
2 Faça um algoritmo que solicite ao usuário 6 números e armazene em uma matriz
3x2. Calcule e mostre a média dos valores armazenados e quantos estão acima
dessa média
0 1
0

2
Exemplos
2
Exemplos
3 Completando o algoritmo anterior….
Calcule e mostre o total por linha dos valores armazenados
0 1
0

2
Exemplos
3
Exemplos
4 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”.
Exemplos
4
Métodos poderão processar matrizes e vetores
disciplinas [ ]
TDA Física Álgebra L. LDA

Ana 9.5 9.6 9.7 9.8

alunos [ ] Pedro 10.0 6.5 7.5 6.0


Amilton 9.5 9.6 9.7 9.8
Luiz 10.0 6.6 7.6 6.1
Patrícia 9.5 9.6 9.7 9.8

notas [ ][ ]

Os parâmetros de um método e o valor retornado poderiam ser vetores ou matrizes.


Um exemplo gráfico: um método que soma duas matrizes
a [][]

b [][] somarMatrizes c [][]

m, n
Um método que soma duas matrizes
tipo retornado
parâmetros de entrada

retorno
Exemplo
Um método com parâmetros que recebe os dados dos funcionários e visualiza a média
de salário anual de cada trabalhador.
meses do ano
0 1 2 3 ... 11
vetor nomes [ ] Ana 0 1200 1350.50 989.00 1500 ... 2020
com os nomes Pedro 1 4000 4500 4580.85 5000 ... 6000
dos m Amilton 2 ... ... ... ... ...
trabalhadores Luiz ... 2000 1200 6000.55 7000 ... 7200
Patrícia m-1 3000 3000 3000 4000 ... 4000
matriz de salarios [ ][ ]
com os salários nos 12 meses do ano
Exemplo
Um método com parâmetros que recebe os dados dos funcionários e visualiza a média
de salário anual de cada trabalhador.

parâmetros de entrada,
enviados para este método
Exemplo (a matriz a[][] é um parâmetro por referência)
Este método modifica e retornará a matriz quadrada modificada (em algoritmos, Java e
outras linguagens vetores e matrizes são passados por referência).
parâmetro de
parâmetro de entrada
tipo retornado entrada / saída
Exercícios práticos
Exercícios
1- Faça um algoritmo que receba as vendas semanais (de um mês) de 6 vendedores de
uma loja e armazene essas vendas em uma matriz. Calcule e imprima:
 Total de vendas do mês (4 semanas) de cada vendedor;
 Total de vendas de cada semana (todos os vendedores juntos);
 Total de vendas do mês.
Exercícios
2- Um algoritmo armazena os dados de valores de vendas (em R$) de k modelos de
veículos em cada uma das h concessionárias da empresa. Também, conhecemos os
nomes dos modelos vendidos por esta empresa e os nomes das concessionárias.

real vendas[][]
inteiro k, h
caractere modelo[], concessionaria[]
Exercícios
2- Figura para compreender o exercício
concessionaria [ ]
Leste Penha Tatuapé Anália

0 Uno 80500 56700 15600 12000


1 Ka 30800 ... ... ...
modelo [ ] .
Fiesta ... ... ... ...
.
. A4 ... ... ... ...
k-1 Golf 34000 0 67000 32000
0 1 ... h-1
vendas [ ][ ]
Exercícios
2- Continuação: Faça:
1. Método para efetuar a leitura de dados.
2. Elabore um método que retorne o total em R$ vendido pela empresa (considerando
todos os modelos e concessionárias).
3. Elabore um método que retorne o total (em R$) vendido de cada modelo (total do 1º
modelo, do 2º modelo etc.). Observe que este método retorna k valores.
4. Elabore um método que visualize um relatório com total de vendas de cada
concessionária. Visualize, para cada concessionária, o nome da concessionária e seu
total.
5. Elabore um método que determine e retorne o nome do modelo que maior venda
teve (considerando o total somando todas as concessionárias).
6. Elabore o método principal: chamada a cada método.
Até a próxima pessoal!

marco.sanches@cruzeirodosul.edu.br

Você também pode gostar