Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Copiare array

  1. #1
    Utente di HTML.it L'avatar di adf89
    Registrato dal
    Jan 2010
    Messaggi
    21

    Copiare array

    Salve a tutti...chiedo scusa per la domanda stupida ma sono alle prime armi con il linguaggio JAVA e vorrei imparare...

    sto provando a copiare i valori di una matrice dentro un array...ma forse non è giusto quello che scrivo...
    codice:
    public static int scegliStazione (int [][] D) 	
    { 		
    int [] m=new int[D.length*D.length];  		
    for(int q=0; q<m.length; q++) 		
    { 			
    for(int i=0; i<D.length; i++) 			
    { 				
    for(int j=0; j<D[0].length; j++) 				
    { 					
    m[q]=D[i][j]; 				
    } 			
    } 		
    }
    la matrice che gli fornisco è una mxm

    qualcuno può aiutarmi???

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Copiare array

    Originariamente inviato da adf89
    Salve a tutti...chiedo scusa per la domanda stupida ma sono alle prime armi con il linguaggio JAVA e vorrei imparare...

    sto provando a copiare i valori di una matrice dentro un array...ma forse non è giusto quello che scrivo...
    codice:
    public static int scegliStazione (int [][] D) 	
    { 		
    int [] m=new int[D.length*D.length];  		
    for(int q=0; q<m.length; q++) 		
    { 			
    for(int i=0; i<D.length; i++) 			
    { 				
    for(int j=0; j<D[0].length; j++) 				
    { 					
    m[q]=D[i][j]; 				
    } 			
    } 		
    }
    la matrice che gli fornisco è una mxm

    qualcuno può aiutarmi???
    Se hai una matrice bidimensionale, a cosa ti servono 3 cicli for?
    al volante son nervoso

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    Effettivamente non è ben chiaro neanche ciò di cui hai bisogno
    Jekkil

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Suggerimento: supponendo di scorrere la matrice per righe (quindi, prima tutta la prima riga, poi tutta la seconda, ecc), la posizione nell'array della generica cella (Riga,Colonna) della matrice si ricava con la seguente formuletta:

    [Riga * NumeroColonne] + Colonna

    PS: questa formuletta tiene già conto del fatto che gli array (e, di conseguenza, le matrici) in Java sono 0-based.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di adf89
    Registrato dal
    Jan 2010
    Messaggi
    21
    Rubox:
    Il primo for scansiona il vettore e gli altri due la matrice...è sbagliato il ragionamento??

    Jekkil:
    vorrei capire come inserire i valori di una matrice(bidimensionale) in un semplice vettore.

    LeleFT:
    Scusami ma nn ho capito tanto...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da adf89
    Rubox:
    Il primo for scansiona il vettore e gli altri due la matrice...è sbagliato il ragionamento??

    Jekkil:
    vorrei capire come inserire i valori di una matrice(bidimensionale) in un semplice vettore.

    LeleFT:
    Scusami ma nn ho capito tanto...
    Se non hai capito quanto ti ha detto LeleFT, allora ti mancano le basi per la programmazione.

    Se hai una matrice e vuoi riempire un array, istanzi l'array di dimensioni adeguate, come da te fatto, e poi con due cicli for scansioni la matrice, e costruisci l'indice di destinazione nell'array a partire dagli indici con cui scorri la matrice stessa. Che è quello che ti ha scritto LeleFT.
    E che è quello che avresti fatto a mano scrivendo su un foglio se ti dicevano di prendere una matrice scritta su una griglia, e mettere i numeri su un'unica riga. Prendi la prima riga, poi prendi la seconda e la metti dietro la prima e così via.
    al volante son nervoso

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    In una matrice qualsiasi (quindi, anche una quadrata come la tua) la dimensione è NxM (con N numero di righe e M numero di colonne).

    Nel tuo caso hai una matrice quadrata, quindi MxM

    Non devi scorrere l'array e salvargli dentro i valori della matrice, ma fare il contrario: scorrere la matrice e valorizzare l'array con l'elemento su cui sei posizionato.

    Quindi, in un dato momento, tu sei posizionato sulla cella della matrice di coordinate (Riga, Colonna).

    Bene: la posizione dell'array in cui memorizzare tale cella è data dalla formuletta che ho postato sopra.

    Quindi, avrai due soli cicli for: uno per le righe della matrice e l'altro, più interno, per le colonne della matrice. All'interno del for più annidato (quello delle colonne) andrai a valorizzare l'array lineare, nella posizione data dalla formuletta che ti ho dato prima.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it L'avatar di adf89
    Registrato dal
    Jan 2010
    Messaggi
    21
    okok..ci sono arrivato, e giuro che ci sono arrivato anche prima del tuo ultimo mex LeleFT

    codice:
    m[i*D[0].length+j]=D[i][j];
    a me dispiace se mobilito mezzo forum per queste cavolate ma vi giuro che molte cose sugli array e i vettori non si trovano...
    non so proprio dove cercare...

    grazie cmq a tutti per avermi aiutato...

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    se programmi alcune cose si danno per scontate.
    Sugli array non trovi nulla? A proposito di cosa?
    Link
    al volante son nervoso

  10. #10
    Utente di HTML.it L'avatar di adf89
    Registrato dal
    Jan 2010
    Messaggi
    21
    si lo so ma sono all'inizio della programmazione... :master:

    cmq parlo proprio in generale...quello che vedo ogni volta sugli array è: come si creano, come si inizializzano e qualche volta capita una somma di valori...per il resto è un casino...

    grazie cmq per il link...con l'inglese non sono un gran chè ma sarà l'occasione giusta per impararlo meglio..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.