24 – matrizes - ubidi.ubi.pt/.../teorica_tiposestruturados-matrizes.pdf · 2008. 9. 19. · o...

Post on 05-Mar-2021

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

24 – Matrizes

Matrizes são vectores de duas dimensões, e de uma maneira geral são consideradas como um número (quantidade) de vectores linhas (“deitados” ). Apesar de menos comum, podemos ver também uma matriz como sendo vectores colunas (“de pé”).

Declaração de um matriz:tipo nome [linhas][colunas];onde:tipo – pode ser inteiro, real ou caracter

(int, float,char) linhas – é o número de linhas (“a altura”)colunas – é o número de colunas (“a largura”)

Exemplos:

...int m [10][10];...

“é a declaração de um matriz de 10 x 10 (10 linhas por 10 colunas ) elementos inteiros”

Exemplos:

...float mat [4][8];...

“é a declaração de um matriz de 4 x 8 (4 linhas por 8 colunas) elementos reais”

Exemplos:

...char mchar [24][80];...

“é a declaração de uma matriz de 24 x 80 (24 linhas por 80 colunas ) caracteres”

Índices

O trabalho com matrizes é similar ao com vectores, devemos acessar os elementos individualmente.Mas aqui teremos que utilizar 2 índices, um para a linha e um para a coluna, de maneira que possamos indicar a posição de cada um dos elementos.

Índices

Uma matriz de 2 x 4 elementos, tem os índices das linhas de 0 a 1 e das colunas de 0 a 3 onde os elementos são referenciados por: m [0][0] , m [0][1] , m [0][2] , m [0][3], m [1][0] , m [1][1] , m [1][2] , m [1][3] .

Como trabalhar com matrizes?

Como os vectores, cada elemento é uma variável (simples)!

Exemplos:

...int m [10][10];...m [0][5] = 8;m [3][3] = 10;...

Observação:

Para:... int m[10][10]; ...É errado!... m = 2; ...... scanf(“%d”,&m[1] ); ...Pois faltam índices!

CUIDADO !!!...int m [2][2];m [2][0] = 5;m [1][2] = 10;...ESTÃO ERRADOS !!!

A matriz m só tem 2 linhas e 2 colunas, estes elementos seriam da terceira linha e da terceira coluna!

25 - A utilização de repetições

Se queremos trabalhar com a matriz toda, deveremos utilizar uma repetição dentro de outra.Suponha que queremos escrever os elementos de uma matriz de 4 x 4 inteiros.

i = 0

i <= 3sim

não

escreverm[i][j]

escrever“\n”

j = 0 i = i + 1

um for !!!j <= 3

j = j + 1

sim

não

e dentro mais um for !!!

...for ( i = 0; i <= 3; i = i +1)

{for ( j = 0; j <= 3; j = j +1)

printf(“%d”,m[i][j]);printf(“\n”);

}...

Observação:

Se quisermos trabalhar com apenas uma linha ou coluna, fazemos como se fosse um vector (e a rigor é!).

Exemplos:

Leitura da segunda linha.

...int m[4][4];...for ( i = 0; i <= 3; i = i +1)

{printf(“Pf o de índice %d\n”,i);scanf(“%d”,&m[1][i]);

}...

Exemplos:

Escrita da terceira coluna.

...int m[4][4];...for ( i = 0; i <= 3; i = i +1)printf(“O de índice %d é %d\n”,i,m[i][2]); ...

Exemplos:

Comparação do elementos da diagonal.

...int m[4][4];...for ( i = 0; i <= 3; i = i +1)

if(m[i][i] == 0) printf(“O de índice %d da diagonal é

nulo\n”,i); ...

Exemplos:

Encontrar o maior elemento de um vector de 10 elementos inteiros.

i <= 9sim

não

escrever “o maior é”

maior

i = 0

maior = v[1]

simmaior = v[i]v[i] > maior

não

i = i + 1

...int i, maior, v[10];...maior = v[1];for ( i = 0; i <= 9; i = i +1)

if (v[i] > maior) maior = v[i];

printf(“O maior é %d\n”,maior); ...

Observação:Obviamente todos os elementos do vector vjá devem ter valores no momento da comparação com a variável maior.Poderíamos escolher qualquer elemento do vector como valor inicial de maior. Ou mesmo um valor que soubéssemos ser menor do que todos do vector (exemplo se vector tivesse apenas valores positivos , o valor inicial de maior poderia ser zero ).

Exemplos:

Calcular a soma dos elementos da diagonal (o traço) de uma matriz de 4 x 4 reais.

i <= 3sim

não

escrever “o traço é”

soma

i = 0

soma = 0

soma = soma + m[i][i] i = i + 1

...int i; float m[4][4], soma;...soma = 0;for ( i = 0; i <= 3; i = i +1)

soma = soma + m[i][i];printf(“O traço é %f\n”,soma); ...

Observação:Todos os elementos da diagonal da matriz m já devem ter valores no momento de serem somados.

top related