Correzione prova pratica del 3 ottobre 2003
Correzione prova pratica del 3 ottobre 2003
Istruzioni:
il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate:
- FIXME: segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO: segnala l'assenza di parti di codice
- XXX: segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per
renderlo compilabile e/o per la corretta indentazione.
//XXX (2) incompleto, scarsa pratica e conoscenza del linguaggio
//<PELIZZA>< LARA><151103><larap83@libero.it><CAD12>
//<03/10/03>-esame di Fondamenti di Informatica A-Corso di laurea in Ingegneria Elettronica
#include<iostream.h>
#include<string.h>
int main(){
int DL;
char s[15],t[15];
do {cout<<"Inserire una stringa s"<<endl;
cin>>s; //FIXME e se la stringa conteneva spazi? era corretto utilizzare cin.getline()
cout<<"Inserire una stringa t"<<endl;
cin>>t; //FIXME come sopra
if (*s && *t)cout<<"<<s<<"<<endl; //XXX ????
cout<<"<<t<<"<<endl;
} while(*s && *t); // FIXME questa condizione non mi fa uscire dal ciclo. Ma ha mai provato a svolgere qualche esercizio?
int n, m;
n=strlen(s);
m=strlen(t);
if (n=0){ DL=m;
cout<<DL<<endl;
} //FIXME nel caso doveva anche terminare
if (m=0){DL=m;
cout<<DL<<endl;
} //FIXME come sopra
int costo=0;
int i, j, d[m+1][n+1];
for (i=0,j=0;i<n;i++)
for (i=0,j=0;j<m;j++)
d[m+1][n+1]; //FIXME operazione nulla (pero' ripetuta nxm volte)
//FIXME a parte che non ha inizializzato la matrice da qui in poi ci vorrebbe un ciclo, io
// non lo vedo.
if(s[i]<=0 && s[i]>=n-1 && t[j]<=0 && t[j]<=m+1) //FIXME ???
{
if (t[j]=s[i])costo=0; //FIXME ==
else costo=1;
int n1,n2,n3;
n1=d[j+1][i]+1;
n2=d[j][i+1]+1;
n3=d[i][j] + costo;
int min;
if( n1 <= n2 && n1 <= n3) min= n1;
if( n2 <= n1 && n2 <= n3) min= n2;
if( n3 <= n1 && n3 <= n2) min= n3;
d[j+1][i+1] = min;
d[m][n]= DL;
cout<<"La Distanza di Levenshtein e' "<<DL<<endl;
}
// F
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT