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:
- FIXME segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO segnala l'assenza di parti di codice
- XXX segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
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 struttura dati non adeguata, imprecisione in conversione
//Merlini Mirko, 158047, < DIS06 >
//07/07/2004 - esame di Fondamenti di Informatica A,corso di laurea in Ingegneria Elettronica
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int c_alfabeto[26]={0},valore,a=0;
char alfabeto[26]="",lettera,carattere,attuale,scarto;
cout<<endl;
// lettura da file tabella.txt
ifstream tabella("tabella.txt");
// controllo esistenza file tabella.txt
if(!tabella)
{
cerr<<"\n Non e' possibile aprire il file tabella.txt \n\n";
system("PAUSE");
exit(1);
}
// salvataggio dati presenti in tabella
while(tabella>>lettera)
{
alfabeto[a]=lettera;
tabella>>valore;
c_alfabeto[a]=valore;
a++;
} //FIXME struttura dati non particolarmente adeguata
// chiusura file tabella.txt
tabella.close();
// lettura da file testo.txt
ifstream testo("testo.txt");
// controllo esistenza file testo
if (!testo)
{
cerr<<"\n Non e' possibile aprire il file testo.txt \n\n";
system("PAUSE");
exit(1);
}
// sostituzione lettera maiuscola con valore numerico
while(testo.get(carattere))
{
if(carattere=='[')
{
testo>>attuale;
for(a=0;a<25;a++) //FIXME la scansione di tutto il vettore è inutile
if(attuale==alfabeto[a])
cout<<c_alfabeto[a];
testo>>scarto; // eliminino la ']'
}
else cout<<carattere;
}
// chiusura file testo.txt
testo.close();
cout<<endl<<endl;
system("PAUSE");
return 0;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT