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 (3) svariati errori implementativi.
//Notartomaso Giovanni,143411,dis02

//03-10-2003,esame di fondamenti di informatica A,

//corso di laura in Ingegneria Informatica.

#include<iostream.h>

#include<string.h>

#include<stdio.h>


int matrice(int, int);
char s[20], t[20];
int n,m,DL,costo,i,j,a,b,c,min;
const int dim=21;
int d[dim][dim];

//FIXME l'utilizzo di variabili globali dove non necessario e' sbagliato!


void main()
{
  cout<<"Inserire la prima stringa: \n";
  gets(s); 
  cout<<"Inserire la seconda stringa: \n";
  gets(t);
  n=strlen(s);
  m=strlen(t);
  if(n==0)
    DL=m;
  else DL=n; //FIXME non aderente al testo! 


  matrice(i,j);
  a=d[j+1][i]+1;
  b=d[j][i+1]+1;
  c=d[j][i]+costo;
  do
  {
    if(d[0][j]==d[i][0])
      costo=1;
    else costo=0;
    min=a < b ? a:b && b < c ? b:c; //faccio il confronto per vedere il minimo

  } while(d[i][0]!=0 && d[j][0]!=0); //FIXME come esco da questo ciclo? (a parte cio' il testo ne prevedeva due).


  DL=d[min][min]; //FIXME ???

  if(n==0)
    cout<<"la distanza di Levenshtein Š "<<DL<<endl;
  else
    cout<<"la distanza di Levenshtein Š "<<DL<<endl;
}

int matrice(int i,int j) //XXX di solito le variabili indice non si passano

{
  n=strlen(s);
  m=strlen(t); //FIXME se li era gia' calcolati

  for(i=0; i<n; i++)
  {
    for(j=0; j<m; j++);
  } //FIXME due cicli nidificati che non sottintendono nessuna istruzione? 

    //      E' vero che i PC di oggi sono molto veloci ma buttare via cicli macchina cosi' mi sembra eccessivo!

  return 0;

}


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