Você está na página 1de 36

Centro Universitário de Ensino Superior do Amazonas – CIESA

Sociedade Amazonense de Educação e Cultura Ltda.

Curso: Curso Superior de Tecnologia em Análise e Desenvolvimento


de Sistemas
Disciplina: Estrutura de Dados I
Período: 1º
Professor: Raimundo Martins

Matriz em C
Objetivo

Aprender o uso da estrutura de dados conhecida


como matrizes, declaração, inicialização,
atribuição de valores e acesso ao conteúdo.
Introdução
Introdução
Introdução
Motivação
Utilizar um grande número de variáveis relacionadas sem a
necessidade de criar nomes diferentes.
Exemplo:
Fazer um programa para ler as notas de 4 provas para 50 alunos de
uma turma e calcular a média do aluno e média da turma.
Motivação
Motivação

Se tornaria inviável
Motivação
O que é uma matriz?
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.

• As variáveis compostas homogêneas correspondem a um conjunto de


elementos de mesmo tipo e que compartilham um mesmo nome;
• Cada um dos elementos é unicamente identificado por um número
inteiro (índice) que especifica a sua localização dentro da estrutura;
• Estas variáveis podem ser unidimensionais (vetores) ou
multidimensionais (matrizes);
Declaração de matrizes
Matriz em linguagem C
Exemplo de declaração de matriz com 2 dimensões usando
linguagem C

float Media[5][2];
Onde:
O valor 5 representa a quantidade de linhas.
O valor 2 representa a quantidade de colunas.
Dizemos que esta matriz é do tipo 5 X 2.
Matriz em linguagem C
Como temos 5 linhas com 2 posições de armazenamento em cada
linha, temos capacidade para armazenar até 10 elementos (itens)
do tipo float.

Será necessário utilizar um índice para cada dimensão da matriz,


logo uma matriz bidimensional terá 2 índices, um para posicionar a
linha, outro para a coluna.

Assim, como no vetor, o índice da primeira posição é zero.


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.
Como atribuir valores a uma matriz?
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:

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().
Exemplo 1:
Programa em C que preenche uma matriz com 3 linhas X 3 colunas e depois mostra os
dados recebidos.
#include<stdio.h>
#include<conio.h>
int main (void )
{
int matriz[3][3],i, j;
printf ("\nDigite valor para os elementos da matriz\n\n");
for ( i=0; i<3; i++ ){
for ( j=0; j<3; j++ ) {
printf ("\nElemento[%d][%d] = ", i, j);
scanf ("%d", &matriz[ i ][ j ]);
}
}
Exemplo 1:
Programa em C que preenche uma matriz com 3 linhas X 3 colunas e depois mostra os
dados recebidos.

printf("\n\n******************* Saida de Dados *********************


\n\n");
for ( i=0; i<3; i++ ){
for ( j=0; j<3; j++ )
{
printf ("\nElemento[%d][%d] = %d\n", i, j,matriz[ i ][ j ]);
}
}
getch();
return(0);
}
Tela que mostra a execução do código do exemplo:
Exemplo 2:
Vamos usar a mesma matriz com 3 linhas X 3 colunas para imprimir no layout de matriz

#include<stdio.h>
#include<conio.h>
int main (void )
{
int matriz[3][3],i, j;
printf ("\nDigite valor para os elementos da matriz\n\n");
for ( i=0; i<3; i++ ){
for ( j=0; j<3; j++ ) {
printf ("\nElemento[%d][%d] = ", i, j);
scanf ("%d", &matriz[ i ][ j ]);
}
}
Exemplo 2:
Bloco de impressão no layout de uma matriz
Tela que mostra a execução do código do exemplo 2:
Análise do exemplo:
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.

A saída de dados usa o mesmo princípio para percorrer a matriz e


exibir os dados.
Operação com Matriz
É possível realizar operações matemáticas com os valores de uma
matriz após a sua atribuição.

Exemplo 3: Faça um programa que lê uma matriz de 3 x 3


elementos usando um comando for. Faça a soma de cada
elemento da matriz com o valor 30 e imprime o resultado.
Operação com Matriz
Exemplo 3:
Operação com Matriz
Exemplo 3:
Operação com Matriz
Exemplo 3:
Operação com Matriz
Exemplo 3:
Exercícios de Matriz

Realize os exercícios com o objetivo de fixar o conhecimento


sobre a estrutura de dados matriz.
Exercício 1

Faça um programa em C que lê uma matriz de 3 x 3


elementos usando a estrutura for, multiplicar cada elemento
por 5 e imprimir o resultado.
Exercício 2

Faça um programa em C que lê duas matrizes de 3 x 3


elementos usando a estrutura for. Somar as duas matrizes e
salvar o resultado em uma terceira matriz. Imprimir a matriz
de resultado.
Exercício 3

Faça um programa em C que lê duas matrizes de 4 x 4


elementos usando a estrutura for, conte e escreva quantos
valores maiores que 10 ela possui.
Exercício 4
Faça um programa em C que leia uma matriz de 3 x 3
elementos. Calcule a soma dos elementos que estão na
diagonal principal.
Explicação:
Só existe diagonal principal em matriz quadrada.
Ex: Mat 3 x 3 (mesmo número de linhas e colunas)
Exercício 5
Faça um programa em C que leia uma matriz de 3 x 3
elementos. Calcule a soma dos elementos que estão na
diagonal secundária.

Explicação:
Só existe diagonal secundária em matriz quadrada.
Ex: Mat 3 x 3 (mesmo número de linhas e colunas)

Você também pode gostar