Transferir elementos de uma matriz para um array

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Transferir elementos de uma matriz para um array

Mensagempor jmsr » Sexta Abr 10, 2009 0:40

Olá a todos,

Alguém me poderia dar um exemplo de como passar de uma matriz[L][C] a um array[L*C]. Quanto mais tento, mais o resultado é desanimador...:cry:


Muito obrigado.
jmsr
Novato
Novato
 
Mensagens: 3
Registado: Sexta Abr 10, 2009 0:32

Mensagempor bigslb » Sexta Abr 10, 2009 0:50

o k keres é colocar num array o resultado da multiplicação linhas por colunas?? é isso? da um exemplo concreto para a malta perceber o k pretendes.
P4 775 3.0
Albatron PX915PC Pro-G
4x512 DDR400 VData/G.Skill ZX
Sapphire X700Pro
WD 320Gb SATA II 16MB
All in a Aerocool Extremeengine 3t
bigslb
Membro Diamante
Membro Diamante
 
Mensagens: 1426
Registado: Quinta Ago 18, 2005 17:16
Localização: Massamá

Mensagempor jmsr » Sexta Abr 10, 2009 6:51

Olá, :wink:

O que eu quero é passar de uma matriz, por exemplo de dimensão L=3, C=3 para um array de dimensao 9(3*3), para poder conter todos os elementos da matriz.

Exemplo:

Matriz (3*3)

1 2 3
4 5 6
7 8 9

Array: 1 2 3 4 5 6 7 8 9

Alguém sabe como fazer?

Obrigado
jmsr
Novato
Novato
 
Mensagens: 3
Registado: Sexta Abr 10, 2009 0:32

Mensagempor bigslb » Sexta Abr 10, 2009 12:27

int[][] matriz={....};
int[] array = new int[matriz.length*matriz[0].length];
int indiceArray=0;

for(int linhas=0;linhas <matriz.length;++linhas){

for(int linhas=0;colunas <matriz[0].length;++colunas){

array[indiceArray]=matriz[linhas][colunas];
indiceArray+=1;

}
}

axo k funca...experimenta e diz, kk duvida avisa.
P4 775 3.0
Albatron PX915PC Pro-G
4x512 DDR400 VData/G.Skill ZX
Sapphire X700Pro
WD 320Gb SATA II 16MB
All in a Aerocool Extremeengine 3t
bigslb
Membro Diamante
Membro Diamante
 
Mensagens: 1426
Registado: Quinta Ago 18, 2005 17:16
Localização: Massamá

Mensagempor vamosAeles » Sexta Abr 10, 2009 18:26

Boas,

apenas a atenção de que isso funca apenas para matrizes quadradas
[C][C] para [C*C].

A adaptação para L * C com base no cod do bigslb era bastante simples:

1) calcular o tamanho da array resultado com base o comp em cada comp de cada linha da matriz

2) No segundo ciclo em vez de matriz[0].length, ser matriz[linhas].length

[[]]

Assumi que no segundo for querias dizer for(int colunas = .....
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor bigslb » Sexta Abr 10, 2009 18:52

vamosAeles Escreveu:Boas,

apenas a atenção de que isso funca apenas para matrizes quadradas
[C][C] para [C*C].


a mim funcionou...ele percorre sempre todas as posições da matriz kk k seja a dimensao e copia po array...
vamosAeles Escreveu:2) No segundo ciclo em vez de matriz[0].length, ser matriz[linhas].length


isso é igual. tar la 0 ou 1 ou 2 ou 3 é a mm coisa. poiso numero de colunas é sp o mesmo xd.

uma matriz é um array de arrays ou seja kuando criamos uma matriz [L][C] tms a criar um array [L] em k cada posição do mesmo "tem" outro array [C] ao fazer matriz.lenght essa dimensa é o numero de linhas, ao fazer matriz[kk posiçao].length tms a saber a dimensao do array dentro dakele array, k corresponde as colunas, eu meti 0 mas podia meter 1 2 3...etc(obviamente tem de ser um valor dentro da dimensão do 1º array(L-1), caso contrario da outofbounds xd)...

vamosAeles Escreveu:Assumi que no segundo for querias dizer for(int colunas = .....


ya claro, foi gralha minha.
P4 775 3.0
Albatron PX915PC Pro-G
4x512 DDR400 VData/G.Skill ZX
Sapphire X700Pro
WD 320Gb SATA II 16MB
All in a Aerocool Extremeengine 3t
bigslb
Membro Diamante
Membro Diamante
 
Mensagens: 1426
Registado: Quinta Ago 18, 2005 17:16
Localização: Massamá

Mensagempor vamosAeles » Sexta Abr 10, 2009 19:13

Sim, ya tens razão,

quando disse [L*C] estava a pensar em arrays que poderiam não ser 'rectagulares'... mas então não era um array(matriz) [L*C]

[[]]
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 4 visitantes

cron