Pages: [1] 2   Go Down
Print
Author Topic: PROVA DI OGGI (26-01)  (Read 4715 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« on: 26-01-2009, 12:39:15 »

Ragazzi ho appena finito di passare al comp il codice scritto oggi in classe. non ho avuto il tempo di copiare anche il testo, percui se qualcuno dovesse averlo...che magari lo inserisca nel topic così da renderlo + utile...

posto entrambi gli esercizi. il primo funziona così come l'ho fatto nel compito. Al secondo ho dovuto apportare una modifica (e si...esercizio sbagliato in aula... ) Spero siano utili...

ECCO IL PRIMO:

Code:
class prova1
{
public static int metodo (float[][] A, float[][] B)
{
int pesanti = 0;
for (int j = 0; j < A[0].length; j++)
{
int contaElementi = 0;
for (int i = 0; i < A.length; i++)
{
if (A[i][j] > B[i][j])
contaElementi++;
}
if (contaElementi > (A.length/2))
pesanti++;
}
return pesanti;
}

}

ED ECCO IL SECONDO CON TANTO  DI MAIN:

Code:
class prova2
{
public static boolean metodo (String[][] A)
{
for (int i = 0; i < A.length; i++)
{
for (int j = 0; j < A[i].length; j++)
{
for (int k = i; k < A.length; k++)
{
int h;
if (k == i)
{
h = j+1;
}
else
{
h = 0;
}
for (;h < A[k].length; h++)
{
int contaCaratteri = 0;
for (int c = 0; c < A[i][j].length(); c++)
{
for (int d = 0; d < A[k][h].length(); d++)
{

if (A[i][j].charAt(c) == A[k][h].charAt(d))
{
contaCaratteri++;
for (int f = c+1, g = d+1; f < A[i][j].length() && g < A[k][h].length(); f++, g++)
if (A[i][j].charAt(f) == A[k][h].charAt(g))
contaCaratteri++;
}
else
{
contaCaratteri = 0;
}

if (contaCaratteri == A[i][j].length())
return true;
}
}
}
}
}
}
return false;
}

public static void main(String[] args)
{
String [][] S = { {"xyxyxyxy", "inter",    "x_style"},
                       {"zebra", "vite"},
                       {"ugo",   "per", "pinguino", "impero"}
                     };


System.out.println(metodo(S));
}
}

DOMANDONE:

considerando che nel secondo esercizio ho dimenticato di inserire il for più interno (quello dentro l' if) e considerando che per il resto entrambi gli esercizi sono a mio parere giusti (se così non fosse correggetemi), secondo voi quanto mi da Cincotti?? (intendo dire in punti, non in pedate nel deretano... )
Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
hax
Matricola
*
Offline Offline

Posts: 64


« Reply #1 on: 26-01-2009, 12:59:10 »

se usa lo stesso metodo dell'altra volta del contare i for prima di correggere ti da 18 credo...
Logged
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #2 on: 26-01-2009, 13:15:50 »

Quote from: ciccio
DOMANDONE:

considerando che nel secondo esercizio ho dimenticato di inserire il for più interno (quello dentro l' if) e considerando che per il resto entrambi gli esercizi sono a mio parere giusti (se così non fosse correggetemi), secondo voi quanto mi da Cincotti?? (intendo dire in punti, non in pedate nel deretano... )

Ancora, ad oggi, non ho capito il criterio di valutazione di un esercizio di Prima Parte.

Credo che il Porf., più che considerare ciò che produce l'output dell'esercizio in questione, consideri maggiormente il corretto (?) numero di cicli for inseriti. Secondo me, è più probabile prendere un voto alto in un esercizio al 90% errato (cioè che non produce l'output richiesto) ma col numero di cicli for corretto e, viceversa,  prenderne uno basso in un esercizio al 100% corretto ma col numero di cicli for (secondo il Prof.) maggiore o minore del previsto.

Ti faccio un esempio con un esercizio presente nella Prova in Itinere.
Code:
public class ProvaItinere
{
  //Esercizio 2
 
  //Scrivere un metodo che prenda in input una matrice A di stringhe, e restituisca un boolean
  //che indichi se esitono due colonne contigue di A in cui sia presente almeno una stringa comune
 
  public static boolean Esercizio2(String A[][])
  {
      for(int j=0;j<A.length;j++)
      {
        for(int i=0;i<A.length;i++)
        {
          for(int k=0;k<A.length;k++)
          {
            for(int h=j+1;h<A.length;h++)
            {
              //System.out.println(A[i][j]+"=="+A[k][h]); //l'ho inserito così puoi renderti conto che effettivamente
                                                          //fa i controlli come da testo e funziona al 100% (credo)
         
              if(A[i][j].equals(A[k][h]))
              {
                return true;
              }
              else break;
            }
          }
        }
      }
      return false;
  }
 
  //Main Esercizio 2
  public static void main(String args[])
  {
    String A[][] = {{"abc","def","ghi"},
                    {"abcm","ac","o"},
                    {"pq","rstu","vz"}};
                   
    for(int i=0;i<A.length;i++)
    {
      for(int j=0;j<A[i].length;j++)
      {
      System.out.print(A[i][j]+"\t");
      }
      System.out.println();
    }
   
   
   
    boolean trovato = Esercizio2(A);
   
    System.out.println(trovato);
   
  }

Questo esercizio è corretto al 99% e nonostante ciò i punti attribuitomi sono stati 5 su 15 solo per il numero di cicli for, uno in più a detta del Prof.

Inutile dire che non sono d'accordo con il punteggio (...e più in generale con il criterio di valutazione degli esercizi).

Quindi se applica lo stesso criterio di valutazione della Prova in Itinere, credo che il voto si aggiri intorno al 18 (come dice il collega hax). Fai te...
« Last Edit: 26-01-2009, 14:14:04 by Mito » Logged
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« Reply #3 on: 26-01-2009, 13:43:47 »

rispondo a Mito.
si in effetti io nella seconda prova in itinere ho preso 18...un esercizio giusto e nell'altro mancava un ciclo for. praticamente ho rinunciato a un 18 per un "ipotetico".......18!! che fralaltro non è neppure detto....

Il discorso è che non solo in queste due prove mancava un ciclo for a esercizio, ma l'output non era neanche corretto!!!
Così come l'esercizio che hai postato tu, è corretto solo se la matrice del parametro formale è quadrata...altrimenti non "vede" le 'j' > A.length    ma nel testo che hai postato tu non c'era scritto che doveva essere quadrata...

cmq ok, spero almeno nel 18

ciao
Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #4 on: 26-01-2009, 14:05:22 »

rispondo a Mito.
si in effetti io nella seconda prova in itinere ho preso 18...un esercizio giusto e nell'altro mancava un ciclo for. praticamente ho rinunciato a un 18 per un "ipotetico".......18!! che fralaltro non è neppure detto...

Infatti io non ho detto che tu prenderai 18. Ho detto che se applica lo stesso criterio di valutazione della Prova in Itinere, credo che il voto si aggiri intorno al 18 per quel discorso dei "cicli for".

Ad essere sincero, quando l'ho fatta io mi aspettavo un voto >= 23 (caso limite); e invece...

Poi non so i testi della prova di oggi, quindi non saprei...  
Quote from: ciccio
Così come l'esercizio che hai postato tu, è corretto solo se la matrice del parametro formale è quadrata...altrimenti non "vede" le 'j' > A.length    ma nel testo che hai postato tu non c'era scritto che doveva essere quadrata...

Credo che non funzioni (o meglio "funziona" ma non del tutto) solo nel caso in cui la matrice è 2x3 (non controlla l'ultima colonna).

Il punto è: 10 punti in meno considerando che:

1) esercizio giusto al 99% (o giù di lì) e non si ha il compilatore davanti... 
2) solo per il numero di cicli for...

Personalmente, non sono d'accordo sul criterio. Ormai però è andata. Ciao.
« Last Edit: 26-01-2009, 14:16:52 by Mito » Logged
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #5 on: 26-01-2009, 14:10:07 »

sarebbe una bella pensata mettere pure i testi degli esercizi
P.S. ma perchè invece di discuterne qui sui metodi di correzione (che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto) non chiedete lumi al professore stesso? mi sembra la soluzione migliore, lamentarsi qui sul forum (credo) non porti a molti risultati (il voto rimane lo stesso e voi rimanete col dubbio). Poi siete liberi di ignorare il mio consiglio ovviamente, consiglio dato quanto più amichevolmente possibile. Chiedete sempre quando non avete chiaro qualcosa!
Saluti.
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #6 on: 26-01-2009, 14:12:20 »

sarebbe una bella pensata mettere pure i testi degli esercizi
P.S. ma perchè invece di discuterne qui sui metodi di correzione (che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto) non chiedete lumi al professore stesso? mi sembra la soluzione migliore, lamentarsi qui sul forum (credo) non porti a molti risultati (il voto rimane lo stesso e voi rimanete col dubbio). Poi siete liberi di ignorare il mio consiglio ovviamente, consiglio dato quanto più amichevolmente possibile. Chiedete sempre quando non avete chiaro qualcosa!
Saluti.

Nel mio caso, già fatto e risposta uguale (...numero di cicli for) a quanto scritto precedentemente (terzo post).
« Last Edit: 26-01-2009, 14:17:15 by Mito » Logged
fabliux
Guest
« Reply #7 on: 26-01-2009, 14:24:47 »

sarebbe una bella pensata mettere pure i testi degli esercizi
P.S. ma perchè invece di discuterne qui sui metodi di correzione (che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto) non chiedete lumi al professore stesso? mi sembra la soluzione migliore, lamentarsi qui sul forum (credo) non porti a molti risultati (il voto rimane lo stesso e voi rimanete col dubbio). Poi siete liberi di ignorare il mio consiglio ovviamente, consiglio dato quanto più amichevolmente possibile. Chiedete sempre quando non avete chiaro qualcosa!
Saluti.

Eccoti qui il primo Fr3d3R!K

Code:
/*Scrivere un metodo che prenda in input due array bidimensionali A e B
di float delle stesse dimensioni nxm, e restituisca il numero di righe pesanti di A.
Una riga di r di A si dice pesante se contiene un numero pari di elementi ed esiste
una riga p in B tale che ogni elemento di posizione dispari di r è maggiore del successivo
elemento (di posizione pari) di p.
Es.: r = [4,7,2,9,18,7] e p = [12,3,2,1,19,17], r è pesante perchè 4>3, 2>1 e 18>17.*/


vedi se puoi aiutarmi te per questo esercizio.........................grazie mille  ciao
« Last Edit: 26-01-2009, 14:28:33 by fabliux » Logged
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« Reply #8 on: 26-01-2009, 14:29:15 »

sarebbe una bella pensata mettere pure i testi degli esercizi
P.S. ma perchè invece di discuterne qui sui metodi di correzione (che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto) non chiedete lumi al professore stesso? mi sembra la soluzione migliore, lamentarsi qui sul forum (credo) non porti a molti risultati (il voto rimane lo stesso e voi rimanete col dubbio). Poi siete liberi di ignorare il mio consiglio ovviamente, consiglio dato quanto più amichevolmente possibile. Chiedete sempre quando non avete chiaro qualcosa!
Saluti.

hai perfettamente ragione Fr3d3R!K, accetto il tuo consiglio, il discorso è che non credo ci sia niente da chiedere al professore...che come dici tu
Quote
(che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto)
.

il professore è lui. penso che al massimo potrei chiedere maggiori spiegazioni sul metro di valutazione, ma il voto rimarrebbe quello...
grazie per la dritta comunque!  ciao
Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #9 on: 26-01-2009, 15:05:58 »

ecco i miei...sembrano essere giusti all'apparenza ma sono sicura al 100% che adesso spunta qualche errore gravissimo che fa riscendere il voto in giù...spero di non aver buttato inutilmente il vecchio voto della prova in itinere 
Code:
/*Scrivere un metodo che prenda in input due array bidimensionali A e B di float delle stesse
dimensioni nxm e restituisca il numero di colonne pesanti di A.Una colonna di A si dice pesante
se almeno il 50% dei suoi elementi è maggiore dei corrispondenti elementi presenti nella
corrispondente colonna di B*/
public class newEsercizio1
{
public static int colonnePesanti(float[][] A,float[][] B)
{
int pesanti=0;
int n=A.length;
int m=A[0].length;
for(int c=0;c<m;c++)
{
int cont=0;
for(int r=0;r<n;r++)
if(A[r][c]>B[r][c])
cont++;
if(cont>=A.length/2)
pesanti++;
}
return pesanti;
}
public static void main (String[] args)
{
float[][] A={{1,7,9,34},{43,25,16,89},{37,91,44,65},{13,67,48,59}};
float[][] B={{65,24,97,24},{56,74,24,67},{65,53,12,32},{4,6,2,3}};
System.out.println(colonnePesanti(A,B));
}
}

Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di stringhe,
e restituisca un boolean che indichi se esiste una stringa di A che sia una sottostringa di
un'altra stringa di A*/
public class newEsercizio2
{
public static boolean sottostringa(String[][] A)
{
for(int r=0;r<A.length;r++)
for(int c=0;c<A[r].length;c++)
for(int r1=0;r1<A.length;r1++)
for(int c1=0;c1<A[r1].length;c1++)
{
if((A[r][c].length()>=A[r1][c1].length())&&(r!=r1||c!=c1))
{
int h=0;
int cont=0;
boolean salta=false;
for(int k=0;k<A[r1][c1].length()&&!salta;k++)
{
boolean cambia=false;
while(h<A[r][c].length()&&!cambia&&!salta)
{
if(A[r1][c1].charAt(k)==A[r][c].charAt(h))
{
cont++;
cambia=true;
}
else
if(cont!=0)
salta=true;
h++;
}
}
if(cont==A[r1][c1].length())
return true;
}
}
return false;
}
public static void main (String[] args)
{
String[][] a={{"abcd","ef"},{"ghil","mno","pqxyzr","stuvz"},{"xyz"}};
System.out.println(sottostringa(a));
}
}
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 #10 on: 26-01-2009, 17:40:18 »

Vivynz io avevo il tuo stesso compito e il primo esercizio l'ho fatto identico ma l'ho diviso in due metodi, un ciclo for per metodo.
Il secondo esercizio l'ho fatto più semplice. Ho chiesto all'assistente del prof. Cincotti quanti caratteri dovesse avere una substring e lui ha detto che può essere anche di un carattere. Quindi ho semplicemente cercato un carattere che occorre in due stringhe diverse..
Logged
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #11 on: 26-01-2009, 17:52:48 »

hai perfettamente ragione Fr3d3R!K, accetto il tuo consiglio, il discorso è che non credo ci sia niente da chiedere al professore...che come dici tu
Quote
(che a mio avviso dovrebbero invece essere prerogativa esclusiva del professore che in quanto tale può decidere se e come un esercizio sia corretto)
.
se non c'è nulla da chiedere non ci sono molti motivi che giustificano le lamentele, perchè non ci sono questioni da chiarire, non credi?
Per quanto riguarda gli esercizi: appena ho 5 minuti li faccio entrambi e li posto, comunque il secondo è curioso come esercizio mentre il primo è molto semplice...
@MisteroLupo: non devi cercare un carattere, la sottostringa PUO' essere di un carattere (qualora la stringa che tu cerchi sia di un carattere), ma non è detto che sia così. Devi controllare che nella stessa struttura ci sia una stringa che è già contenuta in un'altra (sottostringa) ad esempio:
("abc","chn","..."...),("abcde",...) --> TRUE
Un metodo sarebbe cercare tutti i caratteri della prima stringa nella seconda, e restituire true se ci sono.
« Last Edit: 27-01-2009, 11:10:45 by Fr3d3R!K » Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
ciccio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 143



« Reply #12 on: 26-01-2009, 18:22:27 »

se non c'è nulla da chiedere non ci sono molti motivi che giustificano le lamentele, perchè non ci sono questioni da chiarire, non credi?
Per quanto riguarda gli esercizi: appena ho 5 minuti li faccio entrambi e li posto, comunque il secondo è curioso come esercizio mentre il primo è molto semplice...

hehe... infatti Fr3d3R!K io non mi stavo lamentando, ho solo espresso il mio rammarico di non essere riuscito ad alzare il mio punteggio e addirittura di averlo messo a rischio. sono solo amareggiato per questo, non ho niente da chiarire (anche perchè se il prof ha una laurea e io no ci sarà un motivo... univ), pur continuando a non gradire il suo metodo di correzzione...che non me ne voglia  pray prayangel
CIAO
Logged

"Non importa quanto vai piano, l' importante è che non ti fermi" (CONFUCIO)
MisteroLupo
Apprendista Forumista
**
Offline Offline

Posts: 273

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


« Reply #13 on: 26-01-2009, 19:07:17 »

allora ho sbagliato di nuovo 
Logged
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


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


« Reply #14 on: 27-01-2009, 10:28:36 »

Quote
@MisteroLupo: non devi cercare un carattere, la sottostringa PUO' essere di un carattere (qualora la stringa che tu cerchi sia di un carattere), ma non è detto che sia così. Devi controllare che nella stessa struttura ci sia una stringa che è già contenuta in un'altra (sottostringa) ad esempio:
("abc","cde","..."...),("abcde",...) --> TRUE
Un metodo sarebbe cercare tutti i caratteri della prima stringa nella seconda, e restituire true se ci sono.
questo è quello che ho cercato di fare io 
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   Go Up
Print
Jump to: