PDA

Visualizza la versione completa : Passare gli array a doppio indice ai metodi si java


Therock80
18-01-2003, 13:07
:dh:
Scrivere un programma per la creazione di un mappa di altezza attraverso la stampa
casuale di numeri da 0 a 4 in una matrice 10 x 10. Dopodich trovare le aree che contengono 4 cifre uguali (ad esempio quella indicata) e stampare le coordinate della cella in alto a sinistra. (Si consiglia di visualizzare la mappa per verifica).
1 3 2 0 3 1 3 1 0 2
3 3 2 1 3 2 3 3 1 2
4 3 1 3 3 0 3 2 3 1
1 0 4 3 2 2 2 2 3 4
2 3 2 0 4 2 4 1 0 2
2 3 0 3 3 3 3 2 3 0
0 1 2 0 2 2 2 2 0 2<
2 3 3 3 1 4 2 2 3 3
2 3 1 3 0 0 0 2 3 1
3 1 3 3 2 2 2 1 3 3

Guardate il gruppo di 2 che ha indice a[6][6]in questo esempio, io dovrei individuare questi gruppi.



import java.awt.*;
import javax.swing.*;

public class TrovaNumeri extends JApplet {
int a [][];
JTextArea outputArea;
String output;


public void init()

{

outputArea = new JTextArea ();
outputArea.setEditable(false);
Container c = getContentPane ();
c.add ( outputArea );

a = new int [10] [10];
for ( int i = 0; i < a.length; i++ )
for ( int j = 0; j < a [i].length; j++ )
a [i] [j] = ( int ) ( Math.random() * 5 );

Trova(a);
outputArea.append ( output );
}


public void Trova ( int b [][] )
{

for ( int i = 0; i < a.length; i++ )
for ( int j = 0; j < a [i].length; j++ )
if (( a[i] [j] == a[i+1] [j]) && ( a[i] [j] == a[i] [j+1] )
&&( a[i+1] [j] == a[i+1] [j+1]))

Stampa ( i,j );

}


public void Stampa ( int x, int y)
{
output +="\n" + " Le coordinate sono " + "\n";
output +=" " + x + y + " ";

outputArea.setText ( output );
}
}

Questa una bozza del programma che ho fatto e modificato centinaia di volte, xk nn mi inizializza l'applet?;
Perch se dichiaro il metodo trova di tipo int, mi da errore.
Cosi nn posso eseguire i return che vorrei e magari fare degli altri metodi pi semplici.
Aiuto!!!

enigmao
18-01-2003, 13:15
scusa ho visto che hai scritto una domanda sul java.. mi pare che ci capisca tu piu di me.. non che sapresti dirmi che cosa scrivo per creare da una stringa una nuova stringa che contenga sempre il suo ultimo carattere? cioe se io do una nuova stringa cane la seconda stringa sara e , ma se do una stringa ingegner la seconda stringa r... mi faresti sapere ? graxie

lelefante
18-01-2003, 13:31
L'applet non viene inizializzata perche' c'e' un errore:


for ( int i = 0; i < a.length; i++ )
for ( int j = 0; j < a [i].length; j++ )
if (( a[i] [j] == a[i+1] [j]) && ( a[i] [j] == a[i] [j+1] )
&&( a[i+1] [j] == a[i+1] [j+1]))

Nel ciclo accedi all'indice i+1 e j+1, quando i e/o j assumono il valore massimo (a.length e a[i].length) cerchi di leggere un elemento fuori dal range dell'array, il programma lancia un'eccezione e si blocca.
Imposta i limiti superiori dei cicli a length -1 e non ti da problemi.

Therock80
18-01-2003, 17:51
Grazie Lorenzo adesso tutto a posto funziona perfettamente mi hai eliminato un grosso problema....

Therock80
18-01-2003, 17:58
Scusa ma nn che habbia capito molto bene cosa vuoi fare ed inoltre sto cominciando adesso a studiare le stringhe ed i caratteri in java,
se il problema imminente mi spiace nn posso aiutarti, ma se hai un p di pazienza spero di poterti dare una risposta nei prossimi tre giorni...

Loading