Você está na página 1de 22
P ROCESSAMENTO DE D ADOS II Profa. Camila Bezerra

PROCESSAMENTO DE DADOS II

P ROCESSAMENTO DE D ADOS II

Profa. Camila Bezerra

M ATRIZ U NIDIMENSIONAL (V ETOR ) Imagine que você queira armazenar a média final

MATRIZ

UNIDIMENSIONAL(VETOR)

Imagine que você queira armazenar a média final de

1000 alunos.

Com o que sabemos até então, precisaríamos criar 1000

variáveis, e pedir ao usuário a média de cada aluno através de um laço que iria de 1 até 1000.

M ATRIZ U NIDIMENSIONAL (V ETOR )  É uma coleção de variáveis de mesmo

MATRIZ

UNIDIMENSIONAL(VETOR)

É uma coleção de variáveis de mesmo tipo que

compartilham um mesmo nome.

Elementos são referenciados por um único nome e individualizados pela posição que ocupam no

conjunto

Possui tamanho fixo;

M ATRIZ U NIDIMENSIONAL (V ETOR )  Usa-se um número inteiro, chamado de índice

MATRIZ

UNIDIMENSIONAL(VETOR)

Usa-se um número inteiro, chamado de índice para

acessar cada elemento do vetor

Em C, índices iniciam em 0 e vão até n 1

Uso mais comum em C: guardar cadeias de caracteres

Linguagem C não possui um tipo string

S INTAXE <tipo> <identificador>[<tamanho>];  Exemplos  char linha[80]; // vetor de char de

SINTAXE

<tipo> <identificador>[<tamanho>];

Exemplos

char linha[80]; // vetor de char de 80 elementos

int n_digitos[10]; // vetor de int de 10

elementos

float salario[12]; // vetor de float de 12 elementos

S INTAXE <tipo> <identificador>[<tamanho>];  Indexação  Os elementos de um vetor são

SINTAXE

<tipo> <identificador>[<tamanho>];

Indexação

Os elementos de um vetor são alocados em posições contíguas de memória e

acessados através de um índice

M ATRIZ U NIDIMENSIONAL (V ETOR )

MATRIZ UNIDIMENSIONAL (VETOR)

M ATRIZ U NIDIMENSIONAL (V ETOR )
M ATRIZ U NIDIMENSIONAL - V ETOR  Para acessar um elemento, usamos um índice

MATRIZ UNIDIMENSIONAL - VETOR

Para acessar um elemento, usamos

um índice do tipo inteiro que possui

valor mínimo 0

O primeiro elemento no vetor é

referenciado por Vetor[0], o segundo por

Vetor[1], e assim por diante

Se o vetor possui tamanho 10, os índices irão de 0 até 9. Não acesse este vetor com índice 10!

D ECLARAÇÃO E I NICIALIZAÇÃO  Assim como nas variáveis simples, pode-se fazer a inicialização

DECLARAÇÃO E INICIALIZAÇÃO

Assim como nas variáveis simples, pode-se fazer a inicialização de um vetor no momento da declaração.

int vetor[5] = {2, 4, 6, 1, 3};

Após a inicialização, os valores de vetor serão:

vetor[0] = 2

vetor[1] = 4

vetor[2] = 6

vetor[3] = 1

vetor[4] = 3

D ECLARAÇÃO E I NICIALIZAÇÃO  Caso não se especifique o tamanho de um vetor,

DECLARAÇÃO E INICIALIZAÇÃO

Caso não se especifique o tamanho de

um vetor, pode-se fazê-lo através da

inicialização

int vetor[] = {2, 4, 6, 1, 3};

E XEMPLO #include<stdio> #define MAX_NOTAS 10 void main(void) { float notaFinal[MAX_NOTAS]; int i; float soma

EXEMPLO

#include<stdio>

#define MAX_NOTAS 10

void main(void) {

float notaFinal[MAX_NOTAS];

int i; float soma = 0.0; float media = 0;

for(i=0; i<MAX_NOTAS; i++) {

printf(“Digita a nota %d: “);

scanf(“%f”,&notaFinal[i]);

soma += notaFinal[i];

}

cre = soma/MAX_NOTAS;

printf(“Média da turma: %5.2f”, media);

}

M ATRIZ M ULTI D IMENSIONAL  Matrizes Multidimensionais  A linguagem C permite que

MATRIZ MULTIDIMENSIONAL

Matrizes Multidimensionais

A linguagem C permite que sejam declarados vetores de mais de uma dimensão

A forma mais simples de um vetor de mais de uma dimensão é o matriz bidimensional, que constitui um vetor de vetores unidimensionais

Declaração de uma matriz bidimensional de inteiros, contendo 5 vetores de 10 elementos cada um

int vetor[5][10];

M ATRIZ M ULTI D IMENSIONAL  Cada dimensão utiliza seus próprios colchetes  Os

MATRIZ MULTIDIMENSIONAL

Cada dimensão utiliza seus próprios colchetes

Os elementos numa matriz de mais de uma

dimensão são armazenados por linha

Índice interno varia mais rapidamente quando se acessa os elementos na ordem do armazenamento

M ATRIZES M ULTIDIMENSIONAL

MATRIZES MULTIDIMENSIONAL

M ATRIZES M ULTIDIMENSIONAL
M ATRIZES M ULTIDIMENSIONAL  Matrizes com mais de 2 dimensões seguem a mesma sintaxe

MATRIZES MULTIDIMENSIONAL

Matrizes com mais de 2 dimensões

seguem a mesma sintaxe de

declaração, adicionando-se novos grupos de colchetes para cada nova

dimensão desejada

Aplicações com matrizes acima de 2 dimensões são raras

int teste[2][3][4];

M ATRIZES M ULTIDIMENSIONAL  Matrizes Multidimensionais de caracteres  O caso mais típico do

MATRIZES MULTIDIMENSIONAL

Matrizes Multidimensionais de

caracteres

O caso mais típico do uso de matrizes bidimensionais é criar um vetor de

cadeias de caracteres

char palavras[5][11];

cria um vetor de 5 palavras, cabendo 10 caracteres em cada uma

D ECLARAÇÃO E I NICIALIZAÇÃO  Inicialização de Matrizes Multidimensionais  Para inicializarmos matrizes

DECLARAÇÃO E INICIALIZAÇÃO

Inicialização de Matrizes Multidimensionais

Para inicializarmos matrizes

multidimensionais colocamos cada linha entre chaves:

int vetor[4][3] = {

};

{2, 5, 6},

{1, 4, 7},

{0, 8, 8},

{4, 3, 9}

D ECLARAÇÃO E I NICIALIZAÇÃO  Uma vez que os vetores são armazenados por linha,

DECLARAÇÃO E INICIALIZAÇÃO

Uma vez que os vetores são armazenados por linha, podemos também omitir as chaves internas e colocar os elementos na seqüência que serão armazenados

int vetor[4][3] = {2, 5, 6, 1, 4, 7, 0, 8, 8, 4,

3, 9};

M ATRIZ M ULTIDIMENSIONAL É bastante comum utilizar a estrutura for aninhada para acessar os

MATRIZ MULTIDIMENSIONAL

É bastante comum utilizar a estrutura for

aninhada para acessar os elementos de um vetor bidimensional (matriz):

int matriz[3][4]; for (i=0; i<3; i++) for (j=0; j<4; j++) scanf(“%d”, &matriz[i][j]);

// outro laço para imprimir os elementos for (i=0; i<3; i++) for (j=0; j<4; j++)

printf(“%d”, matriz[i][j]);

M ATRIZES COMO ARGUMENTOS DE FUNÇÕES  As matrizes também podem ser passadas como argumento

MATRIZES COMO ARGUMENTOS DE FUNÇÕES

As matrizes também podem ser passadas como argumento de uma função.

Sintaxe:

tipo_função nome_função(tipo_matriz nome[])

O nome de uma variável simples representa o

valor nela contido, entretanto, o nome de uma

matriz representa ser endereço de memória.

M ATRIZES COMO ARGUMENTOS DE FUNÇÕES  Ao passar o nome de uma matriz para

MATRIZES COMO ARGUMENTOS DE FUNÇÕES

Ao passar o nome de uma matriz para uma função não se cria uma nova cópia da matriz; a

passagem é por referência.