• Nenhum resultado encontrado

Lógica de programação - Matrizes - Aula 8

N/A
N/A
Protected

Academic year: 2021

Share "Lógica de programação - Matrizes - Aula 8"

Copied!
24
0
0

Texto

(1)
(2)

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.

(3)

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.

(4)

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.

(5)

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:

(6)

Lógica de Programação

• Algoritmos

– Matrizes: L I N H A C O L U N A

(7)

Ló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.

(8)

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.

(9)

Lógica de Programação

• Algoritmos

– Exemplo de vetores:

Maria

Manoel

José

Joaquim

Helena

Maria Manoel José Joaquim Helena

Varias linhas e uma coluna.

(10)

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”

(11)

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

(12)

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.

(13)

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:

(14)

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

(15)

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.

(16)

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].

(17)

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:

(18)

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

(19)

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.

(20)

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.

(21)

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

(22)

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

(23)

Exercícios

(24)

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].

Referências

Documentos relacionados

Se o grau de dificuldade da resolução da etapa não diminuir, subtrair um ponto na cotação da etapa.. Se o grau de dificuldade da resolução da etapa diminuir, a

Dentre as misturas binárias estudados foi possível observar que a associação entre prednisona e ciclobenzaprina é provavelmente a mais instável devido ao aquecimento, dados este

Este estudo propôs analisar a relevância do calçado esportivo e sua relação com os diferentes tipos de pisadas, observando o índice do arco plantar para classificar o tipo de

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

 A divisão do investimento, no período, por área de negócio foi de 3,3 M€ na Construção Metálica, 4,3 M€ nos Equipamentos para Energia, 9,6 M€ na área de RE Developer e

Apesar de o mercado acionário brasileiro ter se tornado mais importante para a economia brasileira, sobretudo entre o período de 2002 para 2005 (Tabela 3), sua repre- sentatividade

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a