Pages: [1] 2 3 ... 9   Go Down
Print
Author Topic: esercizi seconda prova in itinere  (Read 23517 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


« on: 15-12-2008, 16:22:10 »

Esercizio 1
Scrivere un metodo che prenda come parametri formali un array di interi A e restituisca in output un
array di interi B in cui la posizione i-esima contiene l’indice della prima occorrenza di A nel
sottovettore A[ i+1, …, A.length –1 ], oppure –1 se questa non esiste. Si veda l’esempio:
es.: A = [ 3, 2, 4, 3, 4, 3], B = [ 3, –1, 4, 5, –1, –1 ].

Che cosa si deve fare?!
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.
fabliux
Guest
« Reply #1 on: 15-12-2008, 16:27:12 »

Esercizio 1
Scrivere un metodo che prenda come parametri formali un array di interi A e restituisca in output un
array di interi B in cui la posizione i-esima contiene l’indice della prima occorrenza di A nel
sottovettore A[ i+1, …, A.length –1 ], oppure –1 se questa non esiste. Si veda l’esempio:
es.: A = [ 3, 2, 4, 3, 4, 3], B = [ 3, –1, 4, 5, –1, –1 ].

Che cosa si deve fare?!

 
Logged
MisteroLupo
Apprendista Forumista
**
Offline Offline

Posts: 273

Tra il dire e il fare c'è distanza di hamming 2.


« Reply #2 on: 15-12-2008, 17:13:45 »

B deve restituire l'indice della prima occorrenza dell'intero nella posizione i-esima dopo l'intero stesso, in effetti è ostico da spiegare e per capirlo ci ho messo un po'..

citando l'esempio:
A = [ 3, 2, 4, 3, 4, 3]
B = [ 3, –1, 4, 5, –1, –1 ]

Il 3 dopo il primo 3 si trova nella posizione n.3, quindi restituisce 3 (poi che sfiga giusto nella posizione 3 )
non c'è nessun 2 dopo il primo 2 quindi restituisce -1
il 4 successivo viene nella posizione 4 quindi restituisce 4
etc..

spero di essere stato chiaro ma non lo credo testate
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #3 on: 15-12-2008, 17:41:12 »

aaaaaaaaaaaaaaah ecco!!!grazie 
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.
MisteroLupo
Apprendista Forumista
**
Offline Offline

Posts: 273

Tra il dire e il fare c'è distanza di hamming 2.


« Reply #4 on: 15-12-2008, 18:31:01 »

felice di essere stato d'aiuto
Logged
MisteroLupo
Apprendista Forumista
**
Offline Offline

Posts: 273

Tra il dire e il fare c'è distanza di hamming 2.


« Reply #5 on: 17-12-2008, 16:12:13 »

Se a qualcuno dovesse interessare, ho risolto l'esercizio sopra citato.
Si accettano migliorie o consigli ovviamente!
Code:
public class SottoVettore {

    public static int[] metodo(int[] A) {
        // metodo che risolve l'esercizio ciclando il metodo trovaSuccessivo()
        // per tutte le occorrenze dell'array.
        int[] B = new int[A.length];
        for (int i=0;i<A.length;i++) {
            B[i] = trovaSuccessivo(A,i);
        }
        return B;
    }

    public static int trovaSuccessivo(int[] A, int a) {
        // trova occorrenza uguale nel sottovettore partente da a.
        for (int i=a+1;i<A.length;i++) {
            if (A[i] == A[a]) return i;
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] A = {3,2,4,3,4,3};
        int[] B = metodo(A);
        for (int i=0;i<B.length;i++) System.out.print(B[i] + " ");
        System.out.println();
    }
}

Logged
carmelo_ct
Guest
« Reply #6 on: 17-12-2008, 17:11:16 »

Esercizio 1
Scrivere un metodo che prenda come parametri formali un array di interi A e restituisca in output un
array di interi B in cui la posizione i-esima contiene l’indice della prima occorrenza di A nel
sottovettore A[ i+1, …, A.length –1 ], oppure –1 se questa non esiste. Si veda l’esempio:
es.: A = [ 3, 2, 4, 3, 4, 3], B = [ 3, –1, 4, 5, –1, –1 ].

Che cosa si deve fare?!

Perchè hai chiamato il post "esercizio seconda prova in itinere"? Sai già che saranno gli esercizi della seconda prova? 
Logged
fabliux
Guest
« Reply #7 on: 17-12-2008, 17:17:58 »

Perchè hai chiamato il post "esercizio seconda prova in itinere"? Sai già che saranno gli esercizi della seconda prova? 


Ma perkè vi create tutti sti problemi??    boh

Cmq la seconda prova si baserà molto probabilmente su questi esercizi....implementazione di metodi...
« Last Edit: 17-12-2008, 17:22:53 by fabliux » Logged
fabliux
Guest
« Reply #8 on: 17-12-2008, 19:11:40 »

Code:
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”.

Qualkuno che lo ha fatto potrebbe postarlo??

grazie!
« Last Edit: 17-12-2008, 19:13:41 by fabliux » Logged
ɹǝǝ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 #9 on: 18-12-2008, 00:05:03 »

Qualkuno che lo ha fatto potrebbe postarlo??

grazie!

Questo codice calcola effettivamente la funzione (metodo) da te cercata:
Code:
public static String metodo (String s)
{
    //stringa dove conserviamo i risultati parziali
    String temp = "";
    //lunghezza della stringa originale
    int l = s.length ();

    //spostandoci di 6 posizioni alla volta
    for (int i = 0; i < l; i += 6)
        //recuperiamo i primi (al massimo) 3 caratteri di gruppi da 6
        temp += s.substring (i, Math.min (i + 3, l));
   
    //restituiamo il valore calcolato
    return temp;
}

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
fabliux
Guest
« Reply #10 on: 18-12-2008, 00:25:12 »

Qualkuno che lo ha fatto potrebbe postarlo??

grazie!

Questo codice calcola effettivamente la funzione (metodo) da te cercata:
Code:
public static String metodo (String s)
{
    //stringa dove conserviamo i risultati parziali
    String temp = "";
    //lunghezza della stringa originale
    int l = s.length ();

    //spostandoci di 6 posizioni alla volta
    for (int i = 0; i < l; i += 6)
        //recuperiamo i primi (al massimo) 3 caratteri di gruppi da 6
        temp += s.substring (i, Math.min (i + 3, l));
   
    //restituiamo il valore calcolato
    return temp;
}



Grazie mille.... ok
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #11 on: 19-12-2008, 17:10:59 »

Qualcuno ha fatto l'esercizio 10?mi dà problemi nel passare come parametro formale un array bidimensionale n x m...
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 #12 on: 19-12-2008, 18:05:55 »

Qualcuno ha fatto l'esercizio 10?mi dà problemi nel passare come parametro formale un array bidimensionale n x m...
Se posti il testo dell'esercizio, vedrò cosa posso fare...
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 #13 on: 20-12-2008, 01:29:15 »

Ciao ragazzi volevo un aiutino...
ho fatto l'esercizio 10, lo compilo e non dà alcun errore, lo eseguo e non mi stampa niente...,
potete autarmi x favore???
Metto di seguito il testo e il codice ciao e grazie in anticipo:
Quote
/*
Esercizio 10
Scrivere un metodo che prenda come parametro formale un vettore bidimensionale A di double di
dimensioni n x m, e restituisca in output un vettore di double di dimensione m, contenente nella
locazione i-esima la somma di tutti gli elementi della colonna i-esima di A che siano non-negativi.
*/
import java.lang.*;
class esercizio10
{
   public static double [] output(double [] [] A)
   {
      //int dim1,dim2;
      //A=new double [][];
      int m=0;//colonne
      int n=0;//righe
      double [] vettore=new double [m];
      double tmp=0.0;
      while (m<vettore.length)
      {
         for (int i=0;i<vettore.length;i++)
         {
            tmp+=A[n][m];
            vettore[m]=tmp;
         }
         m++;
         System.out.print(vettore[m] );
      }
      
      return vettore;
   }
   
   public static void main (String [] args)
   {
      //int dim1=3, dim2=5;
      double [] [] A = /*new double [dim1][dim2];*/{{3.5,4.9,10.2},
                            {12.8,9.0,5.6},
                            {4.2,2.1,8.0},
                            {15.6,6.7,7.6}};
      int m=1,n;
      //for (m=0;m<dim1;m++)
         //for(n=0;n<dim2;n++)
      //A[m][n]=(double)(Math.random()*15);
      double [] vettore=output(A);
      for(int i=0;i<vettore.length;i++)
      {
         System.out.print(vettore[m]);
      }         
   }
   
}

Lo so l'array per ora nel main è riempita a con valori predefiniti da me, e nel metodo no ma è perchè ho fatto una prova...!!!
GRAZIE IN ANTICIPO E TANTI AUGURI DI BUON NATALE...DARIO!!!
Logged
ɹǝǝ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 #14 on: 20-12-2008, 11:50:52 »

Ciao ragazzi volevo un aiutino...
ho fatto l'esercizio 10, lo compilo e non dà alcun errore, lo eseguo e non mi stampa niente...,
potete autarmi x favore???
Mi permetto di farti notare gli errori del tuo codice, a scopo didattico  :
Code:
public static double [] output(double [] [] A)
{
int m=0;//colonne
int n=0;//righe

//1° errore: poiché m=0, "vettore" è un array di 0 elementi
double [] vettore=new double [m];
double tmp=0.0;

//2° errore, a cascata col 1°:
//poiché m=0 e vettore.length=0, questa condizione è subito "false"
//e non si entra mai nel corpo del while
while (m<vettore.length)
{
//3° errore, se anche i primi due errori fossero risolti,
//qui dovrebbe essere "i<A.length" come condizione
for (int i=0;i<vettore.length;i++)
{
//4° errore: il contatore "i" non è mai usato per tmp+=A[i][m]
//5° errore: sommi tutti i valori della colonna, non solo quelli non-negativi
tmp+=A[n][m];
//6° errore: inutile salvare tmp adesso, si può fare fuori dal "for"
vettore[m]=tmp;
}
m++;
System.out.print(vettore[m] );
}

//qui restituisci infine un vettore vuoto
return vettore;
}

Ecco, invece, un metodo che risolve il tuo problema (metto pure la classe e un esempio di input):

Code:
import java.lang.Math;

public class esercizio10
{
public static double [] metodo (double [] [] A)
{
int m = A [0].length; //si suppone che ci sia almeno una riga e che le righe abbiano tutte la stessa dimensione
double [] temp = new double [m];

//per ogni colonna
for (int i = 0; i < m; i++)
{
//inizializzo a zero la somma degli elementi di tale colonna
temp [i] = 0;

//e poi per ogni riga (fissata la colonna)
for (int j = 0; j < A.length; j++)
//sommo i valori degli elementi non-negativi
temp [i] += Math.max (A [j][i], 0);
}

return temp;
}

public static void main (String [] args)
{
double [][] d = {{ 1, -4,  4,  6,  4},
{-1, -4,  0, -9,  6},
{ 4,  5,  8,  9, -1}};

//somme calcolate: 5,  5, 12, 15, 10
           
double [] res = metodo (d);

for (int i = 0; i < res.length; i++)
System.out.print (((i == 0) ? "" : ", ") + res [i]);
}
}

GRAZIE IN ANTICIPO E TANTI AUGURI DI BUON NATALE...DARIO!!!
Buon Natale anche a te Link Immagine.
 
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
Pages: [1] 2 3 ... 9   Go Up
Print
Jump to: