Salve a tutti, sto combattendo con questo esercizio da giorni ormai senza avere una benchè minima illuminazione e senza nemmeno capire la soluzione proposta!!
Allego il testo :
Scrivere un metodo che, dato un numero positivo N, crea e restituisce una matrice quadrata NxN di interi che memorizza i numeri da 1 a N2disposti “a spirale”
http://www.uniroma2.it/didattica/POJ/de ... rcizio.pdf
e qui c'è anche la soluzione, ma che onestamente non riesco a comprendere!
http://www.uniroma2.it/didattica/POJ/de ... rale2.java
Qualcuno riesce a decifrarmi come si svolge una cosa del genere?
Grazie a Tutti!
Alex
[JAVA] Stampa di una matrice con numeri a "spirale"
Moderatori:
Paolino,
fairyvilje
7 messaggi
• Pagina 1 di 1
0
voti
Il PDF con la spiegazione punto per punto (e anche i disegnini) mi sembra molto chiaro.
Cosa non ti convince? Il metodo o il codice?
Cosa non ti convince? Il metodo o il codice?
in /dev/null no one can hear you scream
0
voti
Si perdonami, forse sono stato poco chiaro.
Ho capito bene o male la logica dietro all'algoritmo (il cambio di direzione cioe), quello che non ho capito è il codice che è stato usato e la logica dietro la quale sono state create quelle operazioni..
ho provato a rileggere piu e piu volte il codice, senza capire perche però sono state fatte QUELLE operazioni per otterene quel risultato..
Spero di essermi spiegato un po' meglio :)
Alex
Ho capito bene o male la logica dietro all'algoritmo (il cambio di direzione cioe), quello che non ho capito è il codice che è stato usato e la logica dietro la quale sono state create quelle operazioni..
ho provato a rileggere piu e piu volte il codice, senza capire perche però sono state fatte QUELLE operazioni per otterene quel risultato..
Spero di essermi spiegato un po' meglio :)
Alex
0
voti
Scusami ma continuo a non capire.
Il codice, che è anche ben commentato, rispecchia l'algoritmo... se hai capito quello, non dovresti avere problemi.
Puoi postare il ragionamento che fai per analizzare il codice, punto per punto, ed indicare dove trovi delle difficoltà o delle discrepanze rispetto all'algoritmo?
Il codice, che è anche ben commentato, rispecchia l'algoritmo... se hai capito quello, non dovresti avere problemi.
Puoi postare il ragionamento che fai per analizzare il codice, punto per punto, ed indicare dove trovi delle difficoltà o delle discrepanze rispetto all'algoritmo?
in /dev/null no one can hear you scream
0
voti
Ok allora, partendo dal metodo
Che indici sono i,j e n?
if (i+j == n-1) rappresenta la diagonale? perche?
in generale, nonostante siano commentate a dovere, non riesco a ben capire la logica dietro le operazioni presenti negli if-else e come essi possano rappresentare le "diagonali" o i cambi di direzione.
gli altri due metodi, aggiorna riga e aggiorna colonna sono abbastnza intuitivi.
anche l'ultimo ora che lo riguardo sembra essere abbastanza intuitivo, si tratta solo di incastrare i vari risultati ottenuti prima...magari dopo lo riguardo e provo a ricrearlo e vedo se ci sono delle discrepanze!
non c'è un metodo meno macchinoso ad ogni modo?
- Codice: Seleziona tutto
public static int aggiornaDirezione(int direzione, int i, int j, int n)
Che indici sono i,j e n?
- Codice: Seleziona tutto
/* se ci si trova sulla diagonale
la direzione viene aggiornata e 1 e 3 */
if (i+j == n-1)
if (i+j == n-1) rappresenta la diagonale? perche?
in generale, nonostante siano commentate a dovere, non riesco a ben capire la logica dietro le operazioni presenti negli if-else e come essi possano rappresentare le "diagonali" o i cambi di direzione.
gli altri due metodi, aggiorna riga e aggiorna colonna sono abbastnza intuitivi.
anche l'ultimo ora che lo riguardo sembra essere abbastanza intuitivo, si tratta solo di incastrare i vari risultati ottenuti prima...magari dopo lo riguardo e provo a ricrearlo e vedo se ci sono delle discrepanze!
non c'è un metodo meno macchinoso ad ogni modo?
1
voti
alex0211 ha scritto:Che indici sono i,j e n?
riga, colonna, numero di righe (o colonne)
alex0211 ha scritto:if (i+j == n-1) rappresenta la diagonale? perche?
pagina 5 del pdf che spiega l'algoritmo. Non ti è molto chiaro quello allora...
esempio. Se sei nella prima riga i=0 e sei nell'ultima colonna j=3, incroci la diagonale secondaria... infatti 0+3==4-1
esempio2. Se sei nella seconda riga i=1 la stessa diagonale la incroci nella penultima colonna j=2.. 1+2=4-1
alex0211 ha scritto:non c'è un metodo meno macchinoso ad ogni modo?
Trovare un altro algoritmo è un problema diverso dal capire come tradurre in codice un certo algoritmo. No?
in /dev/null no one can hear you scream
0
voti
Ah ecco...molto piu chiaro cosi! Quello che mi chiedo: c'e un metodo pratico per arrivare a una relazione di questo tipo o è per cosi dire, immaginazione?
Per gli altri due if-else il prOcedimento analogo?
Grazie in ogni caso!
Per gli altri due if-else il prOcedimento analogo?
Grazie in ogni caso!
7 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 26 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


