Fundamentos de
Programação
Tema XII: Matrizes
Docente: Eugénio Xavier Domingos Caetano
Matrizes
 A matriz é um tipo de dado usado para representar
uma certa quantidade de variáveis que são
referenciados pelo mesmo nome.
 Consiste em locações contíguas de memória.
 O endereço mais baixo corresponde ao primeiro
elemento.
 Uma matriz é uma coleção de variáveis de mesmo
tipo, acessíveis com um único nome e armazenados
contiguamente na memória.
 A individualização de cada variável de um vetor é
feita através do uso de índices.
 Os Vetores são matrizes de uma só dimensão.
 Matriz é a uma estrutura de dados do tipo vetor com
duas ou mais dimensões.
 Os itens de uma matriz tem que ser todos do
mesmo tipo de dado.
 Na prática, as matrizes formam tabelas na memória.
Matriz Unidimensional (Vector)
 Sintaxe: tipo nome[tamanho];
 As matrizes tem 0 como índice do primeiro
elemento, portanto sendo declarada uma matriz de
inteiros de 10 elementos, o índice varia de 0 a 9.
Acesso aos elementos do vetor
 Para acessar os elementos de um vetor usa-se
índices.
 O índice define a posição da variável dentro do
vetor.
 Em todos os vetores tem o primeiro elemento na
posição 0(zero).
 Assim, se tomarmos "K" como sendo o tamanho do
vetor a última posição é a de índice "K-1"
int Vector[5];
Vetor[0] = 4; // Coloca 4 na primeira posição de
int Vetor[5]; // declara um vetor de 5 posições
Vetor[0] = 9; // coloca 9 na primeira posição do vetor
Vetor[4] = 30 // coloca 30 na última posição do vetor
 Preenchimento de um vetor com um dado
◦ for(i=0; i<5; i++) for(i=0; i<=4; i++)
Vetor[i] = 30; Vetor[i] = 30;
 Colocar os números de 1 a 5 em Vetor
◦ for(i=0; i<5; i++)
Vetor[i] = i+1;
Exemplos com Vetores
 Colocar os números de 5 a 1 em Vetor
◦ for(i=0; i<5; i++)
Vetor[i] = 5-i;
 Uso de Constantes para definir o tamanho de
um vetor
#include<stdio.h>
#define TAM_MAX 10
double VetReais[TAM_MAX];
int main(){
for(i=0; i<TAM_MAX; i++)
VetReais[i] = TAM_MAX - i; // coloca 5,4,3,2,1 no vetor
return 0;
}
 Copiar os dados de um vetor para outro
#include<stdio.h>
#define TAM_MAX 10
double VetReais[TAM_MAX], Copia[TAM_MAX];
int main(){
for(i=0; i<TAM_MAX; i++)
VetCopia[i] = VetReais[i]; // Copia os dados de um vetor
// para outro
return 0;
}
 Copiar os dados de um VET1 para as primeiras 5
posições de COPIA e VET2 para as outras 5
#include<stdio.h>
#define TAM_MAX 10
// Note que a declaração do vetor "Cópia" cria o dobro de posições
double Vet1[TAM_MAX], Vet2[TAM_MAX], Copia[TAM_MAX*2];
int main(){
for(i=0; i<TAM_MAX; i++)
VetCopia[i] = Vet1[i]; // Copia os dados do primeiro vetor
for(i=0; i<TAM_MAX; i++) // Copia os dados do segundo vetor
VetCopia[i+TAM_MAX] = Vet2[i];
return 0;
}
 Leitura dos dados de um um vetor
#include<stdio.h>
#define TAM_MAX 10
double Vet1[TAM_MAX];
int main(){
for(i=0; i<TAM_MAX; i++)
scanf("%f",&Vet1[i]);
return 0;
}
Matriz Multidimensional
 Sintaxe: tipo nome[tamanho][tamanho] ...;
 Funciona como na matriz de uma dimensão (vetor),
mas tem mais de um índice.
Como atribuir valores a uma matriz?
 Suponha a matriz como declarada:
◦ float Media[5] [2];
 para atribuir uma valor precisamos identificar a
posição usando os índices:
◦ Media [0][0] = 5; //Atribui o valor 5 na primeira linha e
primeira coluna.
◦ Media [1][0] = 7; // Atribui o valor 7 na segunda linha,
primeira coluna
Preenchendo uma matriz
 Para fazer o preenchimento de uma matriz,
devemos percorrer todos os seus elementos e
atribuir-lhes um valor.
 Isto pode ser feito tanto gerando valores para cada
elemento da matriz, como recebendo os valores
pelo teclado.
 Um método interessante para percorrer uma matriz
é usar duas estruturas de repetição for e duas
variáveis inteiras, uma para a linha e a outra para a
coluna.
 Exemplo:
 Suponha uma matriz de 3 linhas por 3 colunas do
tipo inteiro.
 Para percorrer a matriz recebendo seus valores,
podemos fazer:
for ( i=0; i<3; i++ ) {
for ( j=0; j<3; j++ ) {
scanf ("%d", &matriz[ i ][ j ]);
}
}
 Neste trecho de código, a variável i representa a
linha e j a coluna da matriz.
 Usando as repetições, percorremos cada posição
da matriz e recebemos um valor usando scanf();
Mostrando os elementos de uma matriz
 Para mostrar os elementos de uma matriz, podemos
usar o mesmo método, porém usamos o comando
de saída printf().
for ( i=0; i<3; i++ ) {
for ( j=0; j<3; j++ ) {
printf ("%d", matriz[ i ][ j ]);
}
}
 Exemplo:
Conclusoes
 Utilizamos um par de estruturas de repetição for
para primeiramente fazer a leitura dos valores da
matriz.
 Fixamos a linha, ou seja, o índice i enquanto o
índice da coluna j varia até preencher todos os
elementos da linha.
 Depois que uma linha é preenchida, o índice da
linha é incrementado e recomeça o preenchimento
da coluna por coluna com o loop for interno
controlado pelo índice j.

8. matrizes

  • 1.
    Fundamentos de Programação Tema XII:Matrizes Docente: Eugénio Xavier Domingos Caetano
  • 2.
    Matrizes  A matrizé um tipo de dado usado para representar uma certa quantidade de variáveis que são referenciados pelo mesmo nome.  Consiste em locações contíguas de memória.  O endereço mais baixo corresponde ao primeiro elemento.  Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória.
  • 3.
     A individualizaçãode cada variável de um vetor é feita através do uso de índices.  Os Vetores são matrizes de uma só dimensão.  Matriz é a uma estrutura de dados do tipo vetor com duas ou mais dimensões.  Os itens de uma matriz tem que ser todos do mesmo tipo de dado.  Na prática, as matrizes formam tabelas na memória.
  • 4.
    Matriz Unidimensional (Vector) Sintaxe: tipo nome[tamanho];  As matrizes tem 0 como índice do primeiro elemento, portanto sendo declarada uma matriz de inteiros de 10 elementos, o índice varia de 0 a 9.
  • 5.
    Acesso aos elementosdo vetor  Para acessar os elementos de um vetor usa-se índices.  O índice define a posição da variável dentro do vetor.  Em todos os vetores tem o primeiro elemento na posição 0(zero).  Assim, se tomarmos "K" como sendo o tamanho do vetor a última posição é a de índice "K-1" int Vector[5]; Vetor[0] = 4; // Coloca 4 na primeira posição de
  • 6.
    int Vetor[5]; //declara um vetor de 5 posições Vetor[0] = 9; // coloca 9 na primeira posição do vetor Vetor[4] = 30 // coloca 30 na última posição do vetor  Preenchimento de um vetor com um dado ◦ for(i=0; i<5; i++) for(i=0; i<=4; i++) Vetor[i] = 30; Vetor[i] = 30;  Colocar os números de 1 a 5 em Vetor ◦ for(i=0; i<5; i++) Vetor[i] = i+1; Exemplos com Vetores
  • 7.
     Colocar osnúmeros de 5 a 1 em Vetor ◦ for(i=0; i<5; i++) Vetor[i] = 5-i;  Uso de Constantes para definir o tamanho de um vetor #include<stdio.h> #define TAM_MAX 10 double VetReais[TAM_MAX]; int main(){ for(i=0; i<TAM_MAX; i++) VetReais[i] = TAM_MAX - i; // coloca 5,4,3,2,1 no vetor return 0; }
  • 8.
     Copiar osdados de um vetor para outro #include<stdio.h> #define TAM_MAX 10 double VetReais[TAM_MAX], Copia[TAM_MAX]; int main(){ for(i=0; i<TAM_MAX; i++) VetCopia[i] = VetReais[i]; // Copia os dados de um vetor // para outro return 0; }
  • 9.
     Copiar osdados de um VET1 para as primeiras 5 posições de COPIA e VET2 para as outras 5 #include<stdio.h> #define TAM_MAX 10 // Note que a declaração do vetor "Cópia" cria o dobro de posições double Vet1[TAM_MAX], Vet2[TAM_MAX], Copia[TAM_MAX*2]; int main(){ for(i=0; i<TAM_MAX; i++) VetCopia[i] = Vet1[i]; // Copia os dados do primeiro vetor for(i=0; i<TAM_MAX; i++) // Copia os dados do segundo vetor VetCopia[i+TAM_MAX] = Vet2[i]; return 0; }
  • 10.
     Leitura dosdados de um um vetor #include<stdio.h> #define TAM_MAX 10 double Vet1[TAM_MAX]; int main(){ for(i=0; i<TAM_MAX; i++) scanf("%f",&Vet1[i]); return 0; }
  • 11.
    Matriz Multidimensional  Sintaxe:tipo nome[tamanho][tamanho] ...;  Funciona como na matriz de uma dimensão (vetor), mas tem mais de um índice.
  • 12.
    Como atribuir valoresa uma matriz?  Suponha a matriz como declarada: ◦ float Media[5] [2];  para atribuir uma valor precisamos identificar a posição usando os índices: ◦ Media [0][0] = 5; //Atribui o valor 5 na primeira linha e primeira coluna. ◦ Media [1][0] = 7; // Atribui o valor 7 na segunda linha, primeira coluna
  • 13.
    Preenchendo uma matriz Para fazer o preenchimento de uma matriz, devemos percorrer todos os seus elementos e atribuir-lhes um valor.  Isto pode ser feito tanto gerando valores para cada elemento da matriz, como recebendo os valores pelo teclado.  Um método interessante para percorrer uma matriz é usar duas estruturas de repetição for e duas variáveis inteiras, uma para a linha e a outra para a coluna.
  • 14.
     Exemplo:  Suponhauma matriz de 3 linhas por 3 colunas do tipo inteiro.  Para percorrer a matriz recebendo seus valores, podemos fazer: for ( i=0; i<3; i++ ) { for ( j=0; j<3; j++ ) { scanf ("%d", &matriz[ i ][ j ]); } }
  • 15.
     Neste trechode código, a variável i representa a linha e j a coluna da matriz.  Usando as repetições, percorremos cada posição da matriz e recebemos um valor usando scanf();
  • 16.
    Mostrando os elementosde uma matriz  Para mostrar os elementos de uma matriz, podemos usar o mesmo método, porém usamos o comando de saída printf(). for ( i=0; i<3; i++ ) { for ( j=0; j<3; j++ ) { printf ("%d", matriz[ i ][ j ]); } }
  • 17.
  • 19.
    Conclusoes  Utilizamos umpar de estruturas de repetição for para primeiramente fazer a leitura dos valores da matriz.  Fixamos a linha, ou seja, o índice i enquanto o índice da coluna j varia até preencher todos os elementos da linha.  Depois que uma linha é preenchida, o índice da linha é incrementado e recomeça o preenchimento da coluna por coluna com o loop for interno controlado pelo índice j.