Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    3

    scrivere due volte lo stesso dato in una matrice in due colonne diverse

    Ciao mi stò approcciando con grande entusiamo a java..... ma sono solo agli inizi.
    Tante cose le ho imparate da questo forum leggendo altre discussioni ma a questa domanda non ho trovato una risposta spero tanto qualcuno possa illuminarmi.
    Come scritto nel Titolo mi chiedevo se è possibile scrivere lo stesse identiche righe in due colonne diverse di una matrice. Faccio un esempio


    codice:
    public class Matrice {
    public static void main(String[]args){
        public int[][] Matrice = new int [8][4];    
        public int[] dati= new int [8];
       
     public Matrice (){
        }
    
    public  int[] generadati(){    
    int IntRnd;
    
    for (int i=0;i<8;i++){
        Random r1 = new Random();
        IntRnd=r1.nextInt(2);
        dati [i] = r1.nextInt(2);}
    return dati;
       }
    
     public int[][]  TrasferiemntoDatiMatrice () {
            int DNumber=0;  
            int SNumber=0; 
            
                   
                    for (int Cursore:dati){
                       Raid0[S][DNumber]=Cursore; 
                       if (DNumber<3)
                        DNumber++; 
                        else {
                                        DNumber=0; 
                                        SNumber++;} 
                    
                }
                    return Matrice;
    }
    }
    }
    con questo codice distribuisce i dati s delle righe in quattro colonne diverse ma sei io vorrei creare due colonne gemelle e quando scrive lo fà contemporaneamente che so ho quattro colonne e scrive contemporaneamente le righe sulle colonne 0 e 2 ed 1 e 3.
    Chiedo scusa se sono stato prolisso
    Ultima modifica di LeleFT; 14-07-2014 a 13:47 Motivo: Sistemata chiusura tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Cerca di rispiegare il tutto meglio, magari facendo un esempio concreto... davvero, non si capisce nulla.

    PS: cerca di seguire le regole di nomenclatura di Java

    - Solo i nomi delle classi e delle interfacce hanno la maiuscola, tutto il resto deve iniziare con la lettera minuscola)

    - I nomi delle costanti si scrivono tutto in maiuscolo

    - Gli identificatori (variabili e metodi) hanno il nome scritto a "gobba di cammello": l'iniziale minuscola e la maiuscola ad ogni inizio di parola (esempio: componiMatrice()).


    Inoltre, cerca di non mescolare i nomi: hai usato Matrice per indicare (correttamente) il nome della classe... poi nel main hai creato un array di interi chiamato Matrice (cioè... vuoi farti del male: le variabili devono iniziare con la minuscola... e possibilmente non avere lo stesso nome della classe in cui sono usate).


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    3
    Lele grazie per la cortese risposta chiedo venia per gli orrori commessi alcuni dovuti alla fretta in verità.
    Proverò a spiegarmi meglio...speriamo..
    Studiavo le matrici applicando il foreach, con il for ho maggior dimestichezza, e mi sono reso conto che non riesco a scrivere gli stessi dati contemporaneamente in due contenitori quando devo farli partire da righe diverse da 0 .
    provo a spiegarmi con un esempio:

    Immagino di avere un array di array in cui in uno metto i dati generati da un ciclo e nell'altro il numero dei contenitori che dovranno contenere questi dati
    ad esempio utilizzando il ciclo for scriverei, metto solo i cicli for dando per scontato il resto,il codice cosi :


    codice:
    public int [][] mat= new int [8][4];// una matrice che nella prima contiene dati generati con Random e nel secondo sono i numeri dei contenitori che devono contenere questi dati 
    //metodo che genera i dati 
    //metodo che deve prendere tutti i dati generati con un ciclo foreach passarli ad altro oggetto...
    for (int cur:dati){// dati e l'oggetto che contiene i dati generati e li passa all'oggetto cursore
    nome[][]=cur;
    //Adesso per distribuirli nei contenitori con il ciclo for non ho problemi mentre con foreach 
    nn capisco come impostare
    // con i cicli for farei:
    for (i=0;i<nome.lengt;i+=2){
    if (i<=nome.length){
    contenitore1.add(nome[i]);
    contenitore3.add(nome[i]);
    }
    }
    
    for (i=1;i<nome.lengt;i+=2){
    if (i<=nome.length){
    contenitore0.add(nome[i]);
    contenitore2.add(nome[i]);
    }
    }

    Spero d'essermi spiegato bene....in cosa non riesco.
    Non devo fare nessun compito ne progetto vorrei solo capire fin dove utilizzare il foreach
    grazie
    Ultima modifica di LeleFT; 17-07-2014 a 09:28 Motivo: Corretto tag CODE di chiusura

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Continuo a non capirci nulla: tra matrici di interi, che non vengono usate da nessuna parte (vedi, nel tuo esempio "mat"), contenitori (che non si sa cosa siano, da dove vengano, a cosa servano, ecc), variabili sconosciute (vedi l'array "nome", che non si sa di che tipo sia, cosa contenga, ecc) è davvero difficile cercare di capire cosa vuoi ottenere. Quando dicevo di fare "un esempio", intendevo proprio "un esempio" materiale... magari descritto a parole o descritto semplicemente per "valori stampati".

    Ad ogni modo, se il tuo dubbio è "quando usare il for-each e quando usare un for con contatore?" la risposta è piuttosto facile:

    1) Il foreach si usa quando si vuole semplicemente scorrere dall'inizio alla fine un elenco di valori per farci qualcosa (con questi valori) che sia indipendente dalla sua "posizione" nell'elenco. In pratica, quando la posizione di un valore nell'elenco non serve a nessuno.

    2) In tutti gli altri casi, è meglio (per non dire, essenziale) usare un for "standard" con indice.

    Da quell'intricato esempio che hai postato mi pare di capire che a te le "posizioni" dei valori all'interno dell'elenco interessano e sono "essenziali". Quindi, usa tranquillamente un for con indice (che mi par di capire tu sappia usare senza problemi). Ricorda che ogni costrutto del linguaggio è utile a risolvere una classe di problemi, ma non necessariamente "tutti" i problemi. Se per alcune classi di problemi un costrutto (come il for-each) è utile e ti fa risparmiare tempo e codice, per altre classi di problemi potrebbe rivelarsi solo un'inutile complicazione (e, di conseguenza, non andrebbe usato).


    Spero di aver intuito (e chiarito) il tuo dubbio.


    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
    Registrato dal
    Nov 2013
    Messaggi
    3
    Grazie di aver chiarito i miei dubbi

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 © 2025 vBulletin Solutions, Inc. All rights reserved.