[Música] seja muito bem-vindo seja muito bem-vinda à nossa aula 11 da disciplina algoritmo e lógica de programação um Eu sou professor Roger dias e na aula passada nós estávamos falando sobre vetores Ou seja a maneira que eu tenho uma coleção de elementos do mesmo tipo unidimensional somente uma dimensão Então eu tenho uma variável que ela tem compartimentos podemos dizer assim cada compartimento tem um índice associado a ela e aí Nós aprendemos como que a gente lê como que a gente grava coisas lá dentro de cada compartimento ã na aula de hoje nós vamos estender o
conceito de Vetor para um vetor que tem várias linhas ou seja uma tabela imagine assim uma tabela que nós vamos chamar de Matriz tá então é um vetor bidimensional é uma estrutura homogênea só posso ter elementos do mesmo tipo lá dentro mas uma estrutura homogênea bidimensional que nós chamamos de matrizes por favor acompanhe o nosso slide aí para que você possa enxergar essa matriz um pouquinho melhor de novo veja ais a palavra arrei não serve só para vetor também serve para matrizes em literatur Talvez você encontre a rei Ok é o termo genérico aí em
inglês Olha que legal agora eu tenho uma tabelinha aqui ó eu tenho linhas e tenho colunas bidimensional isso daqui é uma matriz Então isso é uma matriz como que eu defino dentro do visual G uma matriz é muito parecido com o que a gente fazia com vetores lá dentro do var eu tô chamando de m tá a matriz pode ser o nome de variável que você quiser no vetor também mesmo assim eu defino ó é um vetor de de um até 3 nesse caso isso aqui são as linhas e de um até CCO isso aqui
são as [Música] colunas Veja essa Matriz aqui ó tem três linhas e cinco colunas então ele vai de um até três nas linhas e de um até cinco nas colunas D inteiro nesse caso aqui eu vou armazenar números inteiros se fosse real você colocaria real aqui e assim vai Ok essa é uma matriz então 3 por5 TR linhas por 5 colunas Ok E aí como que a gente faz então para trabalhar com as matrizes se no vetor eu fazia assim vetor da posição 1 agora nas matrizes eu faço por exemplo matriz da linha tal vírgula
coluna tal é assim que eu vou fazer o acesso aqui é a linha e aqui é a coluna então por exemplo e aqui eu ó fiz uma foto da memória tá imagine que eu quero ter essa Matriz aqui no meu programa aqui a linha 1 2 e 3 coluna 1 2 3 4 5 você vai lembrar do batalha naval Agora eu quero que a linha um coluna 1 temha o valor 1 bele Matriz 1 1 recebe 1 linha 1 coluna 1 Ah eu quero que o elemento 33 tenha o valor 13 tá aqui ó Matriz
33 recebe 13 Matriz 35 essa daqui ó último elemento linha 3 coluna 5 tá aqui ó Matriz linha 3 coluna 5 recebe o valor 15 Então essa Matriz aqui ó ela tá aqui especificada no programa e eu trouxe aqui ó os valores para você ver como realmente está só para não ter que ficar imprimindo na tela e eu trouxe o próprio print de lado do visual G do ambiente do visual g a matriz 35 tá com valor 15 a matriz 31 tá com valor 11 ó 3 1 3 1 esse cara tá com o valor
11 certinho a matriz 2 3 tá com valor 8 matriz 2 3 linha 2 coluna 3 tá com valor 8 perfeito então agora é muito parecido com o que a gente fez com os vetores só que nós vamos trabalhar linha e coluna linha e coluna Ok E aí você vai lembrar que em vetores eu falei assim agora que a gente tem uma variável com vários compartimentos nós vamos fazer o para para poder percorrer Basta fazer um para do do primeiro até o último e a gente percorre e quando é matriz Hum quando é matriz tem
um conceito importantíssimo agora que eh eu quero que você Preste bastante atenção que é um para dentro de outro para um para ele vai percorrer as linhas e o outro para de dentro ele vai percorrer as colunas e aí eu vou conseguir percorrer a minha Matriz toda eu fiz uma matriz Menorzinha aqui porque realmente é preciso que você Preste bastante atenção nisso daqui eu tenho um loop dentro de outro loop veja ten um loop interno e um Loop então preste atenção enquanto o loop interno de dentro ele não acaba o loop externo Não continua vou
repetir enquanto o LOP de dentro não acaba o loop de fora fica parado quando o loop de dentro acaba aí o loop de Fora roda de novo e aí o de dentro começa a rodar de novo e assim vai então vamos acompanhar com calma o que que esse para tá fazendo porque isso vai servir de base para vários algoritmos que você vai fazer aí dentro da vida real eu vou ter já que eu tenho um loop dentro de outro um para dentro de um para o primeiro para eu tô usando a variável i e o
outro para não posso usar o i de novo então eu tô usando o J tá bom conforme a gente conversou já sobre isso lá na aula aul de repetições então aqui eu tenho a variável i e a variável J Preste bastante atenção agora desfoca do celular aí dá um tempinho para você poder entender como que vai funcionar esse loop porque é meio complexo Então vamos lá o loop de fora ele vai de um até do então ele começa no valor um e o loop de dentro é de 1 até TR então ele começa no valor
1 também então a minha variável I no primeiro momento tá com valor um e o J também está com valor 1 aí o que que ele vai fazer ele escreve na na tela o m i j ou seja o M11 né i j tão com um então ele vai escrever na tela a matriz 1 1 ó a matriz um tá com o valor 1 então ele vai lá e escreve um na tela legal qual dos dois Loops que vai rodar o de dentro sempre o de dentro continua rodando o de fora fica parado até o
de dentro acabar então agora o J que é o l de dentro esse para aqui de dentro é o j ele vai para do o i continua parado com 1 e o J vai para 2 e agora ele vai escrever na tela a matriz 1 2 porque o J tá com 2 o i continua com 1 então a matriz 1 2 ele vai escrever na tela a matriz 1 2 é esse daqui ó linha 1 coluna 2 vai escrever o número 2 na tela perfeito aí o J vai para lembra o de loop de Fora
que é o i continua parado e o J vai para 3 escreve na tela a matriz 1 3 Matriz 13 tá com valor 3 então ele vai lá escreve o valor 3 tá aqui ó linha 1 coluna 3 perfeito agora o J vai para 4 Opa mas o J só podia ir até 3 então o loop de dentro Acabou ele volta então e faz o qu ó terminou esse loop de dentro ele vai pra próxima linha a próxima linha tem um escreva nada só para poder pular de linha então ele vai lá e pula de
linha perdão aí ele volta pro loop de Fora o i tava com valor 1 mas o i era até dois que ele ia então agora o I vai para 2 e olha que interessante começou um novo valor de I ele entra e recomeça o loop do J O J volta pro valor um de novo e recomeça o loop de dentro Então a cada vez que o loop de Fora roda o de dentro começa de novo então o J começa valendo 1 agora mas o i tá valendo 2 o J começa valendo 1 que é o
valor inicial do loop de dentro 1 e ele vai escrever na tela matriz 2 que o i vale 2 1 que o J tá valendo 1 de novo matriz 2 1 tá aqui ó Vale se ele vai lá e imprime o seis na tela matriz 2 1 2 coluna 1 loop de dentro Lembra agora é o loop de dentro que vai ter que rodar até o final vai para 2 então nós temos o i valendo 2 e o J valendo 2 Então agora ele vai escrever na tela matriz 2 2 a matriz 2 2 Vale
7 ele escreve 7 na tela agora o J vai para 3 o i continua valendo 2 o J agora Vale 3 então ele vai escrever a matriz 2 3 2 3 Vale 8 2 3 Vale oito ele vai lá e escreve oito na tela aí o J vai para 4 Ah mas o J só podia até três né o loop era até três terminou o loop do J que acontece cai fora do loop do J tem um comando aqui fora do loop do J que é Escreva nada ele pula de linha de novo pula de
linha de novo e aí ele volta pro lup doi o i agora vai para três Ah mas o loop de do I só podia ir até dois Beleza então aí ele encerra o loop de fora e cai fora e aí termina o programa mas imagine que o loop de Fora poderia ter até três 4 5 ele ia ficar repetindo o loop de dentro várias vezes Então isso é importantíssimo que você entenda quando eu tenho um loop externo e um outro loop interno isso não é só pro comando para pro enquanto também vale isso pro repita
também vale isso quando eu tenho um loop externo e um interno o loop Interno tem que ficar repetindo repetindo até ele acabar quando ele acaba aí ele cai pro loop externo E se o loop externo rodar de novo o de dentro vai começar a rodar tudo de novo Sempre é assim então esse é um algoritmo bastante utilizado com matrizes em que eu uso um loop externo para percorrer as linhas e um loop interno para percorrer as colunas e aí eu consigo mostrar todos os elementos da Matriz na nossa tela ok legal operações que a gente
pode fazer são comuns da gente fazer com matrizes por exemplo ah diagonal principal você vai lembrar lá do seu ensino médio né O que que é a diagonal principal tá vendo aqui eu tenho uma matriz aleatória aqui com números aleatórios essa aqui que tá em cinza é a diagonal principal da Matriz Digamos que eu queira fazer um programa que eu quero mostrar eu quero percorrer a matriz Mas eu só quero mostrar o elemento da Diagonal principal os outros eu não quero mostrar na tela como que eu poderia fazer isso em termos de algoritmo Vamos pensar
o que que esse elemento tem em comum com esse que tem em comum com esse o que caracteriza uma diagonal principal sem ser assim ah eu tô vendo que é essa daqui não em termos de linhas e colunas o que caracteriza uma diagonal principal exatamente o elemento da Diagonal principal ele sempre está na linha e coluna igual Então esse aqui é linha um coluna um esse aqui é linha 2 coluna 2 e esse aqui é linha 3 coluna 3 é isso que identifica uma diagonal principal é quando o índice da linha é o mesmo do
índice da cola Então olha que interessante Criei um vetor 3 por3 tá aqui ó de um até 3 de um até TR vetor não uma matriz né de um até três de um até três de inteiros joguei os valores aqui dentro tá esses valores 7 - 6 9 12 1 z0 Estão todos aqui mais importante fiz um loop de fora de um até TRS e um loop de dentro de um até três legal porque eu tenho três linhas e três colunas Mas ó Olha que legal quando o I for igual ao J se o I
for igual ao J que que é isso diagonal principal lembra diagonal principal a linha coluna bate e o i tá representando a linha e o J tá representando a coluna então quando o I for igual ao J eu vou lá e mostro na tela o i j então de novo o i vai valer 1 e o J vai começar com o valor 1 e é igual a j é Opa então eu vou mostrar o elemento 1 na tela ele vai pegar o 7 que é o elemento 1 e mostrar na tela aí o J vai
valer 2 agora loop de dentro o i é igual J não então ignora o J vai valer 3 o i é igual J não ignora o i vai valer 4 agora desculpa J né tô falando J Opa mas o J só pode ir até três então terminou o loop de dentro terminou o loop de dentro volta pro loop de Fora o i era 1 agora vai valer 2 e recomeça o J de novo loop de dentro começa a rodar de novo então o J Vale 1 o elemento 2 1 não é diagonal principal ignora o
J vai para 2 2 2 ó lá o i é igual J Então mostra na na tela a matriz 2 2 matriz 2 2 Vale 1 ele vai lá e mostra na tela o 1 ó lá faz parte da Diagonal principal aí o J vai para 3 o elemento 2 3 2 é diferente de 3 ignora vai pro 4 Opa 4 não pode porque era até TR o J então terminou o loop de dentro volta pro loop de Fora o i agora vai valer 3 lembra o i vai de 1 até 3 o J de
novo loop de dentro com um Então veja para cada número I ele percorre todos os J para cada I todos os j e agora o i Vale 3 e nós vamos percorrer de novo todos os j o J valendo 1 3 e 1 não é igual ignora J vai valer 2 3 e 2 não são iguais ignora J Vale 3 o i Vale 3 Opa o i é igual a j se o i iG J Então escreve na tela ele escreve a matriz 3 3 na tela 7 ele vai lá e escreve o 7 que
é esse elemento aqui aí o J Vale 4 4ro não pode porque o J era até três então ele cai fora do loop de dentro cai fora do loop de dentro volta pro loop de Fora o I vai para quatro agora mas não pode porque o i era até três então acabou o loop de fora também ele cai fora de tudo vai pra próxima linha que é o fim do algoritmo já E aí terminou o nosso algoritmo mostrando na tela então o s o um e o s que são os elementos da Diagonal principal Ok
então essa foi a aula sobre matrizes e o mais importante é como que eu acesso os elementos de uma matriz utilizando comandos de edição então sempre lembrando um loop externo o outro loop interno para cada interação do loop externo O interno roda aí o loop externo roda mais uma vez roda tudo de novo de dentro e assim vai fazendo até que os dois Loops se encerrem tomaro que você tenha gostado pratique bastante ã vetores e matrizes porque são utilizados bastante na vida real e eu vejo você na próxima aula grande abraço [Música]