Baixe o app para aproveitar ainda mais
Prévia do material em texto
105 M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Capítulo 7 Algoritmos – matrizes É muito comum o uso de matrizes em programação e atividades cotidianas. Matrizes são tabelas compostas de linhas e colunas (como uma planilha eletrônica, por exemplo). A diferença de matriz para vetor é que ela precisa de dois índices, como coordenadas, para acessarmos uma “casa”. Por isso são chamadas de array bidimensional. Neste capítulo, vamos entender o conceito de matriz e suas aplica- ções em sistemas computacionais e no nosso projeto de software. Além disso, vamos fazer uso da estrutura de repetição “for” aninha- da, ou seja, dois laços de repetição (um dentro do outro). Essa estrutura aninhada é muito útil para “varrer” a matriz e efetuar operações básicas de manipulação de dados, por exemplo. 106 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo .Para finalizar, faremos alguns exercícios para compreensão dos conceitos. 1 Conceito de matriz Matriz é um conceito matemático da metade do século XIX que trabalha com colunas e linhas. Basicamente, representa uma tabela, conforme você pode ver na figura 1. Nessa matriz 4 × 3, o primeiro nú- mero representa a quantidade de linhas e o segundo número, a quan- tidade de colunas. Figura 1 – Representação gráfica de uma matriz 4 × 3 8,5 7,2 10,0 7,8 9,0 6,7 10,0 6,1 8,4 5,9 7,4 6,8 Em computação, a matriz, também chamada de array bidimensional, será uma variável que armazenará vários dados do mesmo tipo, porém em forma de tabela. De acordo com Deitel e Deitel (2010), os arrays bidimensionais costumam ser utilizados para representar tabelas de valores que consistem nas informações dispostas em linhas e colunas. Você já deve ter trabalhado com alguma planilha eletrônica na qual ma- nipulou linhas e colunas, certo? Nossa matriz se comportará de maneira semelhante. Forbellone e Eberspacher (2005) comparam a estrutura de matri- zes com um edifício que é dividido em andares, que, por sua vez, são divididos em apartamentos. Nesse caso, seria necessária uma es- trutura multidimensional para encontrar um apartamento. No nosso caso, uma matriz. 107Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. PARA SABER MAIS Segundo Forbellone e Eberspacher (2005), matrizes são arranjos orde- nados que, ao contrário dos vetores, podem ter n dimensões, sendo que essas dimensões lhes dão o nome n-dimensional. Uma matriz de duas dimensões será chamada bidimensional, uma de três dimensões, tridi- mensional, e assim sucessivamente. Como neste capítulo vamos estu- dar apenas matrizes de duas dimensões (ou seja, matrizes formadas por linhas e colunas) podemos chamar nossa matriz de array bidimensional. A matriz tem características parecidas com um vetor (array unidi- mensional), porém possui dois índices de acesso a dados. O primeiro índice indica em qual linha o dado se encontra e o segundo índice indica em qual coluna o dado se encontra. A interseção dessas duas coorde- nadas é a “casa” onde nosso dado está armazenado. O sistema de coordenadas é uma boa analogia para entender as ma- trizes. O GPS (global positioning system) é um sistema de navegação por satélite que fornece as coordenadas de onde estamos. Essas coor- denadas são as linhas e as colunas do planeta Terra (latitude e longitu- de, ilustrada pela figura 2). Se colocarmos mais uma dimensão (como altura, por exemplo) podemos trabalhar com mapas 3D. Da mesma for- ma, se tivermos uma estrutura tridimensional em computação, podere- mos formar um cubo. Figura 2 – A latitude e a longitude terrestre representam linhas e colunas 108 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo .Para encontrarmos uma pessoa no nosso planeta, precisamos des- sas coordenadas. E para acessar um dado em uma matriz construída por nós, programadores? Também precisaremos de coordenadas, as linhas e as colunas. Você já jogou bingo? O jogo do bingo pode ser representado em uma tabela. A figura 3 mostra uma dessas cartelas, na qual temos a nítida separação das linhas (que podem ser numeradas, por exemplo) e das colunas (no caso da cartela, a quantidade de colunas sempre é 5, devido à formação da palavra B I N G O, e cada coluna está representada por uma letra da palavra). A cartela de bingo é uma matriz quadrada 5 × 5. Figura 3 – Cartela de bingo, separada por linhas e colunas B I N G O FREE Para acessar qualquer valor da tabela, precisamos dos seus índices (linha, coluna). Por exemplo, existe uma “casa” da cartela de bingo que é um espaço free (bem no meio da cartela). Para acessar esse espaço, precisamos saber em que linha ele está (no caso, terceira linha) e em que coluna ele está (no caso, terceira coluna). Portanto, o espaço free 109Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. da cartela de bingo está localizado na posição [3,3]. É importante lem- brar, também, que para acessar uma matriz precisamos saber o nome dela, como fizemos com os vetores. IMPORTANTE Para manipular uma matriz, você precisará de três informações: o nome da matriz, o número da linha e o número da coluna. Agora que entendemos o que é uma matriz, que tal aprender como utilizá-la em nosso programa? 1.1 Declarando uma matriz Para declarar uma matriz, assim como um vetor, precisamos saber a sintaxe da linguagem na qual estamos trabalhando. Nossa linguagem é o JavaScript e, de acordo com Flanagan (2013), o JavaScript não supor- ta arrays multidimensionais verdadeiros, mas permite simulá-los com arrays de arrays de modo bem preciso. Basicamente, a declaração de uma matriz consiste de um nome e dois pares de colchetes, indicando o posicionamento do dado arma- zenado (a linha e a coluna). No caso do JavaScript, vamos criar um ar- ray de arrays, ou seja, dentro dos colchetes do nosso vetor, em vez de números ou caracteres, vamos inserir colchetes. Cada par de colchete representa um vetor. Portanto, para declarar uma matriz 4 × 3, faremos da seguinte maneira: var nome = [[ ],[ ],[ ],[ ]]; Observe o que fizemos. O vetor “nome” possui 4 vetores. Cada um des- ses vetores representa uma linha. A quantidade de colunas serão os da- dos que vamos inserir em cada um desses vetores. Por exemplo, vamos inserir 3 nomes por vetor, formando, assim, uma matriz “nome” 4 × 3. 110 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra Sen ac S ão P au lo . var nome = [[“Allen”, “Victor”, “Vanessa”], [“Wagner”, “Claudio”, “Silvia”], [“Neuza”, “Thais”, “Humberto”], [“Roberto”, “John”, “Gabriel”]]; Compreendeu? Podemos exibir, na tela, algum nome ou uma lista com todos os nomes da matriz. Além disso, podemos realizar buscas específicas de dados nessa matriz. Uma pergunta que você pode estar se fazendo é: como o usuário pode inserir os dados nessa matriz? É uma ótima pergunta, e vamos ver como isso é possível. 2 Manipulando uma matriz Uma vez declarada nossa matriz, podemos alimentá-la de dados, como fizemos anteriormente (ou seja, inserindo dados fixos), ou pedir para ao usuário que insira seus dados (o que é muito melhor na prática.). A manipulação de dados, em uma matriz, é parecida com a manipu- lação de dados em um vetor. Podemos realizar a inserção, a exclusão, a atualização e buscar algum dado (Crud). Entretanto, para manipular uma matriz, devemos ficar atentos às suas coordenadas para saber, exatamente, onde (em qual casa) estamos tratando o dado. Lembra-se de como nós manipulamos um vetor? Isso mesmo, fa- zendo uso da estrutura de repetição “for”. E para manipular uma matriz, como faremos? Também utilizando o “for”, porém, vamos precisar de dois laços “for” (um dentro do outro). O laço externo fica “parado” na primeira linha, enquanto o laço interno percorre (varre) todas as suas colunas. Quando terminar, o laço externo anda mais uma linha e o laço interno varre todas as suas colunas e assim por diante. 111Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. IMPORTANTE Quando utilizamos dois laços “for”, o laço interno é executado comple- tamente, a cada passo do laço externo. Na prática, o laço externo vai percorrer as linhas, enquanto o laço interno vai percorrer as colunas. Para compreender melhor, vamos declarar uma matriz “nome” e in- serir valores nela. Para facilitar o entendimento do exercício, vamos de- clarar uma matriz 2 × 3 (no entanto, o algoritmo funciona para quaisquer tamanhos, basta alterar os valores dos índices). 2.1 Inserindo dados em uma matriz Uma vez declarada nossa matriz “nome” de tamanho 2 × 3, preci- samos criar um laço de repetição para que o usuário possa inserir os valores que quiser nela. Para isso, vamos utilizar dois laços de repetição “for” (um dentro do outro), em que o índice representado pela variável “li- nha” vai varrer todas as linhas da matriz, enquanto o índice representado pela variável “coluna” vai varrer todas as colunas da matriz. Vamos verificar como ficou nosso código (não se esqueça de que todos os índices começam em zero): var nome = [[],[]]; for (linha=0; linha < nome.length; linha++){ for (coluna=0; coluna < 3; coluna++){ nome[linha][coluna] = prompt (“Insira um nome”); } } alert(nome) Observe o que foi feito: 112 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . • O laço de repetição externo vai percorrer todas as linhas (no caso, são duas linhas, pois declaramos nossa matriz com dois vetores dentro), por isso a condição de saída é o tamanho da matriz – “linha < nome.length”. Esse laço só muda para a próxima linha quando todas as suas colunas forem percorridas. • O laço de repetição interno vai percorrer todas as colunas de cada linha (no caso, como é uma matriz 2 × 3, vamos limitar o tamanho das colunas em 3), por isso a condição de saída é o valor fixo 3 – “coluna < 3”. • Para inserirmos um valor em uma posição específica da matriz, precisamos informar seu nome, a linha e a coluna. Por isso, guar- damos o valor digitado pelo usuário em “nome[linha][coluna]”. Esse procedimento será parecido (senão igual) todas as vezes que for preciso manipular uma matriz inserindo valores, seja qual for o tipo de matriz ou quantas matrizes tivermos. Por exemplo, vamos cadastrar as médias finais de um grupo de 10 alunos? A primeira linha da matriz vai armazenar os nomes dos alunos e cada coluna terá as notas de 4 disciplinas: português, matemática, física e biologia. Haverá uma segunda matriz informando se o aluno está aprovado ou reprovado, de acordo com a média inserida na primeira matriz (vamos usar a média 6.0 para o aluno estar aprovado). O resultado que queremos está representado na tabela 1 (lembran- do que vamos pedir ao usuário que insira valores somente na primeira matriz. A segunda deve ser preenchida automaticamente): Tabela 1 – Tabelas representando médias e situações de 10 alunos 113Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. MÉDIAS ANDRÉ CLÁUDIO CÉSAR ANA DIEGO PORTUGUÊS 5,5 9,6 8 9 6 MATEMÁTICA 8,2 5,7 2,4 7,8 6,9 FÍSICA 3,6 4,8 4,7 4,4 5 BIOLOGIA 6,1 7,5 7,1 3,3 9,3 MÉDIAS FLÁVIA JORGE KÁTIA JOÃO MARIA PORTUGUÊS 7,1 2,1 5,3 4,5 8,6 MATEMÁTICA 8,5 1 7 5,7 9 FÍSICA 7,9 3,8 4,1 8 6 BIOLOGIA 5,9 10 8,2 5,6 8,6 SITUAÇÃO ANDRÉ CLÁUDIO CÉSAR ANA DIEGO PORTUGUÊS Reprovado Aprovado Aprovado Aprovado Aprovado MATEMÁTICA Aprovado Reprovado Reprovado Aprovado Aprovado FÍSICA Reprovado Reprovado Reprovado Reprovado Aprovado BIOLOGIA Aprovado Aprovado Aprovado Reprovado Reprovado SITUAÇÃO FLÁVIA JORGE KÁTIA JOÃO MARIA PORTUGUÊS Aprovado Reprovado Reprovado Reprovado Aprovado MATEMÁTICA Aprovado Reprovado Aprovado Reprovado Aprovado FÍSICA Aprovado Reprovado Reprovado Aprovado Aprovado BIOLOGIA Reprovado Aprovado Aprovado Reprovado Aprovado Para resolver esse problema, vamos declarar duas matrizes 5 × 11 com os nomes “media” e “situacao” e criar as condições com os laços de repetição necessários para alimentar a primeira matriz, via teclado, e a segunda matriz automaticamente. Observe que a primeira posição das duas matrizes são palavras fixas “média” e “situação”. Sendo assim, podemos inserir esses valores no momento da declaração das nossas 114 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo .matrizes. Além disso, os nomes das disciplinas também são fixos, por- tanto, vamos inseri-los também. IMPORTANTE O tamanho 5 × 11 é decorrente do fato de termos 5 linhas (4 para as disciplinas e 1 para os nomes dos alunos na primeira linha) e 11 colu- nas (10 para os nomes dos alunos e a primeira coluna para os nomes das disciplinas). Sabendo de tudo isso, vamos verificar nosso código: var media = [[],[],[],[],[]], situacao = [[],[],[],[],[]]; media[0][0] = “MÉDIA”; situacao[0][0] = “SITUAÇÃO”; media[1][0] = “Português”; situacao[1][0] = “Português”; media[2][0] = “Matemática”; situacao[2][0] = “Matemática”; media[3][0] = “Física”; situacao[3][0] = “Física”; media[4][0] = “Biologia”; situacao[4][0] = “Biologia”; for (linha=0; linha < media.length; linha++){ (cont.) 115Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob aspenas da Lei. © Editora Senac São Paulo. for (coluna=1; coluna < 11; coluna++){ if(linha == 0){ media[linha][coluna] = prompt (“Insira um nome”); situacao[linha][coluna] = media[linha][coluna]; } else{ media[linha][coluna] = prompt (“Insira a média de “ + media[linha][0] + “ do aluno “ + media[0][coluna]); if (media[linha][coluna] < 6){ situacao[linha][coluna] = “REPROVADO”; }else{ situacao[linha][coluna] = “APROVADO”; } } } } for (linha=0; linha < situacao.length; linha++){ for (coluna=0; coluna < 11; coluna++){ alert (situacao[linha][coluna]); } alert (“\n”); } Observe quanta coisa fizemos: 116 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo .a. Declaramos as matrizes e inserimos os valores fixos nas posi- ções 0, 1, 2, 3 e 4 (ou seja, preenchemos a primeira coluna das duas matrizes. b. Como a primeira coluna está preenchida, iniciamos o valor da va- riável “coluna” em 1. c. Dentro do laço interno, fizemos uma pergunta: linha é igual a zero (linha == 0). Caso seja, todas as colunas dessa linha devem conter somente nomes. Caso contrário, vamos pedir as médias. Repare que já estamos copiando os nomes da matriz “media” para a ma- triz “situacao” (situacao[linha][coluna] = media[linha][coluna]). d. Assim que inserirmos uma média, o sistema já faz uma compa- ração verificando se a nota inserida é menor que 6. Caso seja, inserimos “reprovado” nessa mesma posição, mas da matriz “si- tuação”. Caso contrário, inserimos “aprovado”. e. Os itens b, c, d são executados até varrermos todas as linhas da matriz “media” com a ajuda do laço de repetição externo e a variá- vel “linha”. f. Quando todas as linhas e colunas forem preenchidas, outro con- junto de laços de repetição “for” varre a matriz “situacao”, exibindo seus valores na tela. Sugerimos que esse exercício seja refeito com tamanhos diferen- tes de linhas e colunas e que os resultados sejam verificados. Observe, também, que há várias maneiras diferentes de se construir esse algorit- mo. Tente uma lógica diferente e verifique o que acontece. Outra coisa bem interessante a ser feita é buscar um valor dentro dessas matrizes, que é o que vamos aprender a seguir. 2.2 Buscando dados em uma matriz 117Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. A busca de dados é uma das operações básicas de manipulação de dados que podem ser feitas com arrays. Vamos aproveitar nosso exercício e procurar algum dado, já que temos duas matrizes com informações. Podemos buscar, por exemplo, a média de matemática de um aluno específico, ou alguma média igual a 10, ou, ainda, saber se algum alu- no está aprovado em todas as disciplinas. Vamos explorar todas essas possibilidades. No entanto, lembre-se de que pode haver a possibilidade de não encontrarmos o dado e termos que resolver essa situação com o usuário. Para buscar um dado em uma matriz, vamos usar os laços de re- petição “for”, assim como fizemos para inserir dados, pois esses laços, combinados, varrem uma matriz, passando por todas as linhas e as colunas. Vamos começar procurando um aluno. Pediremos ao usuário que informe qual aluno quer pesquisar. Caso encontremos, informamos que o aluno está cadastrado, caso contrário, informamos que o aluno não existe na base de dados. Vamos verificar esse trecho de código: var nome = prompt (“Informe qual aluno deseja pesquisar”); var controle = 0; for (coluna=0; coluna < 11; coluna++){ if (nome == media[0][coluna]){ alert (“O aluno “ + media[0][coluna] + “encontra-se na base de dados na posição“ + coluna); controle = 1; } (cont.) 118 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . } if (controle == 0){ alert (“O aluno “ + nome + “ não está na base de dados”); } Observe que usamos apenas um laço “for”. Isso porque sabemos que os nomes dos alunos estão na primeira linha, portanto não preci- samos varrer todas as linhas. Basta, então, fixar a coordenada linha em zero e varrer as colunas. Além disso, usamos uma variável de controle que se inicia em zero para saber se o aluno existe na base dados ou não. Caso o aluno exista, a variável muda para 1, caso contrário, continua com o valor zero e a estrutura condicional “if”, que se encontra depois do laço “for”, verifica esse valor. Agora, vamos imaginar que o usuário queira procurar a média de ma- temática de um aluno. Temos que pedir o nome do aluno. Porém, além de procurar o aluno na primeira linha, temos que procurar em qual linha está a disciplina e buscar a média nessas coordenadas (caso encon- tremos a disciplina, é claro!). Vamos verificar o código nessa situação: var nome = prompt (“Informe qual aluno deseja pesquisar”); var disciplina = prompt (“Informe para qual disciplina deseja pesquisar a nota”); var controle = 0; for (coluna=0; coluna < 11; coluna++){ (cont.) 119Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. if (nome == media[0][coluna]){ for (linha=1; linha < media.length; linha++){ if (disciplina == media[linha][0]){ alert (“A média do “ + nome + “na disciplina“ + disciplina + “é“ + media[linha] [coluna]); controle = 1; }}}} if (controle == 0){ alert (“O aluno “ + nome + “ou a disciplina“ + disciplina + “não constam na base de dados”); } Usamos o mesmo algoritmo anterior, porém inserimos a variável dis- ciplina. Se encontrarmos o nome do aluno, já teremos a coordenada da coluna. A partir disso, basta varrer as linhas e encontrar a média do aluno. Caso algum dado não exista (nome do aluno ou a disciplina), a variável “controle” não muda seu valor e a estrutura condicional “if” exibe a informação na tela. PARA SABER MAIS Se você estiver fazendo vários testes e precisar sempre inserir todos 120 Algoritmos e programação I Ma te ria l p ar a us o ex cl us ivo d e al un o m at ric ul ad o em c ur so d e Ed uc aç ão a D is tâ nc ia d a Re de S en ac E AD , d a di sc ip lin a co rre sp on de nt e. P ro ib id a a re pr od uç ão e o c om pa rti lh am en to d ig ita l, s ob a s pe na s da L ei . © E di to ra S en ac S ão P au lo . os valores novamente, é porque estamos trabalhando com variáveis do tipo voláteis. Se você quiser guardar esses dados e não os perder, pode trabalhar com arquivos (assunto não abordado nessa obra). Para isso, sugerimos que você leia o capítulo 6 do livro Conceitos de linguagens de programação, de Sebesta (2003), e o capítulo 5 do livro Lógica de progra- mação: a construção de algoritmos e estruturas de dados, de Forbellone e Eberspacher (2005). Para treinar, faça o seguinte exercício: verifique se o aluno pesquisa- do está “aprovado” ou “reprovado” na disciplina pesquisada. Dica: use o mesmo algoritmo, façaapenas algumas modificações. Você já tem muita coisa para fazer em relação ao nosso projeto de software (boletim acadêmico do aluno). Faça o projeto e treine bastante esses conceitos, tão importantes para um programador ou para qual- quer profissional da área de tecnologia. Considerações finais As matrizes, também chamadas de arrays bidimensionais, são es- truturas parecidas com tabelas e são utilizadas para armazenar dados em linhas e colunas. Por isso, precisamos, para manipular os dados nas matrizes, das suas coordenadas (que são indicadas dentro de colchetes). Vale lembrar que, para varrermos uma matriz, são necessárias duas estruturas de repetição “for” aninhadas, ou seja, um “for” dentro do ou- tro. O laço de repetição externo controla (ou varre) todas as linhas e o laço de repetição interno controla (ou varre) todas as colunas. Como declarar uma matriz depende muito da sintaxe da linguagem na qual se está trabalhando. No nosso caso, a linguagem é o JavaScript e não existe array bidimensional nessa linguagem. Entretanto, consegui- mos simular, de maneira bem satisfatória, essa estrutura com um array de arrays, como foi demonstrado nos exemplos ao longo do capítulo. 121Algoritmos – matrizes M aterial para uso exclusivo de aluno m atriculado em curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com partilham ento digital, sob as penas da Lei. © Editora Senac São Paulo. Compreender esses conceitos é muito importante para um profis- sional de tecnologia da informação. Portanto, treine muito e apure sua lógica de programação. Referências DEITEL, Paul J.; DEITEL, Harvey M. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2010. FLANAGAN, David. JavaScript: o guia definitivo. 6. ed. Porto Alegre: Bookman, 2013. FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados. São Paulo: Pearson Prentice Hall, 2005. SEBESTA, Robert W. Conceitos de linguagens de programação. 5. ed. Porto Alegre: Bookman, 2003. _GoBack
Compartilhar