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 (5) arriva fino all'inizializzazione della matrice poi si perde
//<Tognari> <Jonathan>, <150077>, <Jonathan.Tognari@studenti.unipr.it>, <DIS16>
//<03\10\2003> - esame di Fondamenti di Informatica A,corso di laurea in Ingegneria Elettronica
#include<iostream.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int const dim=20;//dichiaro la lunghezza max delle stringhe in ingresso
int DL; //dichiaro il parametro fondamentale del mio programma
char s[dim]; //dichiaro la stringa che deve entrare in imput
char t[dim]; //dichiaro la stringa che deve entrare in imput
cout<<"Introdurre una parola di 20 caratteri al massimo: "<<endl;
cin.getline (s,20);
cout<< s <<endl;
cout<<"Introdurre un altra parola di 20 caratteri al massimo: "<<endl;
cin.getline (t,20);
cout<< t <<endl;
int n= strlen(s);
int m= strlen(t);
int costo=0;
if (n==0) DL=m; //FIXME capisco che le {} sulle tastiere italiane siano difficili da scrivere, ma qua ci volevano
cout<<"DL= "<< DL <<endl;
if (m==0) DL=n; //FIXME capisco che le {} sulle tastiere italiane siano difficili da scrivere, ma qua ci volevano
cout<<"DL= "<< DL <<endl;
//FIXME qualora n==0 o m==0 doveva anche terminare il programma
char d [m+1] [n+1];//dichiaro la matrice
for (int i=0; i<(n+1); i++) // Operazione per creare la numerazione marginale
d[0][i]=i; // della
for (int j=0; j<(m+1); j++) // matrice d
d[j][0]=j;
for (int i=0; i<(n-1); i++) //FIXME fuori tema, questo pezzo andava unito al successivo
for(int j=0; j<(m-1); j++)
{if t[j]==s[i] costo=0;
else costo=1;
d[i+1][j+1]=costo;
}
for (int i=1; i<(n+1); i++)
for (int j=1; j<(m+1); i++)
{ d[i][j]= min(d[j+1][i]+1, d[j][i+1]+1, d[j][i]+costo) ; //FIXME la funzione min non esiste
}
DL=d[m][n];
cout<<" DL= "<< DL <<endl;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT