Introdução a Programação de Jogos  
Aula 08 – Vetores e Matrizes  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Introdução  
•
•
•
Até agora nós temos usado variáveis simples para armazenar  
valores usados por nossos programas.  
Em várias situações, precisamos armazenar um conjunto de  
valores.  
A partir de agora vamos aprender a usar um mecanismo que  
nos permite armazenar um conjunto de valores na memória  
do computador.  
–
Posteriormente, estes valores podem ser livremente processados de  
forma eficiente, pois já estariam na memória do computador.  
Vetores  
•
•
•
Podemos armazenar um conjunto de valores na memória do  
computador através do uso de vetores (arrays)  
O vetor é a forma mais simples de organizarmos dados na  
memória do computador.  
Com vetores, os valores são armazenados na memória do  
computador em sequência, um após o outro, e podemos  
livremente acessar qualquer valor do conjunto.  
Vetores  
•
•
Ao declarar um vetor (conceito análogo ao de declaração de  
uma variável simples) é necessário informar dimensão do  
vetor.  
–
O tamanho define o número máximo de elementos que poderá ser  
armazenado no espaço de memória que é reservado para o vetor.  
Também é necessário informar o tipo dos valores que serão  
armazenados no vetor (por exemplo, int, float ou double).  
–
Em um vetor, só podemos armazenar valores de um mesmo tipo.  
Declaração e Inicialização  
•
•
Declaração de um vetor:  
int meu_vetor[10];  
–
Reserva um espaço de memória para armazenar 10 valores inteiros no  
vetor chamado meu_vetor.  
Inicialização de algumas posições do vetor meu_vetor:  
meu_vetor[0] = 5;  
meu_vetor[1] = 11;  
meu_vetor[4] = 0;  
meu_vetor[9] = 3;  
Declaração e Inicialização  
•
É possível acessar os valores do vetor através de seu  
índice.  
int meuvetor[5];  
0
1
2
3
4
5
?
?
?
8?  
?1  
meuvetor[0] = 5;  
meuvetor[3] = 8;  
meuvetor[4] = 1;  
Declaração e Inicialização  
•
•
Exemplos de Declaração:  
int a, b[20];  
float c[10];  
double d[30], e, f[5];  
Declaração e Inicialização:  
int teste[5] = {12, 5, 34, 32, 9};  
float vetor1[3] = {2.5, 5.8, 10.1};  
Exemplo 1: Imprimindo os Valores  
Armazenados em um Vetor  
#
include <stdio.h>  
int main(void)  
{
int i;  
float v[6] = {2.3, 5.4, 1.0, 7.6, 8.8, 3.9};  
for (i=0; i<6; i++)  
{
printf("%f", v[i]);  
}
return 0;  
}
Exemplo 2: Somatório dos Valores  
Armazenados em um Vetor  
#
include <stdio.h>  
int main(void)  
{
int i;  
float v[6] = {2.3, 5.4, 1.0, 7.6, 8.8, 3.9};  
float s = 0.0;  
for (i=0; i<6; i++)  
{
s = s + v[i];  
}
printf("%f", s);  
return 0;  
}
Exemplo 3: Encontrar o Maior Valor  
#
include <stdio.h>  
int main(void)  
{
int i;  
float v[6] = {2.3, 5.4, 1.0, 7.6, 8.8, 3.9};  
float maior_valor = v[0];  
for (i=0; i<6; i++)  
{
if(v[i] > maior_valor)  
maior_valor = v[i];  
}
printf("%f", maior_valor);  
return 0;  
}
Exemplo 4: Calculo da Média  
•
Dada uma turma com n alunos (onde n é conhecido  
a priori), crie um programa para obter a notas dos  
alunos e calcula a média da turma.  
#
#
include <stdio.h>  
define NUM_ALUNOS 6  
int main (void)  
{
float notas[NUM_ALUNOS];  
float media, soma = 0.0;  
int i;  
/
* leitura dos dados via teclado para o vetor */  
for(i=0; i<NUM_ALUNOS; i++)  
{
printf("Entre com a nota do aluno %d: ", i+1);  
scanf("%f", &notas[i]);  
}
/
* soma das medias dos alunos */  
for(i=0;i<NUM_ALUNOS;i++)  
soma = soma + notas[i];  
media = soma/NUM_ALUNOS;  
printf("Media da turma = %.2f\n.", media);  
return 0;  
}
Matrizes  
•
•
•
Uma matriz representa e armazena um conjunto bidimensional de valores  
na memória do computador.  
É uma tabela de variáveis de mesmo tipo que ocupa uma região contínua  
de memória.  
Exemplo de matriz de inteiros:  
3
7
1
5
6
1 8 6 1  
2 5 4 9  
9 3 1 2  
8 6 7 3  
4 9 2 1  
Matrizes  
•
•
Para declarar uma matriz, precisamos especificar o tipo das  
variáveis da matriz e o tamanho das duas dimensões da  
matriz.  
tipo nome_matriz[tamanho_x][tamanho_y];  
Exemplo:  
int minha_matriz[3][3];  
?
?
?
? ?  
? ?  
? ?  
Matrizes  
•
É possível acessar os valores da matriz através de seu índice bidimensional.  
int minha_matriz[3][3];  
0
1 2  
0
5
?
? ?1  
1
2
? ? ?  
? ?8 ?  
minha_matriz[0][0] = 5;  
minha_matriz[1][2] = 8;  
minha_matriz[2][0] = 1;  
Matrizes  
•
•
Exemplos de Declaração:  
int a[10][10];  
float matriz1[20][20];  
int mapa[100][100];  
Declaração e Inicialização:  
int teste[3][3] =  
{{2,5,1},{3,7,2},{9,1,5}};  
Matrizes  
#
include <stdio.h>  
Exemplo 1:  
int main(void)  
{
“Crie um programa que represente o conteúdo  
float notas[3][6], media;  
int x, y;  
da tabela de notas abaixo e escreva a média de  
cada uma dos alunos”  
.
..  
for(y = 0; y < 6; y++)  
Nota1  
7.5  
Nota2  
8.5  
Nota3  
7.8  
{
media = 0;  
Aluno 1  
Aluno 2  
Aluno 3  
Aluno 4  
Aluno 5  
Aluno 6  
for(x = 0; x < 3; x++)  
8.4  
10.0  
6.8  
9.5  
{
media = media + notas[x][y];  
9.2  
9.1  
}
4.0  
5.2  
4.6  
media = media/3;  
printf(“Aluno %d Media: %f“, y, media);  
5.7  
3.4  
4.3  
}
4.3  
6.0  
5.8  
return 0;  
}
Exercícios  
Lista de Exercícios 05 – Vetores  
http://www.inf.puc-rio.br/~elima/prog-jogos/