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 (9) mancanza di inizializzazione variabile e di compilazione
//<TALANI> <SILVIA>, <138085>, <> , <CAD10> //FIXME manca l'indirizzo di posta elettronica

//<9/07/03> -eSAME DI fONDAMENTI DI INFORMATICA, CORSO DI LAUREA IN iNGEGNERIA DELLE TELECOMUNICAZIONI


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

void risulta(int);

int main() {
int primo, secondo, count=0, conta=0;
int m[3][3];
int i;
for(i=0;i<3;i++)
   for (int j=0;j<3;j++)
       m[i][j]=10;
ifstream fin("tris.txt");
while (fin >> primo >> secondo){
     if ((count%2)==0)   m[primo][secondo]=1;
     else  m[primo][secondo]=0;
     count++;}
fin.close();
for (i=0;i<3;i++){
   conta = 0;
   for (j=0;j<3;j++) //FIXME in c++ le variabili vanno dichiarate prima di usarle

   conta+=m[i][j];
   if (conta==3) break;
   if (conta==0) break;}
risulta(conta);
for (j=0;j<3;j++){
     conta = 0;
     for (i=0;i<3;i++)
     conta+=m[i][j];
     if (conta==3) break;
     if (conta==0) break;}
risulta(conta);
conta=0;
for (i=0;i<3;i++)
     conta+=m[i][i];
risulta(conta);
for (i=0;i<3;i++)
    conta+=m[i][2-i]; //FIXME peccato che si sia dimenticata di ri-azzerare conta

risulta(conta);
cout << "Partita patta" << endl;
return 0;}


void risulta(int c){
   if (c==3) {
      cout << "Partita vinta da x" << endl;
      exit(1);}
   if (c==0) {
      cout << "Partita vinta da o" << endl;
      exit(2);}
}


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