Fondamenti di Informatica (STI) 2005-2006

Quinta esercitazione - 3 aprile 2006


Obiettivi


Introduzione

Le API standard Java contengono numerose classi per la lettura di dati da file e la scrittura di dati su file.

In questa esercitazione usiamo solo file di testo, cioè file costituiti da sequenze di caratteri ASCII. Qualsiasi informazione, anche numerica, deve quindi essere scritta o letta sotto forma di stringa di caratteri, provvedendo all'interno del programma alle opportune conversioni in caso debbano essere lette o scritte informazioni di altro tipo, ad esempio numeriche.

Non affrontiamo in dettaglio l'uso di file di testo, ma gli esercizi proposti possono essere risolti in base ai due programmi di esempio indicati nel seguito, che usano le classi BufferedReader e FileWriter:

Esercizi proposti

  1. Leggere un file di testo (il cui nome viene immesso da tastiera) che contiene un valore reale su ciascuna riga, e alla fine della lettura visualizzare il numero di valori letti, il numero di valori strettamente positivi e il umero di valori strettamente negativi. Sia il programma compilato che il file da leggere dovranno risiedere nella stessa cartella del file system. Naturalmente il file dovrà essere creato prima di eseguire il programma, p.es. usando l'editor BloccoNote.
  2. Come sopra, ma i tre risultati devono essere scritti su un file di testo (anche il nome di questo file viene immesso da tastiera).
  3. Leggere un file come nel punto 2, leggere da tastiera un valore reale (soglia), e scrivere su un altro file di testo solo i valori letti che differiscono dalla soglia di non più del 7%.
  4. Si assuma che il file rappresenti diverse sequenze di valori; ciascuna sequenza è separata dalla precedente da una linea che inizia con il carattere '='. Il programma deve scrivere su file, per ciascuna delle sequenza lette, il numero di valori della sequenza, la somma e la media dei valori.