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, qualche ingenuita' e codice non indentato
// luca pecchini 157031 luca.pecchini1@studenti.unipr.it

// dis07  7/7/2004

//esame di fondamenti di informatica A

//ing. elettronica

//

//FIXME non indentato

#include <iostream>
#include <cstdlib>

#include <fstream>

using namespace std;
void elaborazione (void);
int i=0;
int num[26];
char l[26];
int main () 
{


  ifstream fin ("tabella.txt");
  if (!fin) {
    cout <<"errore nell'aperptura del file tabella.txt"<<endl;
    exit (1);
  }
  for (;i<26;i++)
    fin >>l[i] >>num [i]; //FIXME e se ci sono meno di 26 righe in tabella.txt?




  fin.close ();
  cout <<"il testo finale e'"<<endl;

  elaborazione ();
  cout <<endl;

  system ("pause");
  return (0);

}


void elaborazione (void)
{
  ifstream fin1 ("testo.txt");
  if (!fin1){
    cout <<"errore nell'aperptura del file testo.txt"<<endl;
    exit (1);
  }


  char ch;
  while ((ch =fin1.peek ()) != EOF)
  {
    if (ch == '[')
    {fin1.ignore ();

      fin1 >>ch;
      for (i=0;i<26;i++)
  if (l[i]==ch)
    cout <<num[i]; //FIXME una volta trovata la lettera deve anche uscire dal for

    }
    else
      if (ch==']') //FIXME la lettura della ']' poteva metterla in maniera molto piu' sensata dentro il blocco precedente.

  fin1.ignore ();
      else
  cout <<ch;
    fin1.get (ch);
  }
  cout <<endl;
  fin1.close ();
}


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