Conheça a iniciativa da Biblioteca dos Desenvolvedores  
Índice da Biblioteca  
Área dos Usuários  
Fórum de Discussão  
Forúm
 
 

19 - Array

O array é uma das operações em programação de jogos muito importante.

Um array é uma variavel comum que pode armazenar mais de um valor porém esse valor precisa ser sempre do mesmo tipo.

Um Array é um grupo de posições de memoria consecutivas, todas de mesmo nome e mesmo tipo. Para fazer referência a uma posição particular de um array, especificamos o nome do array e o número da posição daquele elemento no array.

Vamos criar um array de nome números com 12 elementos.
O primeiro elemento é referenciado como numeros[0] e o ultimo como numeros[11].
Assim podemos ter vários valores em uma array e acessar esse valor atravez de um indice que é chadado de subscrito.

c[0] = 10
c[1] = 02
c[2] = 25
.
.
c[11] = 01

Um subscrito pode ser uma operação inteira. Por exemplo, se a = 5 e b = 6 o comando:
c[ a + b] += 2;
adiciona 2 ao elemento de array c[11].

e para imprimir um valor de uma posição de uma array:
cout << c[0] << endl;

ou seja, cada subscrito de uma array recebe um valor e esse valor interage em seu programa como se fosse uma variavel simples.

Operação matemática

c = numero[11] / 2

Uma array pode ser Iniciamos da seguinte forma

tipo nome[quantidade de elementos] = { valor dos elementos separado por virgurla };

int teste[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
ou apenas
int teste[10];

bool teste[2]

char teste[3]


CÓDIGO...

#include<iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
  int numeros[10] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; // array de 10 elementos
  inta=2, b=4;

  cout << numeros[1] << endl;
  cout << numeros[2] + 3 << endl;
  cout << numeros[a + b] << endl;
  cout << ++numeros[4] << endl;

cin;

return 0;

}


FIM DE CÓDIGO...

 

Observe que o valor 10 está no elemento numeros[0]
observe que numeros[a + b] é igual a numeros[6]
observe que ++numeros[4] incrementa o valor de 6

 

 

Arrays Multidimensionais

Os arrays em C++ podem ter vários subscritos, um uso comum de arrays com vários subscritos é representar tabelas de valores que consistem em informações organizadas em linhas e colunas. Para identificar um elemento especifico de uma tabela, devemos especificar dois subscritos: o primeiro identifica a linha do elemento e o segundo a coluna.

É com este tipo de array que iremos fazer graficos em 3D e cenários para jogos 2D.

 

  coluna 0 coluna 1 coluna 2
linha 0 a[0][0] a[0][1] a[0][2]
linha 1 a[1][0] a[1][1] a[1][2]
linha2 a[2][0] a[2][1] a[2][2]

Um array com vários subscritos pode ser inicializado em sua declaração da mesma forma que um array de apenas um subscrito.

int array[2][2] = { {0,0}, {0,1} };


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

Assim sendo, na segunda linha, inicializamos array[0][0] com 1, array[1][0] com 3 e array[1][1] com 4.

O Programa abaixo mostra como enviar esse tipo de variável para funções.

 
CÓDIGO...

// Inicializando arrays multidimensionais
#include <iostream>

using std::cout;
using std::endl;

void imprimir( int [][3] );

int main()
{
   int array1[2][3] = { {1,2,3} , {4,5,6} },
       array2[2][3] = { 1,2,3,4,5 },
       array3[2][3] = { {1,2}, {4} };

   cout << "Valores em array1 por linha: "<< endl;
   imprimir( array1 );

   cout << "Valores em array2 por linha: "<< endl;
   imprimir( array2 );

   cout << "Valores em array3 por linha: "<< endl;
   imprimir( array3 );

   std::cin;

   return 0;
}

void imprimir ( int a[][3] )
{
   for ( int i = 0; i<2; i++ )
   {
      for ( int j = 0; j<3; j++ )
         cout << a[i][j] << ' ';   

      cout << endl;
   }
}


FIM DE CÓDIGO...

Observe no exemplo acima que as forma de se iniciar são várias, mas as formas de trabalhar com arrays multidimencionais são iguais as unidimensionais, com a possibilidade de se escrever dados em várias colunas.

 

 


Contribuidor
Adriano Waltrick
13/06/2007


 

« Anterior

 

Próximo »

 
 

01/06/2007 (C) Copyright. Todos os Direitos Reservados. Leia a política de privacidade do portal.
É proibida a cópia de conteúdo deste site de acordo com a Lei Brasileira de Direitos Autorais.