MATRIZES
Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
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]
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] );
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]);
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.
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”;
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.
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.
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.

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ãotambé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 preencheruma 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 eimprimir 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 fimpara; 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 algoritmoloteria; 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ãomarlin  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 umalgoritmo 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 umalgoritmo 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.