[Resolvido]Duvida com array?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido [Resolvido]Duvida com array?

Mensagem por Carlos L. em Seg 07 Fev 2011, 00:04

Opa pessoal beleza, tom com uma dúvida cruel eu sei o que são arrays 1D e 2D mais não sei como utilizalas.
Por Exemplo, eu tenho a seguinte array 1D.
Código:
array[0]=1;
array[1]=5;
Certo já declarei as arrays mais na hora de utiliza-lás em um outro código como adiciono ela e como ela vai ser interpretada naquela código.
Agora já nas arrays 2D, por exemplo.
Código:
array[0,1]=1;
array[0,2]=5;
Nesse caso como elas serão executadas, na hora da execução elas seguirão sua ordem de linhas, como o código interpretara ela.

Ou seja não sei nada sobre a utilização de arrays se alguém poder me ajudar.
pirat

Carlos L.

Ranking : Nota C
Número de Mensagens : 270
Data de inscrição : 26/09/2010
Notas recebidas : C
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Janx em Seg 07 Fev 2011, 00:20

Pense na array como uma tabela. A 1D é uma tabela de 1 linha e 'infinitas' colunas. A 2D é infinitas linhas e colunas.

Código:
array[0]=1;
array[1]=5;

show_message(string(array[0])); //Vai aparecer uma mensagem " 1 "

array2[0,1]=1;
array2[0,2]=5;

show_message(string(array2[0,1])); //Vai aparecer uma mensagem " 1 "

As arrays são como uma variavel com um só nome e vários valores. Digamos que a tabela é o nome da variável e nas colunas/linhas são guardados os muitos valores dela.

Pegar o valor é só você especificar de qual coluna/linha quer saber.
array2[0,2] -> Coluna 0, linha 2
array[6] -> Coluna 6, linha unica

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Iasmim Ribeiro em Seg 07 Fev 2011, 10:03

Janx disse:
"array2[0,2] -> Coluna 0, linha 2"

Na verdade é o oposto array[linha,coluna]

pra complementar a explicação anterior...

um array qdo é uni-dimensional - uma única direção, ele é chamado de vetor...
e já o bi-dimensional - é o q possui linhas e colunas...chamado de matrizes(igual aqla lá dá escola)
Eu te sugiro toda vez q for fazer algo..principalmente com arrays...faça o teste de mesa....

Lembrando:
todo array tem o seu tipo..tipo vc ñ pod enfiar tdo tipo d dados em um único array...dependendo do caso vc cria outro

array1[2,2] = 24 //na linha 2, coluna 2, será add o valor 24
array1[2,3] = Iasmim //na linha 2, coluna 3, será add Iasmim

Isso dará erro pq o primeiro valor é um Int...e o segundo uma String..

mas se vc fizer assim:
array2[2,3] = Iasmim //ñ levem em consideração as ""-foi um mero exemplo, e ñ coloquei por causa da variação d linguagem p/ linguagem...
Estará td certo...
Pense no array como uma variavel, q tem o poder d armazenar muitos dados...
E pra vc manipular as posições, vc mexe nos indices...q são esses números entre colchete...


att.

Iasmim Ribeiro

Número de Mensagens : 65
Idade : 24
Data de inscrição : 05/07/2010
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por vinians em Seg 07 Fev 2011, 11:48

Iasmim Ribeiro escreveu:
Janx disse:
"array2[0,2] -> Coluna 0, linha 2"

Na verdade é o oposto array[linha,coluna]

pra complementar a explicação anterior...

um array qdo é uni-dimensional - uma única direção, ele é chamado de vetor...
e já o bi-dimensional - é o q possui linhas e colunas...chamado de matrizes(igual aqla lá dá escola)
Eu te sugiro toda vez q for fazer algo..principalmente com arrays...faça o teste de mesa....

Lembrando:
todo array tem o seu tipo..tipo vc ñ pod enfiar tdo tipo d dados em um único array...dependendo do caso vc cria outro

array1[2,2] = 24 //na linha 2, coluna 2, será add o valor 24
array1[2,3] = Iasmim //na linha 2, coluna 3, será add Iasmim

Isso dará erro pq o primeiro valor é um Int...e o segundo uma String..

mas se vc fizer assim:
array2[2,3] = Iasmim //ñ levem em consideração as ""-foi um mero exemplo, e ñ coloquei por causa da variação d linguagem p/ linguagem...
Estará td certo...
Pense no array como uma variavel, q tem o poder d armazenar muitos dados...
E pra vc manipular as posições, vc mexe nos indices...q são esses números entre colchete...


att.
Ótima explicação Iasmim, porém o modo de interpretar as dimensões de um array fica a cargo do programador, tanto faz [linha, coluna] ou [coluna, linha]. Não há nada que impeça uma tabela de ser interpretada desse ou daquele jeito.

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Carlos L. em Seg 07 Fev 2011, 14:24

Deixa eu ver se eu entendi direito. Uma array e a mesma coisa que uma variável, mas ela armazena muitos dados com a simples mudança de seus índices.
Exemplo.:
Código:
array[0] = 5; // Na array 0 ela irá adicionar o valor 5;
array[1] = 'Game Maker'; // Nesse caso vai dar erro pois a primeira eu armazenei um numero e na segunda eu adicionei uma string?
Agora no caso das matrizes, se eu fizer do mesmo jeito que a de cima também dará erro, mas por que se ela age do mesmo jeito que uma variável.
E no caso das linhas e das colunas tem um limite ou pode armazenar o numero que quiser?
Exemplo.:
Código:
array[0,1] = 1;
array[50,20] = 2;
Question

Carlos L.

Ranking : Nota C
Número de Mensagens : 270
Data de inscrição : 26/09/2010
Notas recebidas : C
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por vinians em Seg 07 Fev 2011, 14:40

Sim, uma vez que você inicialize o primeiro elemento de um vetor com um tipo de dados (string ou numero) deve continuar com aquele tipo nos outros elementos do mesmo vetor.
Para usar um vetor com mais dimensões você deve inicializa-lo antes de referenciar o seu conteudo.
Por exemplo, supondo que você precise armazenar uma tabela de jogo de damas de 10 x 10 elementos você faria assim:
Código:

var i, j;
for (i = 0; i < 10; i += 1)
{
  for (j = 0; j < 10; j += 1)
  {
      damas[i, j] = 0; //casa desocupada
  }
}
Nesse caso foi inicializado um vetor chamado damas de 10 x 10 elementos começando do 0 (zero) ou seja o indice variará de 0 a 9 colunas por 0 a 9 linhas totalizando 100 elementos.
Assim sendo, apos inicializado você pode "usar" o valor ali armazenado. Veja:
Evento DRAW:
Código:

draw_text(x, y, "Valor do elemento em 5, 5 do array Damas:" + string(damas[5, 5]));
O seu programa (jogo) pode usar então os elementos do array damas normalmente.
flws!


vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Carlos L. em Seg 07 Fev 2011, 15:07

Opa valeu pela ajuda, se eu entendi direito uma array iniciada com um certo elemento deve sempre seguir aquele elemento em suas respectivas arrays.
Já no caso do limite da array sempre deve-se fazer uma verificação para colocar um limite no numero de arrays que se deseja, ou por exemplo ao chegar na array...
Código:
array[0,1] = 1;
...
array[0,9] = 9;
Deve-se mudar o numero da coluna.
Código:
array[1,1] = 2;
...
array[1,9] = 9;
array[2,1] = 3;
E assim por diante.

Carlos L.

Ranking : Nota C
Número de Mensagens : 270
Data de inscrição : 26/09/2010
Notas recebidas : C
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por vinians em Seg 07 Fev 2011, 15:20

Carlos L. escreveu:Opa valeu pela ajuda, se eu entendi direito uma array iniciada com um certo elemento deve sempre seguir aquele elemento em suas respectivas arrays.
Já no caso do limite da array sempre deve-se fazer uma verificação para colocar um limite no numero de arrays que se deseja, ou por exemplo ao chegar na array...
Código:
array[0,1] = 1;
...
array[0,9] = 9;
Deve-se mudar o numero da coluna.
Código:
array[1,1] = 2;
...
array[1,9] = 9;
array[2,1] = 3;
E assim por diante.
Atribuir valores a um array dificilmente vai dar um erro de "array não declarado" o que geralmente dará erro é fazer referencia (usar o valor, mostrar, calcular etc) de um array que nao tenha sido atribuido valores nele antes. No Game Maker você não especifica diretamente o limite de um array como no Delphi por exemplo. Uma vez atribuido valor, ele estará disponível ao programa. Isso significa que :
Código:

meu_array[1,2] = "teste";
Nao inicializa automaticamente o meu_array[1, 1].
Nem mesmo em arrays unidimensionais (vetores), veja:
dados[5] = 10;
Se eu fizer:
Código:

draw_text(x, y, "Valor da posicao 4:" + string(dados[4]));
Isso dará um erro pois não foi inicializada ainda essa posição.
flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Carlos L. em Seg 07 Fev 2011, 15:22

Valeu Vinians agora sim deu para entender. Muito obrigado a ajuda de todos.

Carlos L.

Ranking : Nota C
Número de Mensagens : 270
Data de inscrição : 26/09/2010
Notas recebidas : C
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Duvida com array?

Mensagem por Conteúdo patrocinado Hoje à(s) 03:50


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum