Correzione prova pratica del 7 luglio 2004

Correzione prova pratica del 7 luglio 2004


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  funzionante, ma sceglie una pessima struttura dati
// Spiacci Fabio Mat. 163581 data: 07/07/2004 Teledidattico

// Esame di Fondamenti di Informatica A, corso di laurea in ingeneria informatica.


#include <iostream>
#include <fstream>

using namespace std;

const int max_rig = 26;
const int max_col = 2;
void riempi(int matrice [max_rig] [max_col]);
void stampa_testo(int matrice [max_rig] [max_col]);


// ***** programma principale *****

int main()
{
  int matrice [max_rig] [max_col] = {0}; //FIXME pessima scelta di struttura dati, richiede la scansione per trovare il dato di interesse

  riempi(matrice);
  stampa_testo(matrice);
}


void riempi(int matrice [max_rig] [max_col])
{
  ifstream myFile("tabella.txt"); 

  if (! myFile) 
  {
    cout << "Error opening file" << endl;
    exit (0);
  }

  int r = 0;
  int c = 0;
  char leggi_car;
  int leggi_int;

  while (!myFile.eof())
  {
    myFile >> (leggi_car);
    matrice [r] [c] = int(leggi_car); 
    myFile >> (leggi_int);
    matrice [r] [c+1] = int(leggi_int);
    r ++;
    c = 0; //XXX c non lo aveva modificato niente, in effetti è anche inutile

  }

  myFile.close();
}





void stampa_testo(int matrice [max_rig] [max_col])
{
  char ch;
  bool trovato = false;
  int r = 0;

  ifstream myFile("testo.txt"); 

  if (! myFile) 
  {
    cout << "Error opening file" << endl;
    exit (1);
  }

  while (!myFile.eof())
  {

    cout << ch; //FIXME al primo ciclo stampa un carattere a caso!

    myFile.get(ch); 

    if (ch == '[')
    {
      myFile.get(ch);


      while (trovato == false)
      {
  if (char (matrice [r] [0]) == ch)
  { 
    cout << int(matrice [r] [1]);
    myFile.get(ch); // salto la seconda parentesi

    myFile.get(ch); // salto la seconda parentesi 

    trovato = true;
  }
  r ++;
      }

      r = 0;
      trovato = false; 
    }

  }       
  myFile.close();

}





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