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 (3) 5 cicli nidificati cono solo due variabili!
//<PINTO> <ANGELO> <150417>, <pinto_angelo@jumpy.it> <stud12>
// <03/10/03> - esame di Fondamenti di Informatica A, corso di laurea in Ingegneria Informatica
#include <iostream.h>
#include <string.h>
#include <stdio.h>
int main(){
char s[21]; //lunghezza della stringa 20 caratteri
char t[21]; //lunghezza della stringa 20 caratteri
int n,m,i,j,costo,min,prova,prova2,prova3;
cout<<"Inserire la stringa s: ";
cin.getline(s,21);
cout<<"Inserire la stringa t: ";
cin.getline(t,21);
n = strlen(s);
m = strlen(t);
if (n==0) cout << "La distanza di Levenshtein e'"<<m; //FIXME si' ma poi doveva anche far terminare il programma
if (m==0) cout << "La distanza di Levenshtein e'"<<n; //FIXME si' ma poi doveva anche far terminare il programma
int d[n+1][m+1];
for (i=0;i<=n;i++)
for(j=0;j>=m;j++)
for(i=0,j=0;d[i][j];i++,j++)
{
for (i=0; i<n-1 ;i++)
for (j=0; j<m-1; j++) //FIXME 5 cicli nidificati con solo due variabili! Mi dispiace ma non funziona
if (s[i]==t[j]) costo=0;
else costo=1;
prova=d[j+1][i]+1;
prova2=d[j][i+1]+1;
prova3=d[j][i]+costo;
min=prova;
if (prova2<min) min=prova2;
if (prova3<min) min=prova3; //XXX il caclolo del minimo era anche corretto
d[j+1][i+1]=min;
}
cout << "La distanza di Levenshtein e' "<<d[m][n];
return 0;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT