Alg04 - Vetores e Matrizes.pdf

SilvanoOliveira1 145 views 66 slides Mar 25, 2023
Slide 1
Slide 1 of 66
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66

About This Presentation

Aula de Vetores


Slide Content

ProfSilvano Oliveira
Introdução aos
Algoritmos
(VETORES E MATRIZES)
[email protected]

ProfSilvano Oliveira
Variável
•Analogia:umacaixa,naqualvocêpodedaronomequelhe
acharconveniente,eguardaroconteúdoquedesejar
•Possuiumtipo(cadeia,lógico,inteirooureal)
•Ovalordentroda“caixa”quepodeseralteradodeacordo
comaexecuçãodoalgoritmo
INTRODUÇÃO

ProfSilvano Oliveira
•Agoraimaginecomoficarianadeclaraçãodevariáveis,
declarandoumaauma,as50variáveisparaonome, depoisas
variáveisparaasnotasdecadaaluno...
Ex.:
realnota1, nota2, nota3, nota4
cadeiaaluno1, aluno2, aluno3, aluno4, ... , aluno50
INTRODUÇÃO

ProfSilvano Oliveira
•Oproblemacomeçaquandoseprecisadeclararváriasvariáveis
paraatenderaumfim.
PROBLEMA:Receberonomeeas4notasde50alunos deuma
escola,edepois listar o nome de cada aluno junto com sua média.
...
...
INTRODUÇÃO

ProfSilvano Oliveira
•Emcasoscomoessequeéútilautilizaçãodaestrutura
dedadosconhecidacomovetor
•Umvetoréumaespéciedecaixacomváriasdivisórias
paraarmazenarcoisas(dados)
•Éumavariávelquepodearmazenarváriosvalores
VETORES

ProfSilvano Oliveira
media
nomes
VETORES
10.0 4.0 8.0 2.6
PauloJoséMariaRicardo

ProfSilvano Oliveira
•Osvetoressãodefinidospelotipodedadosque elesdevem
armazenareaquantidadede posições
•Exemplo:
•Vetorde8posiçõesparaarmazenarnúmerosreais
•Vetorde40posiçõesparaarmazenarcadeia de strings
•Osvetoressãoestruturashomogêneas.
•Ex:umvetordeinteirossóarmazenadadosdotipo inteiro
VETORES

ProfSilvano Oliveira
Declaração:
Exemplo:
inteirovetor[5]
caractervetor2[200]
//vetores inicializados
realvetor3[2] = {1.4,2.5}
logicovetor4[4] = {verdadeiro,falso,verdadeiro,verdadeiro}
cadeiavetor5[] = {"Questão","Fundamental"}
<tipo_variável>vetor[nº de elementos][={elementos}]
Sintaxe no PortugolStudio

ProfSilvano Oliveira
•Preenchendoeacessandoumvetor
•Asposiçõesdosvetoressãoidentificadasporíndices
•Umvetorde10posições,porexemplopodeser
representadodaseguinteforma:
VETORES

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
nome_alunos
media_alunos
1 2 3 4 ...
1 2 3 4 ...
algoritmo“exemplo_vetores”
var
nome_alunos:vetor[1..50]decaractere
media_alunos:vetor[1..50]dereal
inicio
nome_alunos[1]“Pedro”
leia(nome_alunos[2])
nome_alunos[3]:=“Joana”
media_alunos[1]:=8.5

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
nome_alunosPedro
media_alunos
1 2 3 4 ...
1 2 3 4 ...
algoritmo“exemplo_vetores”
var
nome_alunos:vetor[1..50]decaractere
media_alunos:vetor[1..50]dereal
inicio
nome_alunos[1]“Pedro”
leia(nome_alunos[2])
nome_alunos[3]:=“Joana”
media_alunos[1]:=8.5

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
nome_alunosPedro Maria
media_alunos
1 2 3 4 ...
1 2 3 4 ...
algoritmo“exemplo_vetores”
var
nome_alunos:vetor[1..50]decaractere
media_alunos:vetor[1..50]dereal
inicio
nome_alunos[1]“Pedro”
leia(nome_alunos[2])
nome_alunos[3]:=“Joana”
media_alunos[1]:=8.5

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
nome_alunosPedro Maria Joana
media_alunos
1 2 3 4 ...
1 2 3 4 ...
algoritmo“exemplo_vetores”
var
nome_alunos:vetor[1..50]decaractere
media_alunos:vetor[1..50]dereal
inicio
nome_alunos[1]“Pedro”
leia(nome_alunos[2])
nome_alunos[3]:=“Joana”
media_alunos[1]:=8.5

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
nome_alunosPedro Maria Joana
media_alunos8.5
1 2 3 4 ...
1 2 3 4 ...
algoritmo“exemplo_vetores”
var
nome_alunos:vetor[1..50]decaractere
media_alunos:vetor[1..50]dereal
inicio
nome_alunos[1]“Pedro”
leia(nome_alunos[2])
nome_alunos[3]:=“Joana”
media_alunos[1]:=8.5

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumvetor
Podemosutilizarumlaçoderepetiçãoparafacilitaro
preenchimentodosdadosemvetores
Exemplo:
algoritmo“exemplo_vetores”
var
numeros:vetor[1..10]deinteiro
i:inteiro
inicio
paraide1ate10faca
escreva(“Digiteumvalorparaseradicionadoaovetor”)
leia(numeros[i])
fimpara
fimpara

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumvetor
algoritmo“exemplo_vetores”
var
numeros:vetor[1..5]deinteiro
inicio
escreva(“Digiteumvalorparaaposição1dovetor:”)
leia(numeros[1])
escreva(“Digiteumvalorparaaposição2dovetor:”)
leia(numeros[2])
escreva(“Digiteumvalorparaaposição3dovetor:”)
leia(numeros[3])
escreva(“Digiteumvalorparaaposição4dovetor:”)
leia(numeros[4])
escreva(“Digiteumvalorparaaposição5dovetor:”)
leia(numeros[5])
fimpara

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumvetor
Parafacilitar,podemosutilizarumlaçoderepetição!
Exemplo:
algoritmo“exemplo_vetores”
var
numeros:vetor[1..5]deinteiro
i:inteiro
inicio
paraide1ate5faca
escreva(“Digiteumvalorparaaposição”,i,“dovetor:”)
leia(numeros[i])
fimpara
fimpara

ProfSilvano Oliveira
SINTAXENOVISUALG
Exibindooconteúdodeumvetor:
...
escreva(“Ovalorqueestánaposição1é:”,numeros[1])
escreva(“Ovalorqueestánaposição2é:”,numeros[2])
escreva(“Ovalorqueestánaposição3é:”,numeros[3])
escreva(“Ovalorqueestánaposição4é:”,numeros[4])
escreva(“Ovalorqueestánaposição5é:”,numeros[5])
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Exibindooconteúdodeumvetor
Oupodemosutilizarumlaçoderepetiçãoparafacilitar
aexibiçãodosvaloresdeumvetor
Exemplo:
paraide1ate5faca
escreva(“Ovalorqueestánaposição”,i,“é:”,numeros[i])
fimpara

ProfSilvano Oliveira
EXEMPLO1
Criarumalgoritmoqueleia10númerospelo
tecladoeexibaosnúmerosnaordemcorretaque
osnúmerosforamdigitados.

ProfSilvano Oliveira
EXEMPLO1
Saída:

ProfSilvano Oliveira
EXEMPLO2
Criarumalgoritmoqueleia10númerospelo
tecladoeexibaosnúmerosnaordeminversada
queosnúmerosforamdigitados.

ProfSilvano Oliveira
EXEMPLO2
Saída:

ProfSilvano Oliveira
•Escrevaumalgoritmoqueleiaumvetorcom10
posiçõesdenúmeros inteiros.Emseguida,
receba umnovovalordousuárioeverifiquese
estevalor seencontranovetor.
•Aproveite a estrutura anterior e mostre qual o
maior valor dentro do vetor.
Exemplo

ProfSilvano Oliveira
EXEMPLO3

ProfSilvano Oliveira
EXEMPLO3(UM
Asestruturasde
PEQUENOPARÊNTESES)
repetição(tantopara,enquantoe
repita)permitemousodocomandoINTERROMPA
Essecomandocausaasaídaimediatadolaçode
repetição
Aoencontraressecomando,
oalgoritmopassaa
execuçãoparaopróximo
comandoapósolaço.

ProfSilvano Oliveira
EXERCÍCIOS
Crie umalgoritmoqueleiaumvetorde 10 númerosinteiros.Em
seguida,calculee escreva o somatóriodosvaloresdeste vetor.
1.
Escrevaumalgoritmoque leiaumvetorcom15posiçõesde
númerosinteiros.Emseguida,escreva somenteosnúmeros
positivosquese encontramno vetor.
2.
Escrevaumalgoritmoque leiaumvetorcom8 posiçõesde
númerosinteiros.Emseguida,leiaumnovo valordo usuárioe
verifique se valorse encontrano vetor.Se estiver,informea
posição desseelementonovetor.Casoo elementonãoesteja no
vetor,apresenteuma mensageminformando“Onúmeronãose
encontra no vetor”.
3.

ProfSilvano Oliveira
EXERCÍCIOS
5. Escrevaumalgoritmoque leiadoisvetoresde 10 posiçõese faça
asomadoselementosde mesmoíndice,colocandoo resultadoem
umterceirovetor.Mostre o vetor
Exemplo:
resultante.
7 4 915202 1 4 030
vetor1
1 8 3 7149 1 81116
vetor2
vetorResult
6. Crie umalgoritmoqueleiaumvetorde 20 posiçõese informe:
a) Quantosnúmerosparesexistemnovetor
b) Quantosnúmerosímparesexistemnovetor
c) Quantosnúmerosmaioresdoque50
d) Quantosnúmerosmenoresdoque7
ado8 12 12 22 34 11 2 12 11 46

ProfSilvano Oliveira
MATRIZES
Oqueéumamatriz?
Umaestruturadedadosquecontémváriasvariáveisdo
mesmotipo
Qualadiferençadevetoresparamatrizes?
Vetoressão,naverdade,matrizesdeumaúnicadimensão:
9.01.35.57.9GAC404
Vetores
1 3 4 6
a maria jota
Matrizes
1 3 M J K 1.1 7.5 9.2 8.8
6 12 L Z H

ProfSilvano Oliveira
MATRIZES
Asmatrizessão,comumentereferenciadasatravés
suasdimensões(quantidadedelinhasecolunas)
Anotaçãocomumé:MxN,onde
Méadimensãovertical(quantidadedelinhas)
Nédimensãohorizontal(quantidadedecolunas)
Exemplo:
de
3x3 3x2 2x3 4x1 1x3
Vetores:a
quantidadedelinhas
ésempre1!

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3Aslinhas
variamde 1
até3
Ascolunas
variamde 1
até2

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3
Paraacessaresse
elemento,devemos
observarqual
cruzamentolinhax
colunadamatrizele
representa
1,1
Linha 1
Coluna1

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3
1,1 1,2
Linha 1
Coluna2

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3
Linha 2
Coluna1
1,1 1,2
2,1

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3
Linha 2
Coluna2
1,1 1,2
2,1 2,2

ProfSilvano Oliveira
MATRIZES
Notação
Comoreferenciarumelementoespecíficodamatriz?
Exemplo:Matriz3x2(trêslinhaseduascolunas)
1 2
1
2
3
Linha 3
Coluna1
Linha 3
Coluna2
1,1 1,2
2,1 2,2
3,1 3,2

ProfSilvano Oliveira
SINTAXENOVISUALG
Declaração:
Onde:
lielfrepresentam,respectivamente
inicial efinaldaslinhase
oíndice
ciecfrepresentam,respectivamenteoíndice
inicial efinaldascolunas
<nome_variavel>:vetor[li..lf,ci..cf]de<tipo>

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
Paradeclararumamatriz3x2deinteiro
Colunas:o índicedas
colunasvariade 1 até 2
Linhas:o índicedas
linhasvariade 1 até 3
algoritmo“exemplo_matriz”
var
exMatriz:vetor[1..3,1..2]deinteiro
inicio
...

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoeacessandoumamatriz
Asposiçõesdasmatrizessãoidentificadospelos
índicesdaslinhasecolunas
Atribuição
<nome_variavel>[<linha>,<coluna>]<valor>
<nome_variavel>[<linha>,<coluna>]:=<valor>
leia(<nome_variavel>[<linha>,<coluna>])

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
1 2
1
2
3
exMatriz
algoritmo“exemplo_matriz”
var
exMatriz:vetor[1..3,1..2]deinteiro
inicio
exMatriz[1,1]10
leia(exMatriz[1,2])
exMatriz[3,1]:=4
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
1 2
1
2
3
exMatriz
10
algoritmo“exemplo_matriz”
var
exMatriz:vetor[1..3,1..2]deinteiro
inicio
exMatriz[1,1]10
leia(exMatriz[1,2])
exMatriz[3,1]:=4
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
1 2
1
2
3
exMatriz
10 7
algoritmo“exemplo_matriz”
var
exMatriz:vetor[1..3,1..2]deinteiro
inicio
exMatriz[1,1]10
leia(exMatriz[1,2])
exMatriz[3,1]:=4
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Exemplo:
1 2
1
2
3
exMatriz
10 7
4
algoritmo“exemplo_matriz”
var
exMatriz:vetor[1..3,1..2]deinteiro
inicio
exMatriz[1,1]10
leia(exMatriz[1,2])
exMatriz[3,1]:=4
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Sequisermosatribuirvaloresatodasasposiçõesda
matriz,podemosfazer:
algoritmo“preencher_matrizes”
var
numeros:vetor[1..3,1..2]deinteiro
i:inteiro
inicio
paraide1ate3faca//fazerolaçoparaaslinhas
escreva(“Digiteovalorparaaposicao”,i,“,1”:)
leia(numeros[i,1])
escreva(“Digiteovalorparaaposicao”,i,“,2”:)
leia(numeros[i,2])
fimpara
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Sequisermosatribuirvaloresatodasasposiçõesda
matriz,podemosfazer:

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Entretanto,àmedidaqueaquantidadedeelementosda
matrizaumenta,ficacomplicadofazermos
manualmenteparatodasasposições.
Omelhorcaminhoéutilizarlaçosderepetição!

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Podemoscriarumlaçoderepetiçãoparavariarpelas
linhas,porexemplo:

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Epodemosaindaincluir umlaçoderepetiçãopara
variarpelascolunastambém,porexemplo:

ProfSilvano Oliveira
SINTAXENOVISUALG
Preenchendoumamatriz
Saída:

ProfSilvano Oliveira
SINTAXENOVISUALG
Exibindooconteúdodeumamatriz:
...
escreva(“Ovalorqueestánaposição[1,1]é:”,numeros[1,1])
escreva(“Ovalorqueestánaposição[1,2]é:”,numeros[1,2])
escreva(“Ovalorqueestánaposição[2,1]é:”,numeros[2,1])
escreva(“Ovalorqueestánaposição[2,2]é:”,numeros[2,2])
escreva(“Ovalorqueestánaposição[3,1]é:”,numeros[3,1])
escreva(“Ovalorqueestánaposição[3,2]é:”,numeros[3,2])
fimalgoritmo

ProfSilvano Oliveira
SINTAXENOVISUALG
Exibindooconteúdodeumamatriz
Oupodemosutilizarumlaçoderepetiçãoparafacilitar
aexibiçãodosvaloresdeumamatriz
Criandoumlaçoparapercorreraslinhas:
Exemplo:

ProfSilvano Oliveira
SINTAXENOVISUALG
Exibindooconteúdodeumamatriz
Epodemosaindaincluir umlaçoderepetiçãopara
variarpelascolunastambém,porexemplo:

ProfSilvano Oliveira
EXEMPLO1
Criarumalgoritmoqueleiaumamatriz3x3eexiba
amatrizpreenchida:

ProfSilvano Oliveira
EXEMPLO1
Saída:

ProfSilvano Oliveira
EXEMPLO2
Criarumalgoritmoqueleiaumamatrizes3x3.Em
seguida,exibaasom
daslinhas.Ex:
doselementosdecadauma
SomaLinha
SomaLinha
SomaLinha
1 =5
2 =8
3 =6
122
323
411

ProfSilvano Oliveira
EXEMPLO2
Resolução:

ProfSilvano Oliveira
EXEMPLO2
Saída:

ProfSilvano Oliveira
EXEMPLO3
Escrevaumalgoritmoqueleiaumamatriz4x3.Em
seguida,recebaumnovovalordousuárioe
verifiqueseestevalorseencontranamatriz.Caso
ovalorseencontrenamatriz,escrevaa
mensagem“Ovalorseencontranamatriz”.Caso
contrário,escrevaamensagem“OvalorNÃOse
encontranamatriz”.

ProfSilvano Oliveira
EXEMPLO3

ProfSilvano Oliveira
EXEMPLO3
Saída:

ProfSilvano Oliveira
EXERCÍCIOS
1.Crieumalgoritmoqueleiaumamatriz5x5.Emseguida,
contequantosnúmerosparesexistemnamatriz.
2. Crieumalgoritmoqueleiaumamatriz3x3ecalculeasoma
dosvalores dascolunasdamatriz.Ex:
SomaColuna
SomaColuna
SomaColuna
1 =
2 =
3 =
8
5
6
122
323
411

ProfSilvano Oliveira
EXERCÍCIOS
3.Crieumalgoritmoquecalculeamédiadoselementosde
umamatriz5x2.
4. Crieumalgoritmoinformequalomaiorequalomenor
elementoexistenteemumamatriz6x3.
5. Crieumalgoritmoqueleiaumamatriz3x3ecrieuma
segundamatrizqueinvertaaslinhasecolunasdaprimeira
matriz.Ex:
Matriz MatrizInvertida
147
258
369
123
456
789

ProfSilvano Oliveira
EXERCÍCIOS
6. Crieumalgoritmoqueleiaduasmatrizes2x5ecrieuma
terceira matriz também2x5 como valorda somados
elementosdemesmoíndice.Ex:
Matriz1+ Matriz2=Matriz3
36
85
118
99
211
24
53
77
44
19
12
32
41
55
12

ProfSilvano Oliveira
EXERCÍCIOS
7. Crieum algoritmo que calcule a somados valoresda
diagonal principal de uma matriz5x5.Vejaa diagonal
principaldamatrizdestacadanoexemploabaixo:
SOMA=10
12514
32423
41237
55249
12451

ProfSilvano Oliveira
EXERCÍCIOS
8.Crieumalgoritmoqueverifiqueseumamatrizétriangular
superior.Umamatrizétriangularsuperiorsetodosos
elementosabaixodadiagonalprincipalsãoiguaisa0.
12514
02423
00237
00049
00001

ProfSilvano Oliveira
EXERCÍCIOS
9. Crieumalgoritmoqueverifiqueseumamatrizétriangular
inferior.Umamatrizétriangularinferiorsetodosos
elementosabaixodadiagonalprincipalsãoiguaisa0.
10000
32000
41200
55240
12451
Tags