Algoritmos
Escher
Agenda
• Estruturas Homogêneas;
• Matrizes;
• Exercícios.
Matrizes
Estrutura Homogênea - Matriz:
 Uma matriz é uma coleção homogênea bidimensional,
cujos elementos são distribuídos em linhas (m) e colunas
(n). Se A é uma matriz mn, então suas linhas são
indexadas de 0 a m1 e suas colunas de 0 a n1.
0
Amxn =
1
2
...
m-1
1
2
...
n-1
Matrizes
Estrutura Homogênea - Matriz:
 Uma Matriz é um conjunto que contém um número fixo
de elementos.
 Todos elementos da matriz devem ser do mesmo tipo.
 Armazenam vários elementos (valores) de uma só vez.
– Significa dizer:
• Em uma mesma estrutura de dados, é possível
ter diversas variáveis de tipos de dados simples
do mesmo tipo agrupadas.
linha
Matrizes
coluna
A[1][3]
A[0][0]
A3x4
10
= 5
8
8
7
0
5
7
0
1
7
10
 Para acessar um elemento particular de A, escrevemos
Aij, sendo i o número da linha e j o número da
coluna que o elemento ocupa.
A [i][j]
NOME
ÍNDICES
Matrizes
Estrutura Homogênea - Matriz:
 Sintaxe:
tipo
nomematriz [linhas] [colunas];
onde: deve ser especificado o tipo dos elementos do
conjunto, ou seja, int, string, real, etc. O nomematriz é
o nome da variável, em linhas deve ser especificado o
número máximo de linhas do conjunto e em colunas
deve ser especificado o número máximo de colunas do
conjunto.
Matrizes
Estrutura Homogênea - Matriz:
 Exemplo:
Nome da Variável
int
Número máximo
de linhas
do conjunto
MAT [200][300];
Tipo dos elementos
do conjunto
Número máximo
de colunas
do conjunto
Matrizes
Estrutura Homogênea - Matriz:
 Cada variável indexada é associada à uma posição de
memória, como acontece com variáveis simples.
 Exemplo: real A[2][2];
MP
A[0][0]
A[0][1]
A[1][0]
A[1][1]
Matrizes
Estrutura Homogênea - Matriz:
 Atribuição:
- Além do nome da variável deve-se fornecer os índices do
componente onde será armazenado o valor da expressão.
 Exemplos:
NUMEROS[2][2]  10;
strcopia (NOME[10][20], “Joao”);
SALARIOS[3][5]  100.00;
Matrizes
Estrutura Homogênea - Matriz:
 Leitura utilizando uma Matriz:
- Feita passo a passo, um componente por vez. Sempre
informando o nome da variável e o índice da linha e coluna a
ser lido.
 Exemplo:
int mat[10][5], i, j;
para (i <- 0 ; i < 10; i ++ ) {
para (j <- 0 ; j < 5; j ++) {
imprima “numero: ";
leia mat[i][j]; }
}
Matrizes
Estrutura Homogênea - Matriz:
 Escrita utilizando uma Matriz:
- Semelhante a leitura, feita passo a passo, um componente
por vez. Sempre informando o nome da variável e os índices
para manipular o elemento.
 Exemplo:
int mat[10][5], i, j;
para (i <- 0 ; i < 10; i ++) {
para (j<- 0 ; j < 5; j ++) {
imprima "num: ", mat[i][j], "\n";
}
}
Matrizes
Estrutura Homogênea - Matriz:
 Analogia:
Matrizes
Estrutura Homogênea - Matriz:
 Exemplo 1:
Ler uma matriz, TAB, de valores inteiros com 3 linhas e
3 colunas.
prog matriz1
int I, J, TAB[4][3];
MATRIZ - Exemplo 1
para (I <- 0; I < 4; I++)
para (J <- 0; J < 3; J++)
leia TAB[I][J];
fimprog
I J
Teste de mesa,
em relação a I e J.
0 0 leia TAB[0][0];
1 leia TAB[0][1];
2 leia TAB[0][2];
1 0 leia TAB[1][0];
1 leia TAB[1][1];
2 leia TAB[1][2];
...
3 0 leia TAB[3][0];
1 leia TAB[3][1];
2 leia TAB[3][2];
14
Matrizes
Estrutura Homogênea - Matriz:
 Exemplo 2:
Ler uma tabela de M linhas e N colunas, o M e N
deverão ser informados pelo usuário, armazenando-as
em uma matriz A. Calcular a soma de todos os
elementos da matriz A
Número de
máx. linhas
prog matriz2
int S, I ,J, M, N, A[100][100];
imprima “Digite o nr de linhas e colunas:”;
leia M;
#recebe qtd linhas
leia N;
#recebe qtd colunas
para (I <- 0; I < M; I++) {
para (J <- 0; J < N; J++) {
leia A[I][J]; }
}
S <- 0;
para (I <- 0; I < M; I++) {
para (J <- 0; J < N; J++) {
S <- S + A[I][J]; }
}
imprima “TOTAL: ”, S;
fimprog
MATRIZ - Exemplo 2
Número de
máx. colunas
Leitura da Tabela
Calculo da soma
dos elementos
Impressão da soma
dos elementos
Matrizes
Estrutura Homogênea - Matriz:
 Exemplo 3:
Ler uma matriz M3x4 e mostrar a soma da 2ª linha da
matriz.
A3x4
=
10
5
8
8
7
0
5
7
0
1
7
10
S
=
26
prog matriz3
int I,J,LINHA,COLUNA, M[100][100], S;
LINHA <- 3;
COLUNA <- 4;
Declarações
para(I <- 0; I < LINHA; I++) {
para (J <- 0; J < COLUNA; J++)
{
imprima "FORNECA O ", I+1, " ", J+1, ": ";
leia M[I][J]; imprima "\n";
} }
imprima "\n";
Leitura da
matriz
S <- 0;
para(J <- 0; J < COLUNA; J++)
{
S <- S + M[1][J];
}
imprima "Soma da linha 2: ",S, "\n";
fimprog
Cálculo da soma
da 2ª linha
Escrita da Soma
Referências
 Lopes, A. & Garcia, G. – Introdução a Programação.
 Schildt – C Completo e Total.
Obrigado
E Agora???
Exercícios!!!
Exercícios Propostos
1 - Faça o programa para preencher os elementos de uma matriz (5 x 3) com o
valor 6. Imprimir a matriz.
2 - Faça um programa para ler uma matriz (3 x 4) e multiplique os elementos
pares por 3 (três) e os elementos ímpares por 2 (dois). Imprimir a matriz
resultado.
3 - Faça o programa para preencher os elementos de uma matriz quadrada (6 x 6)
com o valor 0 quando o valor da linha é igual ao valor da coluna, e com 1
para os demais elementos. Imprimir a matriz.
Matrizes
Estrutura Homogênea - Matriz:
 Exercício 4:
Ler uma matriz M3x4 e gerar um vetor V cujos
elementos são a soma de cada uma das linhas da matriz.
Escrever o vetor V.
A3x4
=
10
5
8
8
7
0
5
7
0
1
7
10
V
=
( 24, 26, 18 )
prog matriz4
int I,J,LINHA,COLUNA, M[100][100], V[100];
LINHA <- 3;
COLUNA <- 4;
Declarações
para(I <- 0; I < LINHA; I++) {
para (J <- 0; J < COLUNA; J++)
{
imprima "FORNECA O ", I+1, " ", J+1, ": ";
leia M[I][J]; imprima "\n";
} }
imprima "\n";
Leitura da
matriz
para(I <- 0; I < LINHA; I++)
{
V[I] <- 0;
para (J <-0; J < COLUNA; J++) {
V[I] <- V[I] + M[I][J]; }
}
imprima "Vetor Resultante\n”;
para (I <- 0; I < LINHA; I++) {
imprima "Vetor Soma[", I+1,"]: ", V[I], "\n";}
fimprog
Cálculo do vetor
soma das linhas
Escrita do vetor
MATRIZ - Exemplo
FIM
Download

MATRIZ - Udesc