|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
[JAVA] Visualizzazione di un array - HELP
Ragazzi ho un problema con la stampa a video di un array bidimensionale.
Vi posto prima il codice e poi il messaggio d'errore che mi viene dato in fase di compilazione: Codice:
public class Printservice
{
public static void main(String[] args)
{
void stampaMatrice(int[][] m)
{
for (int i=0; i<m.length; i++)
{
for (int j=0; j<m[ i ].length; j++) << la parentesi [] che rachiudono "i" le ho allargate perchè il forum interpretava male, penso lo vedesse come un tag... Fate conto che non ci siano spazi tra le i e le parentesi [])
{
System.out.print(m[i][j] + "\t|");
System.out.println();
}
}
}
int[][] matrice = {{0,1,2},{3,4,5},{6,7,8},{9,10,100}};
stampaMatrice(matrice);
}
}
"illegal start of expression" la riga di riferimento è la 5, ovvero la riga in cui viene definito l'header della funzione (void stampaMatrice...). Non ho capito quale sia l'errore, qualcuno può aiutarmi a capire dove ho sbagliato? Grazie
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Non puoi definire un metodo nel main...
inoltre deve essere statico.
__________________
|Java Base| |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Ma ci sono altri problemi nel tuo codice. Il metodo 'stampaMatrice' devi dichiararlo static perché l'hai chiamato dal main. Inoltre quando stampi il valore dell'elemento devi mettere m[i][j]. E inoltre, ancora, la println devi metterla dopo il ciclo for interno, altrimenti stampi tutti i valori in 1 colonna.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
vi ringrazio per i suggerimenti, stupidamente avevo tralasciato il non poter dichiarare un metodo void nel main
cmq ho apportato le modifiche e il programma gira, il codice è il seguente: Quote:
ho notato che modificando lo stesso codice in modo che agisca sugli array di tipo char, ci sono errori in fase di compilazione... Quote:
mi trova errore in corrispondenza di ogni lettere che ho inserito nell'array (A,B,C,D). Motivo?
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
I caratteri vanno messi tra apici, '
__________________
|Java Base| |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fast&Furious: ti prego indenta quel codice...mi sta venendo acidità di stomaco a vederlo
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
Quote:
potrei indentarlo ma con il tag "Code" non mi legge il carattere "i" tra parentesi quadre, quindi salterei alcune perzioni di codice...
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
Quote:
provo subito...
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
Quote:
funziona, grazie 1000!!
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Comunque mi sembra che funzioni a dovere il tag CODE... Codice:
public class Printservice
{
static void stampaMatrice(int[][] m)
{
for (int i=0; i<m.length; i++)
{
for (int j=0; j<m[i].length; j++)
{
System.out.print(m[i][j] + "\t|");
}
System.out.println();
}
}
public static void main(String[] args)
{
int[][] matrice = {{0,1,2},{3,4,5},{6,7,8},{9,10,100}};
stampaMatrice(matrice);
}
}
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
strano, inizialmente mi dava problemi ocn le quadre...
cmq ho continuato ad implementare il codice e sono arrivato al punto in cui ho reali problemi con la visualizzazione della matrice bidimensionale, ovvero non riesco a trovar il modo giusto per visualizzare in modo ordinato il tutto Codice:
public class Printservice
{
static void stampaMatrice(char[][] m)
{
int pw=2;
int pb=2;
System.out.print("\n\n\n\n\n ---------\n");
System.out.print(" #01234567|\n");
System.out.print(" ---------\n");
for (int i=0; i<m.length; i++)
{
for (int j=0; j<m[i].length; j++)
{
System.out.print(m[i][j] /*+ "\t|"*/);
}
System.out.println("|\n|");
}
System.out.print(" ---------\n\n\n\n");
System.out.print("Stringa1: " + pb + "\t Stringa2: " + pw);
}
public static void main(String[] args)
{
char[][] tavola = new char[8][8];
for (int i=0; i<tavola.length; i++)
{
for (int j=0; j<tavola.length; j++)
{
tavola[i][j]= 'V';
if ((j==i)&&((j==4)||(j==3)))
tavola[i][j]='W';
if ((i==3)&&(j==4)||((j==3)&&(i==4)))
tavola[i][j]='B';
}
}
stampaMatrice(tavola);
}
}
in questo modo il codice viene regolarmente compilato ma vien fuori una errata visualizazione, vien tutto sfasato, vien diviso in 3 blocchi, invece il mio intento sarebbe quello di visualizzar tutto perfettamente incolonnato e lasciando un buon margine da sinistra. Son riuscito a farlo solo per il primo e l'ultimo pezzo della matrice... grazie ancora per la pazienza
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
...c'è nessuno?
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi ti segnalo un'altra cosa: se vuoi mandare in output dei newline, non devi mettere semplicemente \n nella stringa. Qui non siamo in "C" in cui la printf è "furba" e traduce \n nel newline corretto per la piattaforma. Con Java hai diverse strade per mandare in output correttamente un newline: - Usare println. - Ottenere la stringa contenente il newline dalle proprietà di sistema: String eol = System.getProperty ("line.separator"); e quindi mandare in output 'eol'. - Usare il nuovo metodo printf (da Java 5 in poi) specificando %n (usa poi nient'altro che la proprietà detta prima). Ecco un esempio modificato: Codice:
public class Printservice
{
static void stampaMatrice (char[][] m)
{
int pw=2;
int pb=2;
String pad = " ";
System.out.printf ("%n%n%n%n%n");
System.out.printf (pad + " --------%n");
System.out.printf (pad + "|01234567|%n");
System.out.printf (pad + "|--------|%n");
for (int i=0; i<m.length; i++)
{
System.out.printf (pad + "|");
for (int j=0; j<m[i].length; j++)
{
System.out.print (m[i][j]);
}
System.out.printf ("|%n");
}
System.out.printf (pad + " --------%n");
System.out.print ("Stringa1: " + pb + "\t Stringa2: " + pw);
}
public static void main(String[] args)
{
char[][] tavola = new char[8][8];
for (int i=0; i<tavola.length; i++)
{
for (int j=0; j<tavola.length; j++)
{
tavola[i][j]= 'V';
if ((j==i)&&((j==4)||(j==3)))
tavola[i][j]='W';
if ((i==3)&&(j==4)||((j==3)&&(i==4)))
tavola[i][j]='B';
}
}
stampaMatrice (tavola);
}
}
Il pattern della matrice .... è quello di Othello!?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 15-12-2006 alle 22:22. |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
Quote:
grazie per i consiglio, verifico ubito quanto appena postato! Si, si tratta del giochino othello
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
@ andbin > ok, ho modificato il codice secondo i tuoi conigli, ho utilizzato il printf e il codice gira correttamente. Ora sto valutando quale sistema utilizzare per visualizzare senza problemi i numeri da 0 a 7 sulla colonna di sinistra, prima del carattere "|".
Inanzitutto ho creato: Codice:
string padc =" "; ora vedrò un pò cosa escogitare per inserire i numeri in ordine crecente da 0 a 7,,,
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Mar 2004
Città: Edimburgo (UK)
Messaggi: 6640
|
Ragazzi...ho fatto il mio primo giochillo in JAVA...e' una boiata tipo Snake
Ma non avete idea del lavoro che c'e' da fare se siete l'unico a svilupparlo. Mi domando come minkia facciano i programmatori jappo a fare roba come Metal Gear Solid su PS3 auguri, dico davvero Mi piacerebbe, comunque, fare una chiaccherata a tu per tu con il creatore (anzi, creatori) di Java stessi...assolutamente dei geni fuori dal comune a cui spetta un doverosissimo applauso Si predilige c++ in generale e python per i "rattoppi" Ultima modifica di Everyman : 17-12-2006 alle 05:06. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Bologna
Messaggi: 1290
|
tutto risolto, grazie a tutti
__________________
...someone call me "Cold Lord" Over The Limits :: Extreme... my life AMD Air Missile Defence |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:16.











|
auguri, dico davvero








