Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Algoritmos - Matrizes
1. MATRIZES
Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
2. MATRIZES
• Matrizes são também chamadas de Variáveis Compostas
Homogêneas Bidimensionais;
• São variáveis que necessitam de dois ou mais índices para
individualização de um elemento;
PSEUDOCÓDIGO
PASCAL
nome_matriz: matriz[1..linhas,
1..colunas] de tipo de dados;
Nome_da_variavel: array[1..n][1..n,
n..n] of tipo_de_dados;
1
Índices de linha
2
3
4
1
11
12
13
14
2
21
22
23
24
3
31
32
33
34
4
41
42
43
44
Índices de coluna
Posição M[2,3]
3. MATRIZES
• Para preencher uma matriz, necessitamos de um for para a
linha e outro para a coluna;
• Para imprimir na tela, o que está armazenado na matriz,
precisamos de outros dois for para percorrê-la;
para i de 1 até n passo 1 faça
inicio
para j de 1 até n passo 1 faça
inicio
comandos;
fim para;
fim para;
linha
coluna
leia( M[i, j] );
escreva( M[i, j] );
4. Exemplo
• Ler e imprimir elementos de uma matriz 2x3:
algoritmo exemplo;
inicio
tab: matriz[1..2, 1..3] de reais;
inteiro: i, j;
escreva(‘digite os elementos da matriz: ’);
para i de 1 até 2 passo 1 faça
inicio
para j de 1 até 3 passo1 faça
inicio
leia(tab[i, j]);
5. Exemplo – continuação
fim para;
fim para;
escreva(‘matriz’);
para i de 1 até 2 passo 1 faça
inicio
para j de 1 até 3 passo 1 faça
inicio
escreva(tab[i, j]);
fim para;
fim para;
escreva(‘’);
fim.
6. Exemplo - loteria
algoritmo loteria;
inicio
tipo loteria: matriz[1..14,1..3] de caracteres;
inteiro: i, j, maismar, njogo, marlin;
maismar 0;
para i de 1 até 14 passo1 faça
inicio
marlin 0;
para j de 1 até 2 passo1 faça
inicio
se loteria*i, j+ = “x”;
7. Exemplo - loteria
então marlin marlin+1;
fim se;
fim para;
se marlin 0 maismar então início
maismar marlin;
njogo 1;
fim;
fimse:
fimpara;
escreva(‘jogo mais marcado: ’, njogo);
escreva(‘quantidade marcações: ’, maismar);
fim.
8. Exercícios
1. Faça um algoritmo para ler as dimensões m e n de uma
matriz – no máximo 10 elementos. Em seguida ler os
elementos das matrizes e calcular uma nova matriz
multiplicando os elementos positivos da matriz inicial por k,
e os negativos por q. Imprimir as matrizes k e q.
2. Faça um algoritmo para lers os elementos de uma matriz
4X4. em seguida imprimir uma mensagem dizendo se a
matriz é diagonal ou não. Uma matriz é diagonal se e
somente se todos os elementos que não forem da diagonal
principal forem zero.
3. Construa um algoritmo que efetue a leitura, a soma e a
impressão do resultado entre duas matrizes inteiras que
comportem 25 elementos.
9. Exercícios
4. Elabore um algoritmo que leia duas matrizes inteiras, A e B,
do tipo 3 x 3 e calcule em uma matriz R sua multiplicação,
ou seja, R = A * B. (R11 = A11*B11 + A12*B21 + A13*B31, e
assim por diante)
5. Faça um algoritmo que preencha uma matriz 5x5 de inteiros
e escreva a soma dos números ímpares fornecidos, a soma
de cada uma das 5 colunas e a soma de cada uma das 5
linhas.
6. Construma um algoritmo que leia um conjunto de números
inteiros para preencher uma matriz 10 x 10 e a partir daí,
gere um vetor com os maiores elementos de cada linha e
outro vetor com os menores elementos de cada coluna.