Está en la página 1de 22

P ROCESSAMENTO DE D ADOS II

Profa. Camila Bezerra

M ATRIZ U NIDIMENSIONAL (V ETOR )


Imagine que voc queira armazenar a mdia final de 1000 alunos.
Com o que sabemos at ento, precisaramos criar 1000 variveis, e pedir ao usurio a mdia de cada aluno atravs de um lao que iria de 1 at 1000.

M ATRIZ U NIDIMENSIONAL (V ETOR )

uma coleo de variveis de mesmo tipo que compartilham um mesmo nome. Elementos so referenciados por um nico nome e individualizados pela posio que ocupam no conjunto Possui tamanho fixo;

M ATRIZ U NIDIMENSIONAL (V ETOR )

Usa-se um nmero inteiro, chamado de ndice para acessar cada elemento do vetor Em C, ndices iniciam em 0 e vo at n 1 Uso mais comum em C: guardar cadeias de caracteres

Linguagem C no possui um tipo string

S INTAXE
<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>];

Indexao

Os elementos de um vetor so alocados em posies contguas de memria e acessados atravs de um ndice

M ATRIZ U NIDIMENSIONAL (V ETOR )

M ATRIZ U NIDIMENSIONAL V ETOR

Para acessar um elemento, usamos um ndice do tipo inteiro que possui valor mnimo 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 iro de 0 at 9. No acesse este vetor com ndice 10!

D ECLARAO E I NICIALIZAO

Assim como nas variveis simples, pode-se fazer a inicializao de um vetor no momento da declarao.

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

Aps a inicializao, os valores de vetor sero: vetor[0] = 2 vetor[1] = 4 vetor[2] = 6 vetor[3] = 1 vetor[4] = 3

D ECLARAO E I NICIALIZAO

Caso no se especifique o tamanho de um vetor, pode-se faz-lo atravs da inicializao


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 = 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(Mdia da turma: %5.2f, media);

M ATRIZ M ULTI D IMENSIONAL

Matrizes Multidimensionais

A linguagem C permite que sejam declarados vetores de mais de uma dimenso

A forma mais simples de um vetor de mais de uma dimenso o matriz bidimensional, que constitui um vetor de vetores unidimensionais Declarao 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 dimenso utiliza seus prprios colchetes

Os elementos numa matriz de mais de uma dimenso so armazenados por linha

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

M ATRIZES M ULTIDIMENSIONAL

M ATRIZES M ULTIDIMENSIONAL

Matrizes com mais de 2 dimenses seguem a mesma sintaxe de declarao, adicionando-se novos grupos de colchetes para cada nova dimenso desejada

Aplicaes com matrizes acima de 2 dimenses so raras

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

M ATRIZES M ULTIDIMENSIONAL

Matrizes Multidimensionais de caracteres

O caso mais tpico 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 ECLARAO E I NICIALIZAO

Inicializao 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 ECLARAO E I NICIALIZAO

Uma vez que os vetores so armazenados por linha, podemos tambm omitir as chaves internas e colocar os elementos na seqncia que sero 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 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 lao 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 FUNES

As matrizes tambm podem ser passadas como argumento de uma funo.

Sintaxe:
tipo_funo nome_funo(tipo_matriz nome[])

O nome de uma varivel simples representa o valor nela contido, entretanto, o nome de uma matriz representa ser endereo de memria.

M ATRIZES COMO
ARGUMENTOS DE FUNES

Ao passar o nome de uma matriz para uma funo no se cria uma nova cpia da matriz; a passagem por referncia.

También podría gustarte