5
Estruturas de Dados Estáticas 1 http://erinaldosn.wordpress.com Estruturas de Dados Estáticas Cont. Matriz (arrays multidimensionais) Uma matriz é uma variável composta homogênea bidimensional formada por uma sequência de variáveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome) e alocadas sequencialmente na memória. Uma vez que as variáveis têm o mesmo nome, o que as distingue são índices que referenciam sua localização dentro da estrutura. Uma variável do tipo matriz é composta por linhas e colunas. Estruturas indexadas que necessitam de mais de um índice para identificar um de seus elementos são chamadas matrizes de dimensão n, onde n representa o número de índices requeridos. Uma matriz de dimensão 2 é uma matriz que exige dois índices para identificar um elemento em sua estrutura. Exemplo: suponha que se necessite desenhar um gráfico de uma curva no plano e que seja necessário guardar as posições dos pontos dessa curva em coordenadas x e y, uma maneira possível de armazenar em memória o total dos pontos dessa curva seria na forma de uma matriz de dimensão 2. Nela, um dado elemento conteria o valor correspondente ao ponto identificado pelo índice de x para a abscissa e y para a ordenada desse elemento. Declaração de matriz A declaração de uma matriz é muito semelhante à declaração de vetor. Delimitadas entre os colchetes, temos duas declarações de tipo associadas aos índices, separadas por uma vírgula. A convenção mais comum é dizermos que o primeiro índice identifica uma linha de uma matriz bidimensional e o segundo, uma coluna. DECLARE NOME[LINHA, COLUNA] TIPO Onde, nome é o nome da variável do tipo matriz, linha é a quantidade de linhas que vão compor a matriz, coluna é a quantidade de colunas que vão compor a matriz e tipo é o tipo de dados que poderá ser armazenado na sequência de variáveis que formam a matriz. DECLARE VENDAS : VETOR [1..M, 1..N] DE INTEIROS DECLARE X : VETOR [3,5] DE INTEIROS 1 2 3 4 5 X 1 2 3 Exemplo de algoritmo para carregar uma matriz. PARA i ← 1 ATÉ 3 FAÇA INÍCIO PARA j ← 1 ATÉ 5 FAÇA INÍCIO ESCREVA (“Digite o número da linha “, i, “ e coluna “, j); X[1,1] X[3,4]

Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3 a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

Embed Size (px)

Citation preview

Page 1: Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3   a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

Estruturas de Dados Estáticas – 1

http://erinaldosn.wordpress.com

Estruturas de Dados Estáticas – Cont.

Matriz (arrays multidimensionais) Uma matriz é uma variável composta homogênea bidimensional formada por

uma sequência de variáveis, todas do mesmo tipo, com o mesmo identificador (mesmo

nome) e alocadas sequencialmente na memória. Uma vez que as variáveis têm o mesmo

nome, o que as distingue são índices que referenciam sua localização dentro da

estrutura. Uma variável do tipo matriz é composta por linhas e colunas.

Estruturas indexadas que necessitam de mais de um índice para identificar um de

seus elementos são chamadas matrizes de dimensão n, onde n representa o número de

índices requeridos. Uma matriz de dimensão 2 é uma matriz que exige dois índices para

identificar um elemento em sua estrutura.

Exemplo: suponha que se necessite desenhar um gráfico de uma curva no plano

e que seja necessário guardar as posições dos pontos dessa curva em coordenadas x e y,

uma maneira possível de armazenar em memória o total dos pontos dessa curva seria na

forma de uma matriz de dimensão 2. Nela, um dado elemento conteria o valor

correspondente ao ponto identificado pelo índice de x para a abscissa e y para a

ordenada desse elemento.

Declaração de matriz A declaração de uma matriz é muito semelhante à declaração de vetor.

Delimitadas entre os colchetes, temos duas declarações de tipo associadas aos índices,

separadas por uma vírgula. A convenção mais comum é dizermos que o primeiro índice

identifica uma linha de uma matriz bidimensional e o segundo, uma coluna. DECLARE

NOME[LINHA, COLUNA] TIPO

Onde, nome é o nome da variável do tipo matriz, linha é a quantidade de

linhas que vão compor a matriz, coluna é a quantidade de colunas que vão compor a

matriz e tipo é o tipo de dados que poderá ser armazenado na sequência de variáveis

que formam a matriz. DECLARE

VENDAS : VETOR [1..M, 1..N] DE INTEIROS

DECLARE

X : VETOR [3,5] DE INTEIROS

1 2 3 4 5

X

1

2

3

Exemplo de algoritmo para carregar uma matriz. PARA i ← 1 ATÉ 3 FAÇA

INÍCIO

PARA j ← 1 ATÉ 5 FAÇA

INÍCIO

ESCREVA (“Digite o número da linha “, i, “ e

coluna “, j);

X[1,1] X[3,4]

Page 2: Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3   a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

2 – Lógica de Programação

http://erinaldosn.wordpress.com

LEIA (X [i, j]);

FIM

FIM

Exemplo de algoritmo para mostrar os elementos de uma matriz. PARA i ← 1 ATÉ 3 FAÇA

INÍCIO

PARA j ← 1 ATÉ 5 FAÇA

INÍCIO

ESCREVA (X[i, j];

FIM

FIM

Da mesma forma que se pode fazer operações com os elementos de um vetor, é

possível fazê-las com os elementos de uma matriz. É possível acessar individualmente

os elementos e, por conseguinte, os valores de cada uma das posições e realizar cálculos

matemáticos e comparativos, o que dá grande margem de possíveis aplicações

computacionais e práticas.

Exercícios 1. Faça um programa que carregue uma matriz 2 x 2, calcule e mostre uma matriz

resultante que será a matriz digitada multiplicada pelo maior elemento da matriz.

2. Faça um programa que carregue uma matriz 10 x 3 com as notas de dez alunos em

três provas. Mostre um relatório com o número do aluno (número da linha) e a

prova em que cada aluno obteve menor nota. Ao final do relatório, mostre quantos

alunos tiveram menor nota na prova1, quantos alunos tiveram menor nota na prova

2 e quantos alunos tiveram menor nota na prova 3.

3. Faça um programa que carregue:

Um vetor com oito posições com os nomes das lojas.

Um outro vetor com quatro posições com os nomes dos produtos.

Uma matriz com os preços de todos os produtos em cada loja.

O programa deve mostrar todas as relações (nome do produto – nome da loja) nas

quais o preço não ultrapasse R$ 120,00.

4. Faça um programa que carregue uma matriz 10 x 20 com números inteiros e some

cada uma das linhas, armazenando o resultado das somas em um vetor. A seguir,

multiplique cada elemento da matriz pela soma da linha e mostre a matriz resultante.

5. Faça um programa que carregue uma primeira matriz de ordem 4 x 5 e uma segunda

matriz 5 x 2, calcule e mostre a matriz resultante do produto matricial das duas

matrizes anteriores, armazenando-o em uma terceira matriz de ordem 4 x 2.

6. Faça um programa que carregue uma matriz 6 x 4 com números inteiros, calcule e

mostre quantos elementos dessa matriz são maiores que 30 e, em seguida, monte

uma segunda matriz com os elementos diferentes de 30. No lugar do número 30 da

segunda matriz coloque o número zero.

7. Faça um programa que carregue uma matriz 15 x 5 com números inteiros, calcule e

mostre quais os elementos da matriz que se repetem e quantas vezes cada um está

repetido.

8. Faça um programa que carregue uma matriz 10 x 10 com números inteiros, execute

as trocas especificadas a seguir e mostra a matriz resultante.

a linha 2 com a linha 8;

a coluna 4 com a coluna 10;

a diagonal principal com a diagonal secundária;

Page 3: Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3   a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

Estruturas de Dados Estáticas – 3

http://erinaldosn.wordpress.com

a linha 5 com a coluna 10.

9. Faça um programa que carregue uma matriz 8 x 8 com números inteiros e mostre

uma mensagem dizendo se a matriz digitada é simétrica. Uma matriz simétrica

possui A[i, j] = A[j, i].

10. Faça um programa que carregue:

Um vetor com os nomes de cinco produtos.

Uma matriz 5 x 4 com os preços dos cinco produtos em quatro lojas diferentes.

Um outro vetor com o custo do transporte dos cinco produtos.

Calcule uma segunda matriz 5 x 4 com os valores dos impostos de cada produto,

sendo que esses obedecem à tabela a seguir:

Preço % de imposto

Até R$ 50,00 5

Entre R$ 50,01 e R$ 100,00 10

Acima de R$ 100,00 20

Mostre um relatório com o nome do produto, o número da loja onde o produto se

encontra, o valor do imposto a pagar, o custo de transporte, preço e o preço final

(preço acrescido do valor do imposto e do custo do transporte).

11. Faça um programa que receba:

Um vetor com o nome de cinco cidades diferentes.

Uma matriz 5 x 5 com a distância entre as cidades, sendo que na diagonal

principal deve ser colocada automaticamente distância zero, ou seja, não deve

ser permitida a digitação.

Calcule e mostre:

Os percursos que não ultrapassam 250 quilômetros (os percursos são compostos

pelos nomes das cidades de origem e pelos nomes das cidades de destino);

O consumo de um veículo, ou seja, quantos quilômetros o veículo faz por litro

de combustível e mostre um relatório com a quantidade de combustível

necessária para percorrer cada percurso citando o mesmo (nome da cidade de

origem e nome da cidade de destino);

A maior distância e em que percurso se encontra (nome da cidade de origem e

nome da cidade de destino).

12. Faça um programa que carregue:

Um vetor com cinco números inteiros.

Um outro vetor com dez números inteiros.

Uma matriz 4 x 3, também com números inteiros.

Calcule e mostre:

O maior elemento do primeiro vetor multiplicado pelo menor elemento do

segundo vetor. O resultado dessa multiplicação adicionado aos elementos

digitados na matriz dará origem a uma segunda matriz (resultante).

A soma dos elementos pares de cada linha da matriz resultante.

A quantidade de elementos entre 1 e 5 em cada coluna da matriz resultante.

13. Faça um programa que carregue uma matriz 7 x 7 de números inteiros e crie dois

vetores de sete posições cada um e que contenham, respectivamente, o maior

elemento de cada uma das linhas e o menor elemento de cada uma das colunas.

Escreva a matriz A e os dois vetores.

14. Faça um programa que utilize uma matriz 5 x 5 que aceite três tipos de valores:

múltiplo de 5, múltiplos de 11 e múltiplos de 13. Devem ser lidos apenas valores

maiores que zero. Após a leitura, os números devem ser distribuídos da seguinte

maneira:

Page 4: Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3   a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

4 – Lógica de Programação

http://erinaldosn.wordpress.com

Os múltiplos de 5 devem ocupar a diagonal principal;

Os múltiplos de 11 devem ficar acima da diagonal principal;

Os múltiplos de 13 devem ficar abaixo da diagonal principal.

Como alguns números podem ser múltiplos de 5, de 11 e também de 13, deve-se

primeiro verificar se o número digitado é múltiplo de 5. Caso não seja, deve-se

verificar se é múltiplo de 11. Caso não seja, deve-se verificar se é múltiplo de 13.

Caso não seja, deve-se mostrar a mensagem Número inválido.

Esse programa deve observar as seguintes situações:

Quando o usuário digitar um múltiplo de 5 e não houver mais espaço na

diagonal principal, mostre a mensagem Diagonal totalmente preenchida.

Quando o usuário digitar um múltiplo de 11 e não houver mais espaço

disponível na matriz, mostre a mensagem Não existe espaço acima da diagonal

principal.

Quando o usuário digitar um múltiplo de 13 e não houver mais espaço

disponível na matriz, mostre a mensagem Não existe espaço abaixo da diagonal

principal.

Quando a matriz estiver totalmente preenchida, mostre todos os elementos da

matriz, juntamente com suas posições (linha e coluna).

15. Faça um programa que utilize uma matriz com dimensões máxima de cinco linhas e

quatro colunas.

Solicite que sejam digitados os números que serão armazenados na matriz da

seguinte maneira:

Se o número digitado for par, deve ser armazenado em uma linha de índice par.

Se o número digitado for ímpar, deve ser armazenado em uma linha de índice

ímpar.

As linhas devem ser preenchidas de cima para baixo.

Quando não couberem mais números pares ou ímpares, deve ser mostrada uma

mensagem ao usuário.

Quando a matriz estiver totalmente preenchida, deve-se encerrar a leitura dos

números e mostrar todos os elementos armazenados na matriz.

16. Faça um programa que utiliza uma matriz com dimensões máxima de cinco linhas e

quatro colunas e solicite que sejam digitados os números (desordenadamente) e

armazene-os ordenadamente na matriz.

17. Faça um programa que utilize uma matriz com as dimensões fornecidas pelo usuário

e execute as solicitações a seguir:

A matriz deve ser obrigatoriamente quadrada (número igual de linhas e colunas).

Realize a leitura dos elementos que vão compor a matriz.

Some e mostre os elementos que estão abaixo da diagonal secundária.

18. Faça um programa que receba o estoque atual de três produtos que estão

armazenados em quatro armazéns e coloque esses dados em uma matriz 5 x 3.

Sendo que a última linha da matriz contém o custo de cada produto, calcule e

mostre:

A quantidade de itens armazenados em cada armazém.

Qual o armazém possui maior estoque do produto 2.

Qual o armazém possui menor estoque.

Qual o custo total de cada produto.

Qual o custo total de cada armazém.

19. Faça um programa que receba as vendas semanais (de um mês) de cinco vendedores

de uma loja e armazene essas vendas em uma matriz. Calcule e mostre:

Page 5: Estruturas de Dados Estáticas Cont. · PDF fileEstruturas de Dados Estáticas – 3   a linha 5 com a coluna 10. 9. Faça um programa que carregue uma matriz 8 x 8 com

Estruturas de Dados Estáticas – 5

http://erinaldosn.wordpress.com

O total de vendas do mês de cada vendedor.

O total de vendas de cada semana (todos os vendedores juntos).

O total de vendas do mês.

20. Faça um programa que:

Receba dez nomes de produtos e armazene-os em um vetor.

Receba o estoque desses dez produtos em cada um dos cindo armazéns (matriz 5

x 10).

Receba o custo dos dez produtos e armazene-os em um outro vetor.

Calcule e mostre:

O total de itens armazenados em cada armazém.

O total de itens armazenados de cada produto.

O custo total de cada armazém.

O nome do produto e o número do armazém que possui maior número de itens

estocados.

O nome do produto que possui menor custo.

Bibliografia Fundamentos da Programação de Computadores

Ana Fernanda Gomes Ascencio, Edilene Aparecida Veneruchi de Campos

São Paulo: Pearson Prentice Hall

Lógica de programação e estrutura de dados, com aplicações em Java

Sandra Puga, Gerson Rissetti

São Paulo: Pearson Prentice Hall, 2009

Estrutura de dados e algoritmos em Java

Michael Goodrich, Roberto Tamassia

Porto Alegre: Bookman, 2007