Lógica de Programação
• Algoritmos
– Matrizes
• Objetivo: Capacitar para trabalhar com matrizes, declarando matrizes de diferentes dimensões e tipos, como inicializar matrizes, como referenciar um elemento particular da matriz e como passar uma matriz para uma função.
Lógica de Programação
• Algoritmos
– Matrizes:
• Nas aulas passada foi apresentado o uso de
vetores. Uma matriz pode ser definida como uma cadeia de vetores de mesmo tipo, ou seja, para ser uma matriz, a estrutura dela deve possuir ao menos duas linhas ou duas colunas de dados.
Como veremos nesta aula, o estudo de matrizes é análogo ao de vetores.
Lógica de Programação
• Algoritmos
– Matrizes:
• Variável bidimensional(linha e coluna) que armazena varias constantes do mesmo
tipo(homogenia). Isso permite manipular um conjunto de dados do mesmo tipo sem a necessidade de recorrer a declaração de muitas variáveis.
Lógica de Programação
• Algoritmos
– Matrizes:
– O recurso de se colocarem várias constantes em uma só variável não é exclusivo do vetor, a matriz é uma variável que também apresenta essa característica.
– Matriz assemelha-se a uma planilha com linha e coluna conforme a figura a seguir:
Lógica de Programação
• Algoritmos
– Matrizes: L I N H A C O L U N ALógica de Programação
• Algoritmos
– Matrizes:
– Você viu, há pouco, que nem sempre os tipos de dados básicos são suficientes para
representar as estruturas de dados
necessárias para resolver os problemas que se apresentam.
Viu a necessidade de, em algumas situações, exibir dados em listas. E, para atender a essa necessidade, conhecemos os vetores, como estruturas de dados unidimensionais, com variáveis indexadas referenciadas por um único índice.
Lógica de Programação
• Algoritmos
– Matrizes:
– Você aprendeu que, armazenando os dados em um vetor e acessando-o, em seguida,
podemos exibir suas informações em uma lista.
– Porém, os vetores lidam com apenas uma
dimensão. Ou seja, se fôssemos representar o vetor através de uma tabela, essa só teria uma linha com várias colunas, ou vice-versa.
Lógica de Programação
• Algoritmos
– Exemplo de vetores:Maria
Manoel
José
Joaquim
Helena
Maria Manoel José Joaquim Helena
Varias linhas e uma coluna.
Lógica de Programação
• Algoritmos
– Exemplo de vetores:
• Os elementos do vetor, na tabela, são os nomes
dos alunos Maria, Manoel, José, Joaquim e Helena. Dessa forma, os elementos e seus índices são:
vet[1] <-“Maria” vet[2] <- “Manoel” vet[3] <- “José”
vet[4] <- “Joaquim” vet[5] <- “Helena”
Lógica de Programação
• Algoritmos
– Matrizes:
• Agora, imagine que o professor de determinada
disciplina passou um trabalho a ser feito em dupla e quer organizar os nomes das duplas. Veja a tabela abaixo:
Grupos
Componente 1
Componente 2
1
Maria
Joaquim
2
Manoel
Helena
Lógica de Programação
• Algoritmos
– Matrizes:
• Os elementos dos grupos, segundo a tabela, são os seguintes:
componentes [1,1] <- Maria (componente 1 do grupo 1) componentes [2,1] <- Joaquim (componente 2 do grupo 1) componentes [1,2] <- Manoel (componente 1 do grupo 2) componentes [2,2] <- Helena (componente 2 do grupo 2) componentes [1,3] <- Fernanda (componente 1 do grupo 3) componentes [2,3]<- José (componente 2 do grupo 3)
• Temos, portanto, 3 grupos, cada um com 2
componentes. Manoel, por exemplo, é o componente 1 do grupo 2. Estamos tratando, portanto, de uma matriz.
Lógica de Programação
• Algoritmos
– Matrizes:
• Uma matriz é uma estrutura de dados homogênea de duas (ou mais) dimensões. Uma matriz utiliza variáveis indexadas de mais de um índice.
• Mas, como fazemos isso em algoritmos?
Primeiro, precisamos conhecer a sintaxe da declaração de uma matriz. Veja a seguir:
Lógica de Programação
• Algoritmos
– Definindo uma matriz :
– As matrizes, são úteis, em diversas aplicações matemáticas.
– A sintaxe do pseudocódigo para uma matriz bidimensional:
<identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo > • Tamanho [VI..VF]=> Vi= Valor inicial do índice e
Lógica de Programação
• Algoritmos
– Definindo uma matriz :
<identificador> : vetor [<tamanho1>,<tamanho2>] de < tipo >
• Tamanho [VI..VF]=> Vi= Valor inicial do índice e VF valor Final do índice.
Lógica de Programação
• Algoritmos
– Definindo uma matriz : – Exemplo:
PESSOAS: VETOR [1..2,1..3] DE CARACTERE
– A declaração acima corresponde à declaração de 6 variáveis:
PESSOAS[1,1], PESSOAS[1,2], PESSOAS[1,3], PESSOAS[2,1], PESSOAS[2,2], e PESSOAS [2,3].
Lógica de Programação
• Algoritmos
– Observe que a matriz, no VisuAlg, é um vetor
com duas dimensões, ou seja, com dois índices. Dessa forma, sua declaração é feita de forma
semelhante à declaração do vetor, com a única diferença de que devemos informar o tamanho da segunda dimensão. A dimensão 1, no caso, é referente aos grupos (1..3) e a dimensão 2 é
referente aos nomes dos alunos de cada grupo (1..2), no exemplo da duplas de alunos. Vamos ver a seguir o algoritmo:
algoritmo "matriz grupos"//nome do algoritmo
var
componente : vetor[1..3,1..2]de literal //declaração da matriz
cont, cont1 : inteiro //declaração dos contadores
inicio
//Estrutura para receber e armazenar os dados da matriz
para cont de 1 ate 3 faca //repetição para os grupos
para cont1 de 1 ate 2 faca //repetição para os componentes
escreval("Digite o nome do componente ",cont1," do grupo ",cont,":") leia (componente[cont, cont1]) //recebe os dados
fimpara fimpara
//Estrutura para exibir os dados recebidos e armazenados
para cont de 1 ate 3 faca
escreval ("Grupo ",cont,":") //mostra o nome do grupo
para cont1 de 1 ate 2 faca
escreval (componente[cont, cont1]) //mostra os componentes
fimpara fimpara
Lógica de Programação
• Algoritmos
– Observe que declaramos, além do vetor, dois contadores. Fizemos isso, porque temos dois índices (um para contar os grupos e outro para contar os componentes de cada grupo). Se
tivéssemos três índices, teríamos que declarar três contadores, e assim por diante.
Você sabe que, para percorrer os elementos do vetor, precisamos fazer isso índice a índice. Por isso, precisamos do contador e de uma estrutura de repetição para armazenar os dados e outra para exibi-los.
Lógica de Programação
• Algoritmos
– Com as matrizes ocorre o mesmo. Porém, como temos dois índices, utilizamos duas estruturas de repetição, uma dentro da outra, para receber os dados, e mais duas para exibi-los. Se
tivéssemos três índices, teríamos que utilizar três estruturas de repetição para cada uma dessas atividades.
Lógica de Programação
• Algoritmos
– Para se atribuir um valor a um elemento da matriz devemos utilizar o seguinte padrão:
< identificador>[<posição 1>,<posição 2>] <- <valor >
Exemplo:
PESSOAS[1,3]<- “Tonet”
Nome da matriz Número da linha Número da coluna
Lógica de Programação
• Algoritmos
– Para se atribuir um valor a um elemento da matriz devemos utilizar o seguinte padrão:
< identificador>[<posição 1>,<posição 2>] <- <valor >
Exemplo:
PESSOAS[1,3]<- “Tonet”
Nome da matriz Número da linha Número da coluna
Exercícios
1. Faça um algoritmo que leia as notas de 10 alunos em 5 disciplinas diferentes. Depois mostre os resultados.
2. Faça um algoritmo que leia e armazene valores inteiros em uma matriz [7,4]. Em seguida encontre o maior valor
contido na matriz e imprima o valor e seus índices.
3. Faça uma algoritmo que leia os valores inteiros de uma matriz M[5,5] e calcule e mostre as seguintes somas: A. Soma da quarta linha.
B. Soma da segunda coluna. C. Soma de todos os elementos.
4. Faça um algoritmo que ordene os elementos de cada linha de uma matriz M[4,4].