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
por 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...
Muito obrigado.
-
jmsr
- Novato

-
- Mensagens: 3
- Registado: Sexta Abr 10, 2009 0:32
por 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

-
- Mensagens: 1426
- Registado: Quinta Ago 18, 2005 17:16
- Localização: Massamá
por jmsr » Sexta Abr 10, 2009 6:51
Olá,
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

-
- Mensagens: 3
- Registado: Sexta Abr 10, 2009 0:32
por 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

-
- Mensagens: 1426
- Registado: Quinta Ago 18, 2005 17:16
- Localização: Massamá
por 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

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
por 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

-
- Mensagens: 1426
- Registado: Quinta Ago 18, 2005 17:16
- Localização: Massamá
por 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

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
Voltar para Programação
Quem está ligado:
Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante