Spiegazione dell'uso del main()

di il
6 risposte

Spiegazione dell'uso del main()

Salve a tutti ragazzi, sono un ragazzo che da poco si sta cimentando nel mondo dell'informatica, ho parecchi dubbi riguardo le cose che sto studiando e ho deciso di chiedere a qualcuno che abbia maggiori conoscenze.
Uno dei miei dubbi è l'uso del metodo main], ovvero, dopo aver creato un "programma", mi trovo in difficoltà nel costruire un metodo main corretto per richiamarlo.

Ho fatto un esercizio il quale necessita la creazione di una matrice M con 28 righe e 200 colonne, all'interno della quale devo inserire alcuni valori, ora vi elenco quali:

riga 0:
M[0][0]=("aa",20.0); M[0][1]=("ff", 40.0); M[0][2]=("aa",20.0); M[0][3]=("bb", 15.5); da M[0][4] a M[0][199] contiene (null).

riga 1:
M[1][0]=("aa",20.0); M[1][1]=("gg", 110); M[1][2]=("aa",20.0); da M[1][3] a M[1][199] contiene (null).

riga 2:
M[2][0]=("ee", 20.0); M[2][1]=("aa", 20); da M[2][2] a M[2][199] contiene (null).

riga 3:
M[3][0]=("bb", 15.5); M[3][1]=("ee", 5.5); M[3][2] = ("aa", 20.0); M[3][3]=("aa", 20.0); da M[3][4] a M[3][199] contiene (null).

riga 4:
M[4][0]=("aa", 20.0); M[4][1]=("aa", 20.0); da M[4][2] a M[4][199] contiene (null).

riga 5:
M[5][0]=("ff", 40.0)= M[5][1]=("ff", 40.0); M[5][2]=("aa", 20.0); M[5][3]=("cc", 30.0); M[5][4]=("aa", 20.0); da M[5][5] a M[5][199] contiene (null).

Dalla riga 6 alla riga 26 sono occupate solo le prime due celle dai valori ("aa", 20.0)(cella 1) e ("aa", 20.0)(cella 2), tutte le altre celle contengono null.

riga 27:
M[27][0]=("dd", 30.0); M[27][1]=("aa", 20.0); M[27][2]=("aa", 20.0); da M[27][3] a M[27][199] contiene (null).

Ecco questa è la matrice, sapreste gentilmente dirmi come devo fare per scriverla perchè scrivere tutti i valori in una matrice con 28 righe e 200 colonne mi sembra impossibile ci sarà sicuramente un modo molto più semplice che io non conosco, grazie in anticipo e buonaserata

6 Risposte

  • Re: Spiegazione dell'uso del main()

    Purtroppo risponderti non e' semplice.
    Ci sono infiniti modi molto piu' semplici per fare quello che il problema richiede.
    MA questo richiede avere già delle ragionevoli competenze di base.

    E' un po' come voler guidare una supercar sapendo andare solo in bicicletta: si puo' fare ma con risultati disastrosi.

    Devi iniziare con esercizi moolto piu' semplici: non e' possibile risolvere un problema complesso se non sai risolvere i problemi piu' semplici.

    Ad esempio, alcune possibili soluzioni sono: usi un file, popoli una colonna alla volta, usi un dizionario che indica per ogni valore quali celle riempire, usi qualche proprietà tra i valori, usi una tabella di 28 colonne e 200 righe e fai la trasposta,...

    Ma ogn'una di queste soluzioni richiede qualche altra conoscenza
  • Re: Spiegazione dell'uso del main()

    Iron ha scritto:


    Uno dei miei dubbi è l'uso del metodo main
    Il main è il "punto di ingresso" di una applicazione Java tradizionale (non applet/webapp).
    L'uso del main è quindi quello: far partire l'applicazione.

    Iron ha scritto:


    M[0][0]=("aa",20.0);
    Innanzitutto precisa cosa intendi con questo.
    Perchè

    M[0][0]=("aa",20.0);

    scritto così è una forma che in Java NON ha senso.

    Cosa è ("aa",20.0) ?? Intendi un oggetto (di tua classe) che contiene 2 proprietà, una String (es. "aa") e l'altra double (es. 20.0) ?

    Iron ha scritto:


    perchè scrivere tutti i valori in una matrice con 28 righe e 200 colonne mi sembra impossibile
    Quando si istanzia un array di tipo reference di una certa dimensione, gli elementi sono automaticamente inizializzati a null.
    Quindi NON dovrai certo fare 5600 assegnamenti !
    Ma solo quei pochi non-null che hai indicato.
  • Re: Spiegazione dell'uso del main()

    Allora mi scuso per essere stato poco chiaro nella traccia, il fatto è che quello che ho scritto è la conseguenza di un esercizio già svolto, il problema è proprio che non riesco a capire come implementare il main con la matrice. Quello che intendevo era esattamente quello che ha scritto lei (andbin), ovvero che in ogni cella ci sono una stringa e un double, dove la stringa sarebbe il nome di una pietanza e il double è il prezzo di essa.

    (Migliorabile), allora so che nn bisogna buttarsi a fare cose complesse e che bisogna esercitarsi con qualcosa di più semplice, mi sto preparando per un esame e ho fatto parecchi esercizi con vettori, come ad esempio dato un vettore modificarlo e restituirne un altro che abbia le seguenti caratteristiche...... cose di questo genere, che ho anche capito e risolto con successo, ma gli esercizi d'esame sono un po più lunghi e complessi rispetto a quelli svolti durante il corso e oltre a trovarmi di fronte ad alcuni metodi che non ho ancora ben capito, non riesco a fare il main di essi.
  • Re: Spiegazione dell'uso del main()

    Iron ha scritto:


    Quello che intendevo era esattamente quello che ha scritto lei (andbin), ovvero che in ogni cella ci sono una stringa e un double, dove la stringa sarebbe il nome di una pietanza e il double è il prezzo di essa.
    Quando si istanzia un array con new si specifica il tipo degli elementi. Quindi TUTTI gli elementi di un array saranno di un certo tipo. Se non è un tipo primitivo ... è un tipo reference.

    Quindi, QUALE è il tipo dei tuoi elementi? Hai appena detto che le due informazioni sono relative ad una "pietanza" ... e quindi cosa ti verrebbe da pensare?
  • Re: Spiegazione dell'uso del main()

    andbin ha scritto:


    Quindi, QUALE è il tipo dei tuoi elementi? Hai appena detto che le due informazioni sono relative ad una "pietanza" ... e quindi cosa ti verrebbe da pensare?
    Se ho capito bene la domanda, il tipo dei miei elementi dovrebbe essere un reference, quindi se io scrivessi:
    public Ordinazione[][] M= new Ordinazione[28][200];
    
    dovrebbe crearmi un matrice con 28 righe e 200 colonne e ogni cella contiene un reference con valore null?
  • Re: Spiegazione dell'uso del main()

    Iron ha scritto:


    se io scrivessi:
    public Ordinazione[][] M= new Ordinazione[28][200];
    
    dovrebbe crearmi un matrice con 28 righe e 200 colonne e ogni cella contiene un reference con valore null?
    Se hai scritto una tua classe chiamata Ordinazione (con le proprietà indicate prima), sì è corretto.
    La matrice contiene inizialmente tutti (28×200=5600) null. Ovvero nella matrice NON ci sono inizialmente oggetti Ordinazione (spetta a te crearli ed assegnarli nella matrice)


    P.S. se M è un field (campo) di un oggetto, non usare public a meno che ci siano ragioni davvero valide. Generalmente meglio private.
Devi accedere o registrarti per scrivere nel forum
6 risposte