matrizes.tex 3.94 KB
Newer Older
1 2 3 4
\documentclass[apostila.tex]{subfiles}


\begin{document}
5 6 7 8
Matrizes
Uma matriz é uma coleção de localiza,cões para armazenamento de dados, todas contendo o mesmo tipo
de dados e acessadas pelo mesmo nome. Cada localização de armazenamento da matriz é chamada de
êlemento da matriz.
9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
8.1 Matrizes Unidimensionais
Uma matriz unidimensional é uma matriz que possui um único subscrito. Um subscrito 'e um n'umero
êntre colchetes colocado após o nome da matriz. Esse número é usado para identificar os elementos
individuais de uma matriz.

Quando uma matriz é declarada, o compilador reserva um bloco de memória com tamanho suficiente
para conter todos os seus elementos. Os elementos individuais da matriz são armazenados seq"uencialmente
na memória.

8.2 Matrizes Multidimensionais
Uma matriz multidimensional tem mais de um subscrito. Uma matriz bidimensional tem dois subscritos,
uma matriz tridimensional tem tr^es subscritos e assim por diante. Não há qualquer limite ao número de
dimensões que uma matriz pode ter em C.

8.3 Inicialização de Matrizes
Uma matriz pode ser total ou parcialmente inicializada no momento em que é declarada. Para fazer isto,
basta colocar um sinal de igualdade após a declaração da matriz e acrescentar uma lista de valores entre
chaves, separados por vírgulas. Estes valores serão atribu'idos pela ordem aos elementos da matriz.

êxemplos:

int matriz[4] = f 100, 200, 300, 400 g
/* equivale a:
matriz[0] = 100; matriz[1] = 200;
matriz[2] = 300, matriz[3] = 400;
*/

int matriz[ ] = f 100, 200, 300, 400 g
/* equivale a:
matriz[0] = 100; matriz[1] = 200;
matriz[2] = 300, matriz[3] = 400;
*/

int matriz[3][2] = f 1, 2, 3, 4, 5, 6 g
/* equivale a:

31

32 CAP

'

ITULO 8. MATRIZES

matriz[0][0] = 1; matriz[0][1] = 2;
matriz[1][0] = 3; matriz[1][1] = 4;
matriz[2][0] = 5; matriz[2][1] = 6;
*/

/* O que seria equivalente a: */
int matriz[3][2] = f f1, 2g, f3, 4g, f5, 6g g

8.4 Referenciando um elemento na matriz
Quando referenciamos um elemento da matriz, o subscrito (número que colocamos entre colchetes seguindo
o nome da matriz) irá especificar a posição do elemento na mesma.

Os elementos da matriz são sempre numerados por índices iniciados em 0 (zero). Ent~ao, o elemento
referenciado pelo número 2 não será o segundo elemento da matriz, mas sim o terceiro. Assim, o 'ultimo
êlemento de uma matriz de tamanho N é referenciado por N-1.

8.5 Lendo um número desconhecido de elementos
Quando não sabemos de antem~ao quantos itens entrar~ao em nossa matriz, podemos usar uma constante
simbólica para definir o tamanho da matriz na declaração. Assim o tamanho da matriz poderá ser
facilmente modificado.

êxemplo:

#define LIM 30 /* define um tamanho p/ a matriz */

void main()
f

/* declara uma matriz de tamanho LIM */
int matriz[LIM];
/* declara um contador e inicia-o com zero */
int i = 0;

do
f

printf("Entre com um numero:");
scanf("%d", &matriz[i]); /* le um numero */
i++;
gwhile (i ! LIM);
g

8.6 Exercício

1. Crie uma função que receba como par^ametros um vetor e o seu tamanho, e que ordene esse vetor.

A função n~ao deverá retornar nenhum valor.

2. Crie uma função que recebe como par^ametros um vetor, o seu tamanho e um valor X e que retorne

a primeira posição do vetor cujo valor é igual ao de X. Se a fun,c~ao n~ao encontrar o elemento
procurado, ela deve retornar -1.

3. Escreva um programa em C para gerar cartões de loteria. Ele recebe como entrada o número de

cartões e a quantidade de números por cartão, além do limite inferior e superior destes n'umeros.
Ao final, o programa deve imprimir estes cartões. (DICA: para gerar números aleatórios, utilize a
função random() da biblioteca stdlib.h).

4. Escreva um programa em C que calcula a determinante de uma matriz 3x3.

8.6. EXERC

'

ICIO 33

5. Escreva um programa em C que calcula a multiplicação entre duas matrizes R e S, sendo R de

dimensão i \Theta  j, e S de dimens~ao j \Theta  k.

34 CAP

'

ITULO 8. MATRIZES

\end{document}