Correzione prova pratica del 9 luglio 2003

Correzione prova pratica del 9 luglio 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 (5) lettura sbagliata e farraginosa, controllo sbagliato
//FIGUS NICOLA, 131141, N.FIGUS@LIBERO.IT, STUD12,

//09/07/03, INFO A, ING.TELECOMUNICAZIONI.

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

int main(){
  int s[3][3]={0}, x[10]={0}, y[10]={0};
  int i=0, c=0, p=0, d, f;
  int rig=0, col=0, count=0, cont=0;
  ifstream fin("tris.txt");
  if(!fin){
    cerr<<"Il file non puo' essere aperto"<<endl;
    exit(1);
  }
  do{
    c += 1;
    if(c%2){
      fin>>x[i]>>x[i+1];
      if((x[i]==0)&&(x[i+1]==0))count=1; //FIXME ???


      rig=x[i];
      col=x[i+1];
      s[rig][col]=1; //XXX poteva direttamente scrivere s[x[i]][x[i+1]]=1;

      i+=2;

    }
    else{
      fin>>y[p]>>y[p+1];
      if((y[p]==0)&&(y[p+1]==0))cont=1; //FIXME ???

      if((count!=1)||(cont!=1)){
  rig=y[p];
  col=y[p+1];
  s[rig][col]=2;
  p+=2;}
    }
  } while ((fin)&&((count!=1)||(cont!=1))); //FIXME questa condizione non la capisco, lei esce se finisce il file e se la casella (0,0) e' stata riempita???

  //FIXME comunquesia l'utilizzo di if(fin) non e' propriamente corretto in questi termini

  fin.close();



  for(j=0;j<3;j++){K=0; //FIXME e j, k  e K  chi sono??

    if(s[j][k]!=0){
      if((s[j][k+1]==1)&&(s[j][k+2]==1))cout<<"Vince X ."<<endl;
      else if((s[j][k+1]==2)&&(s[j][k+2]==2))cout<<"Vince y ."<<endl;
      else cout<<"partita patta."<<endl;
    }




  }
}


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