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

Gender: Female
Posts: 2.033


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


« Reply #30 on: 29-12-2008, 14:48:39 »

Non la supererò mai sta provaaaaaaaa....help!!

Scrivere un metodo che prenda in input un array bidimensionale frastagliato S di stringhe e
restituisca un boolean che indichi se esiste una coppia di stringhe in S in cui occorre lo stesso
carattere. Es.: Input: [ (“abc”, “dewfg”, …), (…), …, (…, “xyfw”, …), …], Output: True

Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca un boolean che indichi se esiste una colonna in S contenente due stringhe uguali (saltare le
eventuali stringhe mancanti)
« Last Edit: 29-12-2008, 16:14:24 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.
rox
Forumista
***
Offline Offline

Posts: 633


« Reply #31 on: 29-12-2008, 15:36:38 »

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”.
ho provato a risolverlo ma non so se è giusto :
import javax.swing.*;
public class es15{
   private stringa s;
   public es15( stringa s)
   {
      this.s=s;
   }
   public String getNuovaStringa()
   {
      String nuova=" ";
      
      for (int i=0;i<s.length();i=i+3)
      {
          nuova+=s+s[i+1]+s[+2];
      }
      return nuova;
   }
}
class stringa
   {
private String s;
      public stringa(String s)
      {
         this.s=JOptionPane.showInputDialog
         ("immetti la Stringa");
         s.toCharArray();
      }
   }



il compilatore mi da questi errori:

es15.java:12: cannot find symbol
symbol  : method length()
location: class stringa
      for (int i=0;i<s.length();i=i+3)
                      ^
es15.java:14: array required, but stringa found
          nuova+=s+s[i+1]+s[+2];
                  ^
es15.java:14: array required, but stringa found
          nuova+=s+s[i+1]+s[+2];
                       ^
es15.java:14: array required, but stringa found
          nuova+=s+s[i+1]+s[+2];
                              ^
4 errors
grazie in anticipo per l'aiuto!
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #32 on: 29-12-2008, 18:04:17 »

Ciao, cmq io nn mi complicherei la vita a fare tutti questi this e classi; per vedere se è giusto mi puoi postare pure il main?!? mi secca scriverlo, cmq io ho risolto il problema facendo un array di char che contiene lo schema +++---ecc... in questo modo è molto semplice.
Almeno per come sono riuscito a risolverlo io boh
Se scrivi il main sarò lieto di aiutarti ciao
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


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


WWW
« Reply #33 on: 29-12-2008, 18:25:31 »

il compilatore mi da questi errori:

Code:
es15.java:12: cannot find symbol
symbol  : method length()
location: class stringa
for (int i=0;i<s.length();i=i+3)
                ^
es15.java:14: array required, but stringa found
nuova+=s[i]+s[i+1]+s[+2];
         ^
es15.java:14: array required, but stringa found
nuova+=s[i]+s[i+1]+s[+2];
              ^
es15.java:14: array required, but stringa found
nuova+=s[i]+s[i+1]+s[+2];
                     ^
4 errors
Tag FONT aggiunto per leggibilità!
Allora, innanzitutto il procedimento da te adottato è corretto e funziona bene su stringhe di qualsiasi dimensione.
I problemi di compilazione si verificano perché hai fatto confusione tra la classe java.lang.String (che rappresenterebbe s in riga 12), la tua personale classe stringa (che rappresenta la definizione di s in riga 3), e array di char (che rappresenta s nel corpo del ciclo for in riga 14.

Bisogna essere coerenti con i tipi di dati usati. Devi scegliere uno solo di questi tre tipi e trattare s come tale tipo di oggetto Java coerentemente.

Inoltre, un altro piccolo errore, sempre in riga 14, alla fine ti manca una i alla sinistra del +2.

Infine, un consiglio veramente veramente appassionato perché coinvolge la leggibilità e la correttezza di ciò che il forum scrive in output alla visualizzazione dei nostri messaggi: usa sempre il tag FONT per rappresentare del codice, perché, anche nel tuo caso, si è persa una s[i] del rigo 14 (guarda tu stesso) testate.

Ciao 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
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #34 on: 30-12-2008, 12:07:10 »

Ciao, volevo chiedervi se per cortesia mi potevate postare la soluzione dell'esercizio 6 tra quelli proposti dal prof.
Grazie. 
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #35 on: 30-12-2008, 13:38:33 »

allora qualcuno mi da una mano??almeno qualche indicazione....
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.
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #36 on: 30-12-2008, 20:07:10 »

siccome non avrò tempo fino a gennaio inoltrato ti indico una possibile soluzione a livello proprio logico (senza codice)
Scrivere un metodo che prenda in input un array bidimensionale frastagliato S di stringhe e
restituisca un boolean che indichi se esiste una coppia di stringhe in S in cui occorre lo stesso
carattere. Es.: Input: [ (“abc”, “dewfg”, …), (…), …, (…, “xyfw”, …), …], Output: True
tramite il String.charAt(int) confronti (ad esempio) il primo caratteri con tutti gli altri, poi il secondo con tutti gli altri (dentro una serie di cicli)...etc, mettendo un boolean (inizializzato come false) a true in caso trovi coincidenze. Dovrebbe funzionare.

Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca un boolean che indichi se esiste una colonna in S contenente due stringhe uguali (saltare le
eventuali stringhe mancanti)
intanto c'è da dire che per gli array frastagliati, non avendo dimensioni fissa, conviene sempre mettere un bel IF per sapere di volta in volta quale sia la stringa "maggiore" (o più lunga che dir si voglia) e così sapersi regolare nel ciclo. Dopodichè, a quanto ho capito, vuole sapere se ci sono colonne con gli stessi caratteri, e qui ti basta confrontare anche solo i primi di ogni riga (se non sono uguali i primi la stringa non è uguale), se sono uguali passi ai secondi (incrementando di volta in volta il contatore), e così via. Mettici (visto che lo richiede) anche un controllo del tipo if(S.length()==0) continue; else {fai i dovuti controlli} per saltare stringhe mancanti.
Saluti e buono studio buon anno! ^^
« Last Edit: 02-01-2009, 16:10:36 by Fr3d3R!K » Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


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


WWW
« Reply #37 on: 30-12-2008, 23:29:34 »

Non la supererò mai sta provaaaaaaaa....help!!

Scrivere un metodo che prenda in input un array bidimensionale frastagliato S di stringhe e
restituisca un boolean che indichi se esiste una coppia di stringhe in S in cui occorre lo stesso
carattere. Es.: Input: [ (“abc”, “dewfg”, …), (…), …, (…, “xyfw”, …), …], Output: True
Code:
public static boolean helpVivynz1 (String [][] S)
{
boolean found = false;

for (int r = 0; r < S.length && !found; r++)
for (int c = 0; c < S [r].length && !found; c++)
for (int k = 0, max = S [r][c].length () && !found; k < max; k++)
{
//cicla per ogni carattere "l" di ogni stringa dell'array bidimensionale S
char l = S [r][c].charAt (k);

//prima di tutto verifica se c'è un carattere uguale ad "l" nelle stringhe
//successiva della riga corrente di S, se ce ne sono
for (j = c + 1; j < S [r].length && !found; j++)
if (S [r][j].indexOf (l) != -1)
found = true;

//poi verifica se c'è un carattere a "l" nelle stringhe di tutte le righe
//successive alla riga corrente, se ce ne sono
if (!found)
for (i = r + 1; i < S.length && !found; i++)
for (j = 0; j < S [i].length && !found; j++)
if (S [i][j].indexOf (l) != -1)
found = true;
}

return found;
}
Si può usare il metodo java.lang.String.indexOf (int), vero  boh?
Seriamente, se non fosse così, fammelo sapere che modifico leggermente il codice per non doverlo usare .
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.475


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


WWW
« Reply #38 on: 30-12-2008, 23:44:07 »

Scrivere un metodo che prenda in input una matrice bidimensionale frastagliata S di stringhe e
restituisca un boolean che indichi se esiste una colonna in S contenente due stringhe uguali (saltare le
eventuali stringhe mancanti)
Code:
    public static boolean helpVivynz2 (String [][] S)
    {
        int max = 0;
        boolean found = false;
       
        //questo ciclo calcola la dimensione massima delle righe di S
        for (int i = 0; i < S.length; i++)
            if (S [i].length > max)
                max = S [i].length;
       
        //per ogni colonna
        for (int c = 0; c < max && !found; c++)
            //per ogni coppia di righe diverse (r1, r2) con r1 < r2
            for (int r1 = 0; r1 < (S.length - 1) && !found; r1++)
                for (int r2 = r1 + 1; r2 < S.length && !found; r2++)
                    //se entrambe le righe r1 ed r2 hanno almeno la colonna 'c'
                    if ((c < S [r1].length && c < S [r2].length)
                        && (S [r1][c].equals (S [r2][c]))) //e le stringhe S[r1][c] e S[r2][c] sono uguali
                            found = true; //allora restituiamo il successo
       
        return found;
    }

EDIT: ho corretto il codice aggiungendo le dichiarazioni per r1 ed r2  pc.
« Last Edit: 04-01-2009, 02:09:53 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 #39 on: 31-12-2008, 12:03:03 »

bho sinceramente non ho idea se si può usare  ma grazie mille per il tuo aiuto!!!!!troppo disponibile  pray
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 #40 on: 31-12-2008, 12:17:25 »

ah poi per quanto riguarda il primo ero riuscita a scrivere del codice,sembra funzionare però non saprei se poi ci sono degli errori nascosti 

Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato S di stringhe e
restituisca un boolean che indichi se esiste una coppia di stringhe in S in cui occorre lo stesso
carattere. Es.: Input: [ (“abc”, “dewfg”, …), (…), …, (…, “xyfw”, …), …], Output: True*/
public class Es30
{
public static boolean occorreStessoCarattere(String[][] S)
{
for(int i=0;i<S.length;i++)
{
for(int j=0;j<S[i].length;j++)
{
for(int l=0;l<S.length;l++)
{
for(int m=0;m<S[l].length;m++)
{
for(int k=0;k<S[i][j].length()-1;k++)
{
for(int w=0;w<S[l][m].length()-1;w++)
{
if((S[i][j].charAt(k)==S[l][m].charAt(w))&&(S[i][j]!=S[l][m]))//il secondo end confronta volontariamente gli indirizzi delle stringhe per verificare che non avvenga il confronto di una stringa con se stessa
return true;
}
}
}
}
}
}
return false;
}
public static void main (String[] args)
{
String[][] s={{"abc"},{"defg","hilmn"},{"op","qrs","tuavz"}};
boolean b=occorreStessoCarattere(s);
System.out.println(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.
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #41 on: 31-12-2008, 17:42:29 »

Salve a tutti,
volevo chiedere se qualcuno può postarmi l'esercizio 3 di quelli proposti dal prof. ?

Mentre ci sono se qualcuno può spiegarmi l'output dell'esempio di questo esercizio?
Grazie a tutti e felice anno nuovo...
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.475


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


WWW
« Reply #42 on: 31-12-2008, 17:43:30 »

ah poi per quanto riguarda il primo ero riuscita a scrivere del codice,sembra funzionare però non saprei se poi ci sono degli errori nascosti 
No, errori non ce ne sono. Solo si può migliorare per evitare di ciclare anche sui singoli caratteri di una stessa stringa (benché grazie alla seconda condizione sicuramente non restituisci true);
 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.475


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


WWW
« Reply #43 on: 31-12-2008, 17:51:26 »

Mi ero perso questo passaggio del tuo post, caro Fr3d3R!K
Mettici (visto che lo richiede) anche un controllo del tipo if(S.equals("")) continue; else {fai i dovuti controlli} per saltare stringhe mancanti.
Tuttavia, tale codice non può funzionare in generale nono, poiché S dovrebbe essere una stringa già assegnata in qualche modo scorrendo i due array, e se scorro fuori da un array tentando di leggere una posizione non esistente, sollevo una java.lang.ArrayIndexOutOfBoundException boh
 
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
Alex_47
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 409


The spiral's King


« Reply #44 on: 31-12-2008, 17:55:16 »

Salve a tutti , vorrei un aiuto riguardo questo esercizio della seconda prova itinere ,praticamente non saprei cosa fare XD...

ecco qua la consegna...

Esercizio 8
Scrivere un metodo che prenda come parametro formale un vettore di stringhe e restituisca in output
un vettore di interi contenente in ogni locazione, rispettivamente, la somma dei codici ASCII
maggiori di 32 dei caratteri nella corrispondente stringa in input.

qualcuno mi saprebbe aiutare?
Logged
Pages: 1 2 [3] 4 5 ... 9   Go Up
Print
Jump to: