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: 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 (4) errori sparsi, non arriva neanche alla inizializzazione delle matrici
// Garavelli Sara  matr:124189

// sara.garavelli@tin.it

// data:03/10/03  esame di Fondamenti di informatica A

// Corso di laurea in Ingegneria delle Telecomunicazioni


//Distanza di Levenshtein


#include<iostream.h>

#include<string.h>

#include<stdlib.h>


const int rig=21;
const int col=21;

int main()
{
  char s[20];
  char t[20];
  int n, m,DL,costo,min;
  cout<<"Introduci due stringhe:"<<endl;
  cin>>s;
  cin>>t;
  n=strlen(s);      //calcolo lunghezza stringhe

  m=strlen(t);
  if (n==0 && m!=0)              //calcolo di DL se m=0 FIXME sbagliato imporre m!=0 (nel testo non c'e')

  {DL=m;                    //o n=0;

    cout<<DL<<endl;
    exit(1);
  }
  else if (m==0 && n!=0) //FIXME non solo la condizione e' fuori tema ma l'else non ci voleva

  {DL=n;
    cout<<DL<<endl;
    exit(1);
  }
  else //FIXME inutile

  {int d[rig][col];             //inizializzaz della matrice

    for (int i=0;i<n;i++)
    { d[i][col]=i; //FIXME cosi' inizializza qualcosa che sta fuori dalla matrice e non la prima colonna (quella di indice 0)

      cout<<d[i][col];}
      for (int j=1;j<m;j++) //FIXME perche' questo for e' dentro all'altro???

      { d[rig][j]=j;
  cout<<endl;
  cout<<d[rig][j]; }
  cout<<endl;
  }


  for (int i=0;i<=n-1;i++)           //calcolo di costo

    for(int j=0;j<m-1;j++) //FIXME <=

    {if (t[j]==s[i])
      costo=0;
      else costo=1;
      cout<<costo;} //FIXME i due cicli dovevano continuare


      if ((d(j+1,i)+1)<(d(j,i+1)+1))
  min=d(j+1,i)+1;
      else if ((d(i,j)+costo)<min); //FIXME evidentemente le piacciono gli else, peccato che anche qua non ci volesse

      min=d(i,j)+costo;





      return 0;
}


Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a bertozzi@CE.UniPR.IT