Pages: 1 [2] 3 4 ... 9   Go Down
Print
Author Topic: esercizi seconda prova in itinere  (Read 23737 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #15 on: 21-12-2008, 12:54:40 »

Salve a tutti anchio posto il codice relativo al 15 esercizio ma vorrei un chiarimento riguardo a questo errore che mi segnala...

Esercizio 15
Si consideri il seguente schema lineare: +++---+++---+++---+++---···.
Scrivere un metodo che prenda come parametro formale una stringa S e restituisca in output la
stringa ottenuta da S sovrapponendo il precedente schema e concatenando i caratteri corrispondenti
al simbolo ‘+’. Es.: S=”abcdefghilmno”, Output=”abcghio”.

errore:
schema15.java:23: cannot find symbol
symbol  : method cena()
location: class java.lang.String
       s.cena();
        ^
1 error

esercizio:
class schema
{
   public static String cena(String s)
   {
      String x="";
      String [] c = {"+","+","+","-","-","-","+","+","+","-","-","-",
                                                      "+","+","+","-","-","-","+","+","+","-","-","-","*","*","*"};
      for (int i=0; i<s.length();i++)
      {
         if (c=="+")
         {
            x+=s.charAt(i);
         }
      }
      return x;
         }
}

public class schema15
{
   public static void main(String [] args)
   {
       String s = "abcdefghilmno";
       s.cena();
        }
}

cmq auguri di buon natale a tuttti!!
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #16 on: 21-12-2008, 15:49:15 »

il metodo è statico quindi nel main non hai bisogno di mettere s. prima del nome del metodo
Quote
public static void main(String [] args)
   {
       String s = "abcdefghilmno";
       s.cena();
        }
inoltre poichè il metodo prende una stringa come parametro formale
Quote
public static String cena(String s)
quando lo richiami dal main devi passare un parametro attuale quindi dovresti scrivere qualcosa tipo
String str=cena(s);
non so se sono stata chiara...
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #17 on: 21-12-2008, 23:21:52 »

Salve a tutti anchio posto il codice relativo al 15 esercizio ma vorrei un chiarimento riguardo a questo errore che mi segnala...
Non ti seccare, ma potresti modificare il tuo post o crearne uno nuovo utilizzando il tag CODE? Non è solo per una questione di estetica, è proprio che certe scritte potrebbero essere interpretate dal parser HTML (come i tag [i] che in origine erano l'i-esimo elemento di un certo array e ora invece mi rendono "corsivo" il testo seguente ).
Quando lo farai, sarò lieto di risponderti  .
Ciao .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #18 on: 21-12-2008, 23:56:28 »

OK, mi sento buono perché è Natale, perciò posterò una risposta esauriente comunque  .

Prima di tutto indicherò i vari errori/imprecisioni/sviste che ho notato nel tuo codice:
Code:
class schema
{
public static String cena(String s)
{
String x="";
//la sequenza è "lineare", ciò significa che continua in modo lineare e ripetitivo
//i tre puntini alla fine sono "di sospensione", per indicare una sequenza infinita
//perciò il seguente array produce un output sbagliato
String [] c = {"+","+","+","-","-","-","+","+","+","-","-","-",
                                                      "+","+","+","-","-","-","+","+","+","-","-","-","*","*","*"};
//considerato che la condizione di un ciclo for (o while, ecc...) viene valutata
//nuovamente per ogni iterazione, è meglio non calcolare più volte il valore di
//una funzione, come invece si fa con "s.length()" nel tuo esempio
for (int i=0; i<s.length();i++)
{
//nel caso di una sequenza di simboli (che essendo infinita nel nostro caso, non è rappresentabile
//tramite array) è preferibile confrontare valori char piuttosto che forzare un compareTo tra oggetti
//String (che è la nuovamente l'esecuzione di un metodo), cioè usare "==" tra oggetti String.
if (c[i]=="+")
//queste parentesi sono inutili (suggerimento estetico, non propriamente errore)
{
x+=s.charAt(i);
}
}
return x;
         }
}
Inoltre non c'è motivo di utilizzare ben 2 classi per un esercizio di così breve risoluzione.

Per quanto riguarda l'errore segnalatoti dal compilatore, rispondendo anche a- e correggendo l'errata osservazione di- Vivynz (non me ne voglia, è fatto tutto a fin di bene  ), questo tuo codice:
Code:
       String s = "abcdefghilmno";
       s.cena();
tenta di richiamare il metodo cena su un oggetto di tipo String, che non ha (vedi javadoc) sicuramente tale metodo fra quelli disponibili (pubblicamente).

Inoltre, anche il suggerimento di Vivynz è sbagliato, in quanto tale metodo non fa parte dello scope di visibilità (a livello classe) della classe schema15, in uno dei metodi della quale tale metodo è richiamato.

Piuttosto, penso che tu volessi scrivere:
Code:
       String s = "abcdefghilmno";
       [...]schema.cena(s);
ove [...] indica una omissione di codice, come ad esempio un System.out.println().
cioè infine avresti dovuto scrivere qualcosa come:
Code:
       String s = "abcdefghilmno";
       System.out.println (schema.cena(s));

Come ultima cosa, posto un'altra soluzione al problema che usa una funzione in qualche modo generatrice di sequenze regolari infinite (lineari) di simboli +++--- (ecc...).
Code:
public class schema15
{
private static char elementoSequenza (int indice)
{
//cioè se indice è 0,1,2,6,7,8,12,13,14,...
//ovvero se il resto della divisione di indice con 6 (gruppi da 6) è 0,1 o 2
//mi viene generato un '+' altrimenti un '-';
if ((indice % 6) < 3)
return '+';
else
return '-';
//(da notare che tale return si può unificare tramite "if aritmetico" nella forma:
//                                                     condizione?then:else
}

private static String cena (String s)
{
String x = "";
int max = s.length ();

for (int i = 0; i < max; i++)
if (elementoSequenza (i) == '+')
x += s.charAt (i);

return x;
}

public static void main(String [] args)
{
    String s = "abcdefghilmno";
    System.out.println (cena (s));
}
}

Salut .

Spero di essermi stato fatto avuto capire yoh!
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Raro89
Apprendista Forumista
**
Offline Offline

Posts: 121



« Reply #19 on: 22-12-2008, 16:15:15 »

Grazie mille del tuo aiuto...mi sei stato veramente d'aiuto...io da solo non avrei mai trovato tutti questi errori...io pensavo che fosse solo dovuto al fatto che m prima era uguale a zero ed avevo un vettore vuoto..ma invece mi sbagliavo...grazie ancora ciao ciao
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #20 on: 22-12-2008, 17:36:58 »

Esercizio 16...che ne pensate?
Code:
/*Una scacchiera S di dimensione 8x8 viene rappresentata mediante un array bidimensionale di
boolean in cui ogni posizione o è vuota (false) oppure contiene una pedina (true). Scrivere un
metodo che prenda come parametro formale una scacchiera S, e restituisca in output un boolean che
indichi se la scacchiera contiene almeno due pedine sulla stessa riga o sulla stessa colonna*/
public class Es16
{
public static boolean pedine(Scacchiera S)
{
for(int r=0;r<S.getRighe();r++)
{
for(int c=0;c<S.getColonne();c++)
{
if((S.contienePedina(r,c))&&(S.contienePedina(r+1,c+1)))
{
System.out.println("Ci sono due pedine contigue sulla riga "+r);
return true;
}
}
}
for(int c=0;c<S.getColonne();c++)
{
for(int r=0;r<S.getRighe();r++)
{
if((S.contienePedina(r,c))&&(S.contienePedina(r+1,c+1)))
{
System.out.println("Ci sono due pedine contigue sulla colonna "+c);
return true;
}
}
}
System.out.println("Non ci sono pedine contigue");
return false;
}
public static void main (String[] args)
{
Scacchiera sc=new Scacchiera(100);
sc.riempiCasuale();
sc.stampa();
boolean b=pedine(sc);
System.out.println(b);
sc.riempiFalse();
sc.stampa();
b=pedine(sc);
System.out.println(b);
}
}
class Scacchiera
{
private boolean [][] Scacchiera;
private int righe;
private int colonne;
public Scacchiera(int dimensione)
{
righe=dimensione;
colonne=dimensione;
Scacchiera=new boolean [righe][colonne];
}
public boolean contienePedina(int riga,int colonna)
{
if (Scacchiera[riga][colonna]==true)
return true;
else
return false;
}
public int getRighe()
{
return righe;
}
public int getColonne()
{
return colonne;
}
public void riempiCasuale()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
if((int)(Math.random()*2)==0)
Scacchiera[i][j]=true;
else
Scacchiera[i][j]=false;
}
}
}
public void riempiFalse()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
Scacchiera[i][j]=false;
}
}
}
public void stampa()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
System.out.print(Scacchiera[i][j]+"\t");
}
System.out.println();
}
}
}
« Last Edit: 22-12-2008, 17:45:18 by Vivynz » Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #21 on: 23-12-2008, 15:47:06 »

Esercizio 16...che ne pensate?
Code:
...

Buona la descrizione di una scacchiera, anche se si poteva descrivere direttamente secondo il "lato" e non per forza tramite la possibilità di avere "righe" e "colonne" di diversa lunghezza .

Per quanto riguarda il metodo richiesto dall'esercizio, invece, il tuo codice si propone di verificare se ci sono due pedine contigue in almeno una riga od una colonna (mentre l'esercizio richiede di verificare se ci sono due pedine in due posizioni qualsiasi diverse in almeno una stessa riga o colonna), tuttavia non fa nemmeno quello che tu hai erroneamente inteso.

Considera il codice:
Code:
if((S.contienePedina(r,c))&&(S.contienePedina(r+1,c+1)))
Esso verifica se ci sono due pedine contigue lungo una qualsiasi diagonale TopLeft-BottomRight, ma per il tipo di limite superiore nella dimensione dell'array, e cioè:
Code:
r<S.getRighe()
e
Code:
c<S.getColonne()
tale verifica genererà una java.lang.ArrayIndexOutOfBoundsException all'interno di Scacchiera.contienePedina(int,int) quando si verificherà la prima tra le due condizioni r==S.getRighe()-1 o c==S.getColonne()-1.

Una soluzione molto più semplice consiste nel fare due controlli, uno per ciascuna riga e uno per ciascuna colonna, contando il numero di pedine in tale riga e tale colonna, e fermarsi e restituire true non appena si trova un conteggio maggiore o uguale a 2, o restituire false quando si esce fuori dal blocco dei controlli.

Questo codice fa ciò che richiede l'esercizio:
Code:
public static boolean pedineCorretto (Scacchiera S)
{
int maxR = S.getRighe ();
int maxC = S.getColonne ();

//controlla le singole righe
for (int r = 0; r < maxR; r++)
{
int totale = 0;
for (int c = 0; c < maxC; c++)
if (S.contienePedina (r, c)) totale++;

if (totale >= 2) return true;
}

//controlla le singole colonne
for (int r = 0; r < maxR; r++)
{
int totale = 0;
for (int c = 0; c < maxC; c++)
if (S.contienePedina (r, c)) totale++;

if (totale >= 2) return true;
}

//uscendo da entrambi i cicli, sicuramente non ci sono due pedine su una stessa riga o colonna
return false;
}
Notare che si potrebbe restituire true non appena si verifica "totale == 2" ottimizzando il codice.

Ciao .
« Last Edit: 23-12-2008, 15:49:34 by reversengineer » Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #22 on: 23-12-2008, 16:28:31 »

Per quanto riguarda la scacchiera si, lo so, l'ho lasciato così solo per essermi più chiaro 
L'esercizio 16 chiede proprio di sapere se ci sono due pedine contigue comunque potresti spiegarmi meglio l'errore?grazie 
inoltre non ho capito bene il tuo codice, cioè non capisco come fai a controllare sia le singole righe che le singole colonne ripetendo in pratica due volte gli stessi cicli for
Code:
//controlla le singole righe
for (int r = 0; r < maxR; r++)
{
int totale = 0;
for (int c = 0; c < maxC; c++)
if (S.contienePedina (r, c)) totale++;

if (totale >= 2) return true;
}

//controlla le singole colonne
for (int r = 0; r < maxR; r++)
{
int totale = 0;
for (int c = 0; c < maxC; c++)
if (S.contienePedina (r, c)) totale++;

if (totale >= 2) return true;
}

« Last Edit: 23-12-2008, 17:01:16 by Vivynz » Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #23 on: 23-12-2008, 18:03:58 »

Per quanto riguarda la scacchiera si, lo so, l'ho lasciato così solo per essermi più chiaro 
L'esercizio 16 chiede proprio di sapere se ci sono due pedine contigue comunque potresti spiegarmi meglio l'errore?grazie 
Certo, considerando che l'array è multidimensionale (bidimensionale per essere precisi), nel tuo caso aggiungendo +1 sia alla riga sia alla colonna, fai il controllo tra coppie di elementi contigui sulla diagonale che li contiene (cioè controlli l'elemento corrente e l'elemento in basso a destra rispetto ad esso). E in più, l'esercizio 16 chiede di sapere se ci sono almeno due pedine su una stessa riga o una stessa colonna (quindi non necessariamente contigue e non necessariamente 2, ma almeno 2), secondo quanto tu stessa hai postato:
Quote
/* [...] Scrivere un metodo che prenda come parametro formale una scacchiera S, e restituisca in output un boolean che
indichi se la scacchiera contiene almeno due pedine sulla stessa riga o sulla stessa colonna [...]*/


Quote
inoltre non ho capito bene il tuo codice, cioè non capisco come fai a controllare sia le singole righe che le singole colonne ripetendo in pratica due volte gli stessi cicli for
Mea culpa  pray! Lì ho sbagliato io  boh. In effetti il secondo doppio ciclo annidato dovrebbe avere scambiate le parentesi che contengono inizializzazione, condizione e incremento dei rispettivi contatori. Cioè dovevo mettere così:
Code:
//controlla le singole colonne (stavolta giusto :-P)
for (int c = 0; c < maxC r++)
{
int totale = 0;
for (int r = 0; r < maxR; c++)
if (S.contienePedina (r, c)) totale++;

if (totale >= 2) return true;
}
Dannato copia-e-incolla pc...
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #24 on: 23-12-2008, 19:10:43 »

Salve a tutti..
volevo un chiarimento relativo al secondo esercizio,
 in particolare il dubbio mi sorge nella parte relativa al trovare indice della prima occorenza di un elemento maggiore di A i...se qualcuno puo postare il codice o chiarirmi come fare fare questo passaggio... grazie
Inoltre volevo sapere se qualcuno mi puo spiegare come si fa il return di array... testate

Auguri di buon natale!
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #25 on: 24-12-2008, 09:58:53 »

aaaaaaah si ho capito...cavolo non va bene che non ci avevo fatto caso...ora risistemo il tutto 
per quanto riguarda questo..
Quote
E in più, l'esercizio 16 chiede di sapere se ci sono almeno due pedine su una stessa riga o una stessa colonna (quindi non necessariamente contigue e non necessariamente 2, ma almeno 2), secondo quanto tu stessa hai postato:
me la prendo anch'io con il copia e incolla  yoh il giusto testo dell'esercizio 16 è questo:
/*Una scacchiera S di dimensione 100x100 viene rappresentata mediante un array bidimensionale di
boolean in cui ogni posizione o è vuota (false) oppure contiene una pedina (true). Scrivere un
metodo che prenda come parametro formale una scacchiera S, e restituisca in output un boolean che
indichi se la scacchiera contiene almeno due pedine contigue orizzontali o verticali*/
Per il resto tutto chiaro immaginavo fosse stata una distrazione  I
grazie dell'aiuto 
Per giovy89...non vorrei postare il mio codice prima che ci spuntano 2000 suggerimenti sbagliati come l'utlima volta 
ma
Quote
Inoltre volevo sapere se qualcuno mi puo spiegare come si fa il return di array...
il return di array si fa allo stesso modo di tutti gli altri tipi..ad esempio all'interno del metodo puoi istanziare un nuovo array B ad esempio,lo inizializzi con i valori richiesti nell'esercizio e alla fine fai return B;
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #26 on: 24-12-2008, 10:55:44 »

Ti prego dimmi che è giusto adesso... pray pray pray
(nel main ho usato una scacchiera 3x3 per comodità perchè 100x100 era enorme  [Emoticon] Asd)
Code:
/*Una scacchiera S di dimensione 100x100 viene rappresentata mediante un array bidimensionale di
boolean in cui ogni posizione o è vuota (false) oppure contiene una pedina (true). Scrivere un
metodo che prenda come parametro formale una scacchiera S, e restituisca in output un boolean che
indichi se la scacchiera contiene almeno due pedine contigue orizzontali o verticali*/
public class Es16
{
public static boolean pedine(Scacchiera S)
{
for(int r=0;r<S.getRighe();r++)
{
for(int c=0;c<S.getColonne()-1;c++)
{
if((S.contienePedina(r,c))&&(S.contienePedina(r,c+1)))
{
System.out.println("Ci sono due pedine contigue sulla riga "+(r+1));
return true;
}
}
}
for(int c=0;c<S.getColonne();c++)
{
for(int r=0;r<S.getRighe()-1;r++)
{
if((S.contienePedina(r,c))&&(S.contienePedina(r+1,c)))
{
System.out.println("Ci sono due pedine contigue sulla colonna "+(c+1));
return true;
}
}
}
System.out.println("Non ci sono pedine contigue");
return false;
}
public static void main (String[] args)
{
Scacchiera sc=new Scacchiera(3);
sc.riempiCasuale();
sc.stampa();
boolean b=pedine(sc);
System.out.println(b);
sc.riempiFalse();
sc.stampa();
b=pedine(sc);
System.out.println(b);
}
}
class Scacchiera
{
private boolean [][] Scacchiera;
private int righe;
private int colonne;
public Scacchiera(int dimensione)
{
righe=dimensione;
colonne=dimensione;
Scacchiera=new boolean [righe][colonne];
}
public boolean contienePedina(int riga,int colonna)
{
if (Scacchiera[riga][colonna]==true)
return true;
else
return false;
}
public int getRighe()
{
return righe;
}
public int getColonne()
{
return colonne;
}
public void riempiCasuale()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
if((int)(Math.random()*2)==0)
Scacchiera[i][j]=true;
else
Scacchiera[i][j]=false;
}
}
}
public void riempiFalse()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
Scacchiera[i][j]=false;
}
}
}
public void stampa()
{
for(int i=0;i<righe;i++)
{
for(int j=0;j<colonne;j++)
{
System.out.print(Scacchiera[i][j]+"\t");
}
System.out.println();
}
}
}
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #27 on: 24-12-2008, 11:32:44 »

Scusatemi sono un'ossessione 
Dov'è il probl in questo esercizio?(la struttura è stata fatta in classe insieme al prof. Cincotti...)
Code:
/*Dato un array frastagliato bidimensionale di stringhe restituire true se
c'è una stringa con un carattere ripetuto almeno 2 volte altrimenti false*/

public class Es18
{
public static boolean ripetizioneCarattere(String[][] A)
{
for(int i=0;i<A.length;i++)
{
for(int j=0;j<A[j].length;j++)
{
//così lavoriamo su A[i][j]
//per ogni carattere della stringa bisogna controllare tutti quelli successivi
//altre 2 iterazioni
for(int k=0;k<A[i][j].length()-1;k++)
{
for(int l=k+1;l<A[i][j].length();l++)
{
if(A[i][j].charAt(k)==A[i][j].charAt(l))
return true;
}
}
}
}
return false;
}
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #28 on: 24-12-2008, 15:45:37 »

Ti prego dimmi che è giusto adesso... pray pray pray
Visto che mi preghi, allora ti dico che è giusto  .
Scherzo, è giusto davvero ok.

Scusatemi sono un'ossessione 
Dov'è il probl in questo esercizio?(la struttura è stata fatta in classe insieme al prof. Cincotti...)
Code:
/*Dato un array frastagliato bidimensionale di stringhe restituire true se
c'è una stringa con un carattere ripetuto almeno 2 volte altrimenti false*/
[...]
Il problema è nella riga che contiene il secondo for, ovvero
Code:
for(int j=0;j<A[j].length;j++)
va sostituito con
Code:
for(int j=0;j<A[i].length;j++)
Tipico errore di battitura che ti fa impazzire per ore perché è troppo incastrato nel codice per riconoscerlo a prima vista .

Ciao .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« Reply #29 on: 26-12-2008, 12:02:08 »

aaaaaaaaah che sollievo  grazie 1000 per la disponibilità 
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Pages: 1 [2] 3 4 ... 9   Go Up
Print
Jump to: