10. File e loro attributi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "10. File e loro attributi"

Transcript

1 appunti java Capitolo 10 pag File e loro attributi In generale, in qualsiasi sistema operativo, il file system consente di operare su archivi di dati (data files) che possono essere organizzati e memorizzati su supporto magnetico in due modi fondamentali: 1. Come sequenze di record di lunghezza variabile individuate da particolari marcatori di fine record; 2. Come sequenze di record di lunghezza fissa senza marcatori; Il file di testo è il più duttile nel senso che può assumere entrambe le vesti indicate in precedenza. Assume la prima configurazione, ovvero è un file di record (il record è una linea di testo) di lunghezza variabile terminata da uno o più marcatori di fine linea End Of Line (EOL). La seconda configurazione è sempre disponibile e consiste nel pensare il file di testo come file con record di lunghezza fissa (il record è un carattere pari a uno o due byte). In questo caso si deve pensare al marcatore di fine linea come a un particolare carattere che non ha immagine ma che stampato genera un ritorno carrello spostando il cursore all inizio della linea successiva del dispositivo di stampa (video o stampante). In informatica quando si parla di file di testo ci si riferisce alla prima interpretazione avvero a quella di file con record pari a una linea di testo di lunghezza variabile. Il file deve, di conseguenza, essere generato o letto in sequenza dal primo all ultimo record e può subire aggiornamenti solo nella forma di addizione in coda (append) di nuove righe. Si può concludere, quindi, che un file di record di lunghezza variabile consente la sola metodologia di ACCESSO SEQUENZIALE. Il secondo tipo di file che opera su record di dati di lunghezza fissa predefinita, oltre all ACCESSO SEQUENZIALE consente un ACCESSO INDICIZZATO che permette salti al record di posizione relativa scelta dall utente. La lunghezza fissa di ogni record consente anche la SOVRASCRITTURA di un record intermedio oltre alla addizione in coda di nuovi record specifica dei file sequenziali. Un file è quindi una struttura dati permanente (mentre il vettore è volatile perché memorizzato in memoria di lavoro) costituita da una sequenza di RECORD virtualmente illimitata come mostrato in figura: INIZ ATT EOF Ogni file viene scandito (letto, sfogliato) leggendo un record e portandolo in memoria di lavoro. A tale fine deve quindi essere dotato di un puntatore INIZiale che indica dove si trova la sua TESTA e di un puntatore ATTuale che indica la posizione della successiva lettura. Infine deve possedere un particolare MARCATORE che indica la sua fine EOF=EndOfFile. Se il puntatore ATT è posizionato sul marcatore EOF la lettura è terminata e non è più possibile avanzare.

2 appunti java Capitolo 10 pag. 2 Le due tipologie di file precedentemente descritte hanno, nei linguaggi imperativi tradizionali (es. Pascal), definizioni e metodologie di accesso distinte che fanno riferimento alla loro struttura. La struttura fisica di memorizzazione sui dispositivi per i file di tipo TEXT può essere diversa a seconda del sistema operativo e/o del linguaggio che li genera. In particolare il marcatore di fine linea può essere costituito da due marcatori di fine riga (in Pascal/Windows ad esempio CARRIAGE RETURN CR=13, LINE FEED LF=10) o da un solo marcatore (New Line \n in c/unix). La struttura fisica di memorizzazione dei FILE di RECORD è di norma costituita da registrazioni binarie di lunghezza fissa senza marcatori con l esclusione dell EOF File in linguaggio Java Il linguaggio Java, con l uso degli stream e dei filtri, visti nel capitolo precedente, tenta di superare questa classica suddivisione tra le due tipologie di file. Si è visto che un flusso FileReader o InputStreamReader consente di accedere in input ai singoli caratteri con il metodo read(). Viceversa introducendo il filtro BufferedReader si può accedere ad una intera linea con il metodo readline(). Per non dipendere dal sistema operativo o dal linguaggio che ha creato il file di testo java interpreta come EndOfLine corretto sia la presenza di uno dei marcatori CR=13 ( \r ) oppure LF=10 ( \n ) oppure la presenza contemporanea di entrambi i caratteri \r + \n. I file con record di lunghezza fissa sono invece memorizzati come byte binari dipendenti dalla dimensione del tipo di dato elementare che si intende registrare. Questi non hanno in Java un particolare trattamento separato dai file di Testo infatti la classe con nome improprio Random Access File consente di trattare entrambi i tipi di file I metodi che operano sui file In sostanza i file di tipo TEXT possono subire due trattamenti, per linee o per singolo carattere. Nel primo caso i record sono righe nel secondo li si tratta come file con record di lunghezza fissa di uno o due byte. La diversità di struttura fisica si traduce solo nella disponibilità di due modalità di accesso scelte dall utente. Se un file di testo lo si vede come file di linee vi si accede solo con operazioni sequenziali di lettura o solo con l addizione di record in coda in scrittura, se lo si vede invece come file di caratteri sono consentite le operazioni di SALTO al record (carattere) di posizione desiderata, sia per la scrittura (distruttiva) che per la lettura di un record. I record di un file (con record costante) hanno quindi una posizione (INDICE) relativa ben definita che parte dal 1 record, che ha posizione relativa o indice 0, fino all n-esimo con posizione N-1. Struttura fisico-logica di un FILE di RECORD di lunghezza fissa: N-1 Indice di Posizione relativa I metodi che caratterizzano una classe che opera sui file si possono quindi raggruppare logicamente in quattro categorie:

3 appunti java Capitolo 10 pag. 3 Costruttori Metodi di accesso agli attributi del file Metodi di lettura Metodi di scrittura La classe RandomAccessFile di Java La tabella seguente elenca i metodi della classe RandomAccessFile. RandomAccessFile NOTE Costruttori RandomAccessFile(String, String) La prima stringa è un nome di file fisico, la seconda indica il modo con cui si accede. Il modo può essere di lettura modo read r o in lettura e scrittura modo rw. In modalità rw se non esiste lo crea, se esiste si predispone per le operazioni di lettura o scrittura ponedo il puntatore all inizio. Invia una IOException se in modalità r non esiste il file o si tratta di una directory. Metodi long length() void setlength(long) long getfilepointer() void seek(long) void close() Metodi di lettura int readint() long readlong() double readdouble() float byte boolean char String readline() Attenzione: in scrittura è a carico del programmatore aggiungere un carattere di fine linea \r o \n o entrambi. Metodi di Scrittura void writeint(int) void writelong(long) void writedouble(double) void writefloat(float) void writebyte(int) void writeboolean(boolean) void writechar(int) void writebytes(string) void writechars(string) Restituisce il numero di byte del file. Setta la lunghezza del file. Se il file e più corto lo amplia, se più lungo lo tronca. In caso di riscrittura su un file esistente è necessario utilizzare questo metodo al termine della scrittura per inserire l eof. Nella forma setlength( getfilepointer()). Restituisce la posizione in byte del puntatore attuale Porta il puntatore sul byte di posizione indicata Chiude il file e libera la memoria heap Legge un dato e trasla il puntatore di una quantità pari al numero di byte binari occupati dal tipo di dato. La lettura produce un EOFException quando incontra il termine del File Legge tutti i caratteri fino al marcatore di fine linea \r o \n. Se il puntatore è a EOF la stringa acquisita è null. In ogni caso si produce un EOFException Scrive il dato indicato e trasla il puntatore. Scrive tutti i byte di una stringa in formato dipendente dalla macchina. Scrive tutti i byte di una stringa in formato Unicode.

4 appunti java Capitolo 10 pag. 4 Lettura di un file di testo Siccome anche un file sequenziale di testo può essere trattato con i metodi della classe Random Access File si affronterà per primo un esercizio di lettura e stampa di un file di testo. esempio 1. Assegnato un file di testo memorizzato su disco il cui nome fisico sia <C:\mio.txt> leggerlo e stamparlo sul monitor. Richiesta: Ricordando che un file di testo è organizzato in linee che terminano con un marcatore di fine linea, utilizzare i metodi opportuni di RAF per acquisire e stampare una linea completa per volta fino a fine file. Codifica: import java.io.*; public class cap10_es_01 { public static void main(string args[])throws IOException { RandomAccessFile in=new RandomAccessFile("c:/mio.txt","r"); // (1) System.out.println("\nfile di "+in.length()+" byte contiene:"); // (2) String dat=" " ; while ((dat=in.readline())!=null) // (3) System.out.println(dat); System.out.println("\nFine esecuzione."); Esecuzione: Il file stampato è costituito da cinque linee come mostra l output della finestra. Commento al codice: La nota (1) mostra il costruttore del file random che assume il nome logico in. La nota (2) evidenzia l utilizzo del metodo length() per stampare la lunghezza in byte del file, la (3) il metodo che acquisisce una linea del file e testa il raggiungimento della fine del file. Se si contano i caratteri stampati si nota che le 5 righe contengono 70 caratteri e di conseguenza gli 80 byte indicati nell autput sono inputabili alla coppia di marcatori di EOL \r \n presenti su ogni riga. Creazione di un file di testo esempio 2. realizzare un programma che generi in un ciclo 100 numeri da 1000 a 1099 e dopo averli trasformati in stringa li scriva su una singola riga del file. Oltre a generare il file richiesto il main() deve anche invocare un metodo di stampa() separato per verificare sul monitor se il programma ha svolto quanto richiesto.

5 appunti java Capitolo 10 pag. 5 Codifica: import java.io.*; public class cap10_es_02 { public static void Stampa(String n_fil)throws IOException { RandomAccessFile in=new RandomAccessFile(n_fil,"r"); // (4) System.out.print("\nil file lungo "+in.length()+" byte"); // (5) System.out.println(" contiene:\n"); String dat; while ((dat=in.readline())!=null) // (6) System.out.println(dat); public static void main(string args[])throws IOException { String n_fil="c:/nuovo.dat"; RandomAccessFile out=new RandomAccessFile(n_fil,"rw"); // (1) for (int i=0; i<100; i++) out.writebytes(""+(i+1000)+'\n'); // (2) out.setlength(out.getfilepointer()); // (3) out.close(); // (4) Stampa(n_fil); // stampa del file generato System.out.println("\nfine esecuzione.\n"); Esecuzione: La finestra di output mostra che il file contiene su ogni riga i numeri desiderati trasformati in testo e che la lunghezza totale del file è 500 byte. Infatti una riga contiene 5 caratteri; quattro numerici più il marcatore di fine linea \r. Commento al codice: La nota (1) indica il costruttore del file in modalità scrittura rw. La nota (2) indica il ciclo di costruzione delle righe che vengono scritte nel file. In particolare il metodo writebytes(string) ha come parametro una String e quindi il doppio apice +(i+1000)+ \r che precede il numero generato nel ciclo è indispensabile per trasformare immediatamente il numero in un stringa. Il carattere \r è il marcatore fine linea inserito nella stringa. In alternativa si poteva scrive un \n oppure una sequenza \r + \n. La nota (3) indica la modalità con cui si deve inserire il Fine File EOF usando il metodo setlength( long) dove il parametro numerico è la lunghezza in byte del file che si intende marcare con EOF. Il close() (4) successivo non è indispensabile ha la sola funzione di liberare lo heap dagli oggetti File costruiti. Le note (5) e (6) indicano la necessità di usare nuovamente il costruttore in modalità r per leggere il file se prima è stato chiuso con close().

6 appunti java Capitolo 10 pag. 6 Appendere righe a un file di testo esempio 3. realizzare un programma che aggiunga al precedente file di testo altri 10 numeri da 1099 a 1108 e li scriva in coda al file esistente. Oltre ad appendere i dati al file il main() deve anche invocare un metodo di stampa() separato per verificare sul monitor se il programma ha svolto quanto richiesto. Codifica: import java.io.*; public class cap10_es_03 { public static void Stampa(String n_fil)throws IOException { RandomAccessFile in=new RandomAccessFile(n_fil,"r"); System.out.print("\nil file lungo "+in.length()+" byte"); System.out.println(" contiene:\n"); String dat; while ((dat=in.readline())!=null) System.out.println(dat); public static void main(string args[])throws IOException { String n_fil="c:/nuovo.dat"; RandomAccessFile out=new RandomAccessFile(n_fil,"rw"); out.seek(out.length()); // posizionamento in coda del puntatore for (int i=1100; i<1110; i++) out.writebytes(""+i+'\n'); out.setlength(out.getfilepointer()); out.close(); Stampa(n_fil); // stampa del file generato System.out.println("\nfine esecuzione.\n"); Esecuzione: l output dovrebbe mostrare anche le nuove righe appese al procedente file. Commenti: La nota su out.seek(out.length()); mostra come posizionare il puntatore attuale a fine file per eseguire l append dei nuovi dati. Generare un file di dati Per rendere evidente la diversità tra un file di testo e uno di dati proponiamo il seguente: esempio 4. realizzare un programma che generi in un ciclo 5 numeri da a e li scriva su un file di dati. Oltre a generare il file richiesto il main() deve anche stamparlo per verificare se il programma ha svolto quanto richiesto.

7 appunti java Capitolo 10 pag. 7 Codifica: import java.io.*; public class cap10_es_04 { public static void main(string args[])throws IOException { RandomAccessFile out=new RandomAccessFile("nuovo.dat","rw"); for (int i=0; i<5; i++) out.writeint(i+10000); // (1) out.setlength(out.getfilepointer()); /* verifica del file costruito */ System.out.print("\nil file è di :"+out.length()+" byte"); System.out.println("e contiene:\n"); out.seek(0); int dat=0; // (2) try { while (true) { // (3) dat=out.readint(); // (4) System.out.print(dat+" "); catch (EOFException e) {System.out.println("\nFINE FILE\n"); System.out.println("Esecuzione terminata."); Esecuzione: La finestra di output mostra che il file contiene i cinque numeri richiesti ma a differenza del precedente programma non sono stampati su righe diverse. La lunghezza totale del file è 20 byte, infatti un record e costituito da un numero che pur essendo di 5 cifre non è memorizzato in modalità carattere ma in modalità binaria e quindi occupa lo spazio di un int che in Java è pari a 4 byte. Evidentemente non è più presente il marcatore di fine linea \r. Commento al codice: Nella prima parte nulla è cambiato rispetto all esempio precedente solo la nota (1) indica il nuovo metodo usato per scrivere un record intero writeint(). Rispetto al precedente esempio non si è operata la chiusura del file con il metodo close(), per evidenziare che in questo caso non è più necessario riusare in costruttore ma è sufficiente posizionare il puntatore all inizio del file con il metodo seek(0) della nota (2). Le righe con note (3) e (4) e successive mostrano il metodo che si può usare per leggere un file di record. Il blocco try{ catch (..) { indica che il ciclo apparentemente infinito while (true) viene interrotto quando si raggiunge il fine file e il metodo readint() genera un eccezione che rimanda all esecuzione del blocco cath. Si nota infatti che nella finestra di output al termine del file è stampato in messaggio di <FINE FILE> generato dall eccezione EOFException.

8 appunti java Capitolo 10 pag. 8 Generare un file di dati con più campi Per rendere evidente come si opera su un file di dati formato da diversi campi si propone il seguente: esempio 5. realizzare un programma che legga da tastiera una sequenza di nomi di città seguite dal numero intero che rappresenta la popolazione e scriva in un opportuno file di dati. Oltre a generare il file richiesto il main() deve anche invocare una procedura stampa() per verificare se il programma ha svolto quanto richiesto. Il record da memorizzare è costituito da una Stringa e da un numero intero e si decide di dedicare un massimo di 20 caratteri alla descrizione della città e in intero per la popolazione (in java int è di 4 byte, più che sufficiente a contenere la popolazione). Siccome si devono acquisire i dati da tastiera, si può organizzare il programma filtrando i dati con uno StreamTokenizer per separare con facilità le stringhe dai numeri e quindi comporre il record di 24 byte da scrivere nel file di output. Lo schema dei flussi e filtri potrebbe essere così rappresentato: Flusso di Char ISR Flusso di Token Flusso di Record Programma. ST RAF (cons. di Token) File rappresentazione dei flussi del programma di I/O richiesto dal problema. File Flusso di Record RAF Prog. Stampa. (cons. di Record) I flussi del metodo stampa(). Codifica: import java.io.*; public class cap10_es_05 { public static void stampa(string sfil) throws IOException{ RandomAccessFile out=new RandomAccessFile(sfil,"r"); // (20) System.out.print("\nil file contiene:\n"); out.seek(0); // (21) String cit;int dat=0; byte[] b=new byte[20]; // (22) try { while (true) { out.read(b,0,20); // (23) cit=new String(b,0,20); // (24) dat=out.readint(); // (25) System.out.println(cit+" "+dat); catch (EOFException e) {System.out.println("\nFINE FILE\n");

9 appunti java Capitolo 10 pag. 9 public static void main(string args[])throws IOException { String sfil_out="citta.dat"; InputStreamReader in=new InputStreamReader(System.in); // (1) StreamTokenizer st=new StreamTokenizer(in); // (2) RandomAccessFile out=new RandomAccessFile(sfil_out,"rw"); // (3) out.seek(0); // (4) String s="";int pop=0; st.nexttoken(); while ((st.ttype!=st.tt_eof)) { if(st.ttype==st.tt_word){ s=st.sval; // (5) s=s+" "; // (6) s=s.substring(0,20); // (7) out.writebytes(s); // (8) else if (st.ttype==st.tt_number) { pop=(int)st.nval; // (9) out.writeint(pop); // (10) st.nexttoken(); out.setlength(out.getfilepointer()); // (11) out.close(); stampa(sfil_out); // (12) System.out.println("Esecuzione terminata."); Commento al codice: Le note da (1) a (3) mostrano i costruttori dei flussi indicati nello schema grafico. La (4) il posizionamento in testa al file (non indispensabile perché è appena stato aperto). Il ciclo separa i token e viene interrotto da un EOF immesso da tastiera (si deve premere Ctrl-z su una riga vuota). Le note da (5) a (8) mostrano come si acquisisce la stringa e la si satura di spazi bianchi dimensionandola a 20 caratteri e quindi la si scrive nel file di output. Le note (9) e (10) le analoghe operazioni per scrivere il campo popolazione nel file. Le (11) e (12) sono l operazione di chiusura del file e quella di invocazione della stampa() di verifica. Le note da (20) a (25) mostrano come si acquisisce un record e lo si mostra. Sovrascrivere in un file di dati esempio 6. realizzare un programma che legga da tastiera il nome di una città, presente nel file del precedente esempio 5, la faccia seguire dal numero intero che rappresenta la nuova popolazione, diversa da quella memorizzata precedentemente, quindi sovrascriva il record da aggiornare nel file di dati. Il main() deve anche invocare i metodi: leggi_cit() che acquisisce la stringa corretta lunga 20 caratteri, leggi_int() per acquisire la popolazione, ricerca() che restituisce la posizione del record da aggiornare, quindi il main sovrascrive il record stesso. Infine stampa() verificherà se il programma ha svolto quanto richiesto. Scomposizione:

10 appunti java Capitolo 10 pag. 10 Leggi_int() main() Leggi_cit() ricerca() stampa() Codifica: import java.io.*; public class cap10_es_06 { static void stampa(string sfil) throws IOException{ RandomAccessFile out=new RandomAccessFile(sfil,"r"); // (20) System.out.print("\nil file contiene:\n"); out.seek(0); // (21) String cit;int dat=0; byte[] b=new byte[20]; // (22) try { while (true) { out.read(b,0,20); // (23) cit=new String(b,0,20); // (24) dat=out.readint(); // (25) System.out.println(cit+" "+dat); catch (EOFException e) {System.out.println("\nFINE FILE\n"); static String Leggi_cit() {return "Bologna ";//lettura simulata static int Leggi_int() {return 1111; // lettura simulata static long Ricerca(String cit, RandomAccessFile io) throws IOException{ String cit_f; byte[] b=new byte[20]; io.seek(0); io.read(b,0,20); // lettura 1 record cit_f=new String(b,0,20); // lettura 1 record io.seek(24); // punt sul 2 record while (!cit.equals(cit_f)) { io.read(b,0,20); // lettura record succ cit_f=new String(b,0,20); io.seek(io.getfilepointer()+4); // punt sul record succ return (io.getfilepointer()-24); public static void main(string args[])throws IOException { String sfil="citta.dat"; RandomAccessFile io=new RandomAccessFile(sfil,"rw"); String cit=leggi_cit(); int pop=leggi_int(); long pos=ricerca(cit, io); io.seek(pos); // (1) io.writebytes(cit); // (2) io.writeint(pop); // (3) io.close(); stampa(sfil); System.out.println("Esecuzione terminata."); Commento al codice: Le note da (1) a (3) mostrano le operazione di sovrascrittura del record trovato.

11 appunti java Capitolo 10 pag La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche dei file presenti, cambiarne gli attributi, cancellare e rinominare file. File NOTE Costruttori File(String) Crea un oggetto della classe file associato al file fisico il cui nome, completo di Path, è indicato nella stringa. File(String, String) Separa il path genitore 1 string, dal path figlio 2 string Metodi di lettura Metodi di settaggio boolean exists() boolean canread() boolean canwrite() boolean isdirectory() boolean isfile() boolean ishidden() String getabsolutepath() String getname() String getparent() String[] list() long length() boolean createnewfile() boolean delete() void deleteonexit() boolean mkdir() boolean renameto(file) boolean setreadonly() Verifica l esistenza del file con cui è invocata. Esempio: String s= autoexec.bat ; File f=new File(s); if (f.exists()) Verifica se il file con cui è invocata e di sola lettura. Esempio: if (f.canread()) Idem per la lettura e scrittura. Verifica se si tratta di Directory Verifica se si tratta di File Verifica se il File è nascosto. Restituisce una stringa con il path completo del file. Restituisce una stringa con il nome del File. Restituisce una stringa con il solo path del file. Restituisce un array di stringhe con tutti i file e le sottodirectory se invocato con un nome di directory. File f=new File( C:\ ); String s[]=f.list(); Restituisce la lunghezza in byte del file invocante. Crea un file vuoto. Il boolean è true se l operazione ha avuto successo. Cancella il file. Setta il file per la sua cancellazione all uscita dal programma. Crea una directory Rinomina il file invocante con il nome del parametro. Setta il file in sola lettura. Il boolean è true se l operazione è riuscita.

12 appunti java Capitolo 10 pag. 12 esempio 7. realizzare un programma che acquisisca una stringa corrispondente al nome fisico di un file presente su disco C:/.. e stampi un opportuno messaggio <Il file non esiste>, <Il file è lungo xxx byte. E di lettura/scrittura.>. a) Risolverlo rispettando la seguente scomposizione main() leggi() dove leggi() è la procedura di acquisizione del nome file; (vedi procedure di acquisizione da console nei capitoli precedenti). b) Risolverlo con il solo main() acquisendo la stringa come argomento del main(). Soluzione a) import java.io.*; class cap10_es_07_a{ static String leggi(){ int ch; StringBuffer S=new StringBuffer(); System.out.println("\n\n\nImmetti il nome del file cercato:"); try { while ((ch=system.in.read())!= '\n') // (1) S=S.append((char)ch); S=S.deleteCharAt(S.length()-1); // (2) catch (IOException e) { // (3) return S.toString(); public static void main(string arg[]){ String nome=leggi(); File f=new File(nome); // (4) if (!f.exists()) System.out.println("NON ESISTE il file "+nome); // (5) else { long dim=f.length(); // (6) System.out.print("Il file: "+nome+" e' lungo:"+dim+" byte."); if (f.canwrite()) // (7) System.out.println(" E' di lettura e scrittura."); else System.out.println(" E' di sola lettura."); Esecuzione: Il programma deve acquisire l input da console e quindi in RealJava è necessario eseguire il <Run With Console>. I risultati sono i seguenti: Commento al codice: Le note (1) e (3) mostrano una modalità di gestione delle eccezioni di IO, modalità diversa da quella adottata in precedenti input da console. La nota (2) evidenzia la necessità di eliminare il carattere di INVIO inserito dal ciclo di lettura nel Buffer. Le note da (4) a (7) evidenziano rispettivamente il costruttore del file, il metodo che ne testa l esistenza su disco, il metodo che ne determina la lunghezza in byte e infine il metodo che determina se il file è di sola lettura o anche di scrittura.

13 appunti java Capitolo 10 pag. 13 Soluzione b) import java.io.*; class cap10_es_07_b{ public static void main(string arg[]){ String nome=""; if (arg.length>=1) nome=arg[0]; // (1) File f=new File(nome); // (2) if (!f.exists()) // (3) System.out.println("NON ESISTE il file "+nome); else { long dim=f.length(); // (4) System.out.print("Il file: "+nome+" e' lungo:"+dim+" byte."); if (f.canwrite()) // (5) System.out.println(" E' di lettura e scrittura."); else System.out.println(" E' di sola lettura."); Esecuzione: Dopo la compilazione, prima di eseguire in Gel il programma, è necessario attivare l opzione Build Parameters come dalle immagini sottostanti: L opzione attivata farà comparire un campo in cui immettere una o più stringhe che sono gli argomenti del main(). L eventuale stringa c:\mio.txt digitata nella casella di testo, viene inserita nell array arg[] del main() alla componente 0. L esecuzione stampa sulla finestra di output il messaggio desiderato e, se il file mio.txt è presente, comparirà: Commento al codice:

14 appunti java Capitolo 10 pag. 14 La note (1) mostra come acquisire il nome del file dall array arg[]. Le note da (2) a (5) mostrano i metodi della classe File. esempio 8. realizzare un programma che acquisisca due stringhe corrispondenti al nome di una Directory e all estensione dei file da ricercare su disco C:/.. e stampi la lista dei file della directory che hanno l estensione desiderata. Risolverlo acquisendo le due stringhe come argomento del main(). Codifica: import java.io.*; class cap10_es_08{ public static void main(string arg[]){ String nome="",est=""; // (1) if (arg.length>=1) nome=arg[0]; // (2) if (arg.length>=2) est=arg[1]; // (3) File f=new File(nome); // (4) File a[]=f.listfiles(); // (5) for (int i=0; i<a.length;i++){ String s=a[i].tostring(); // (6) s=s.substring(s.length()-4); // (7) boolean b=(s.equalsignorecase(est)); // (8) if ((a[i].isfile()) && b) // (9) System.out.println(a[i].getName()); Esecuzione: Commento al codice: Le note (1),(2) e (3) mostrano come acquisire i due argomenti del main() e assegnarli alle variabili nome (della Directory) e est (estensione dei file da ricercare). Le note (4) e (5) sono rispettivamente, il costruttore che genera la Directory nella quale ricercare, e il metodo che estrae la lista di tutti i file contenuti in essa. Le note (6), (7) e (8) evidenziano rispettivamente che è necessario trasformare il nome del file a[i] in una stringa, estrarre dalla stringa i 4 caratteri finali che coincidono con l estensione e infine confrontare tale estensione con quella cercata (est) generando il flag booleano b. La nota (9) mostra infine che il nome del file viene stampato solo se b==true ovvero se ha l estensione desiderata.

15 appunti java Capitolo 10 pag. 15 esempio 9. Si desidera costruire un programma che consenta di creare un file di testo immettendo dati da tastiera o di appendere testo in coda se il file è presente su disco. a) Il nome del file deve essere immesso come parametro del main(); b) Se il file non esiste, dopo un opportuno messaggio, deve essere possibile l immissione elementare di righe di testo da tastiera fino a quando non si invia un EOF (Ctrl-z);; c) Se il file esiste, dopo l opportuna segnalazione, il file viene stampato sulla console e quindi si rende disponibile l immissione fino a quando non si invia un EOF (Ctrl-z); d) Al termine dell immissione, a scopo di controllo il metodo stampa() mostra il risultato. Codifica: import java.io.*; class cap10_es_09{ public static void stampa(string n_fil)throws IOException { RandomAccessFile in=new RandomAccessFile(n_fil,"r"); System.out.print("\nil file lungo "+in.length()+" byte \n"); String dat; while ((dat=in.readline())!=null) System.out.println(dat); in.close(); public static void main(string arg[])throws IOException{ String nome="";int ch; RandomAccessFile io;inputstreamreader in; // (1) if (arg.length>=1) nome=arg[0]; // (2) File f=new File(nome); // (3) if (f.exists()){ // (4) stampa(nome); io=new RandomAccessFile(nome,"rw"); // (5) System.out.println("Il file ESISTE, Appendi:"); io.seek(io.length()); // (6) else { io=new RandomAccessFile(nome,"rw"); // (5) System.out.println("Il file NON ESISTE, Immetti:"); in=new InputStreamReader(System.in); // (7) while ((ch=in.read())!= -1) io.writebyte(ch); // (8) io.setlength(io.getfilepointer()); // (9) io.close(); stampa(nome); Commento al codice: (1) definisce i file io e lo stream di inpeu in. (2) acquisisce il nome del file. (3) crea l oggetto File necessario per testarne l esistenza con il metodo di nota (4). Le note (5) e (6) creano rispettivamente il file di output e posizionano il puntatore per appendere. Le note (7) e (8) mostrano il ciclo di acquisizione da tastiera e scrittura nel file io. Il ciclo si interrompe se da tastiera si preme Ctrl-Z. (9) chiude il file con EOF.

16 appunti java Capitolo 10 pag E Esercizi Esercizi che usano, in lettura o scrittura, File di caratteri, di testo o di record di lunghezza fissa in modo elementare usando la sola console. [main() unico] Si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, stampi il il testo e il numero delle righe di cui è costituito sulla console." realizzare il solo main() e acquisire il nome file come parametro del main(string args[]). Fare uso del metodo readln() per leggere e contare le righe Si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, lo stampi su console eliminando i marcatori di end_of_line". Indicazioni: Fare uso del metodo read() per leggere i singoli caratteri e ricordare che i marcatori di fine linea sono o '\n' oppure '\r' oppure la coppia \r\n. realizzare il solo main() e acquisire il nome file come parametro del main(string args[]) Si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, ne conti le vocali che contiene e stampi sia il risultato che il testo su console.". Indicazioni: Fare uso del metodo read() per leggere i singoli caratteri. realizzare il solo main() e acquisire il nome file come parametro del main(string args[]) Si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, ne generi uno nuovo e lo memorizzi su disco appendendo al termine una nuova riga che contenga la frase <ultima riga appesa>. Stampi il nuovo testo su console.". realizzare il solo main() e acquisire il nome dei file di Input e di Output come parametri del main(string args[]) Si desidera costruire un programma che Legga un file di testo da disco e Generi un nuovo file di testo e lo memorizzi sul disco eliminando dal file di input i marcatori di fine linea. Stampi il file ottenuto su console.". realizzare il solo main() e acquisire il nome dei file di Input e di Output come parametri del main(string args[]) Si desidera costruire un programma che acquisito il nome di un file di interi (comprensivo del percorso path) memorizzato su disco, stampi su console gli interi separati da uno spazio." realizzare il solo main() e acquisire il nome file come parametro del main(string args[]) Si desidera costruire un programma che generi e memorizzi su disco un file di interi costituito da 20 numeri generati casualmente e compresi tra e , stampi su console il file come verifica." realizzare il solo main() e acquisire il nome file come parametro del main(string args[]).

17 appunti java Capitolo 10 pag Si desidera costruire un programma che acquisito il nome di un file di interi (comprensivo del percorso path) memorizzato su disco, stampi su console gli interi separati da uno spazio e successivamente sovrascriva ogni intero superiore a 1000 con 999 e ristampi il file su Console." realizzare il solo main() e acquisire il nome file come parametro del main(string args[]). Esercizi con l'uso della classe File: Si desidera costruire un programma che acquisito il nome di un file qualsiasi (comprensivo del percorso path) memorizzato su disco, stampi un messaggio di esistenza/non esistenza e indichi la sua lunghezza in byte. o realizzare il solo main() e acquisire il nome file come parametro del main(string args[]) Si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, stampi un messaggio di esistenza/non esistenza, indichi la sua lunghezza in byte e stampi testo sulla console." realizzare il solo main() e acquisire il nome file come parametro del main(string args[]). Esercizi di riscrittura o fusione di file Si desidera costruire un programma che acquisito il nome di un file di double (comprensivo del percorso path) memorizzato su disco, stampi su console i numeri separati da uno spazio e successivamente costruisca un nuovo file che contiene numeri interi derivati dal primo file per troncamento. Ristampi in nuovo file su Console." realizzare il solo main() e acquisire il nome dei due file come parametri del main(string args[]) Si desidera costruire un programma che acquisito il nome di due file di double (comprensivo del percorso path) memorizzati su disco, crei il file fusione che contiene in ogni record la somma dei corrispondenti valori dei due file origine. Stampi i tre file per verificare la correttezza del procedimento." Nota: Se i due file di double sono di lunghezza diversa il programma deve completare il file fusione con i soli numeri residui. realizzare il solo main() e acquisire il nome dei tre file come parametri del main(string args[]) desidera costruire un programma che acquisito il nome di un file di record costituiti da una Stringa di dimensione 20 e da un intero, che rappresentano rispettivamente una città e i suoi abitanti e di un secondo file con lo stesso tipo di record che rappresenta l'incremento/decremento subito dalla popolazione. Fondere in un nuovo file i dati della popolazione aggiornati e stampare i tre file per verificare la correttezza del procedimento." Nota: Si faccia l'ipotesi che il file popolazione sia ordinato alfabeticamente rispetto al nome della città e che così sia anche per il file aggiornamento. Non necessariamente l'aggiornamento contiene tutte le città (una città potrebbe non aver subito modifiche).

18 appunti java Capitolo 10 pag. 18 o Realizzare il solo main() e acquisire il nome dei due file popolazione e aggiornamento come parametri del main(string args[]). o Dopo aver usato un file temporaneo per la fusione, si dovrà cancellare il vecchio popolazione e aggiornamento e rinominare il file di fusione chiamandolo ancora popolazione. Problemi che usano File di caratteri o di testo in modo elementare su Frame con Eventi. (classe finestra con eventi comandi semplici) Come in 10.9, si desidera costruire un programma che acquisito il nome di un file qualsiasi (comprensivo del percorso path) memorizzato su disco, stampi in un campo di una frame il nome del file e un messaggio di esistenza/non esistenza con l'indicazione della sua lunghezza in byte. o il main(string args[]) deve acquisire il nome file come parametro di input e quindi chiamare il costruttore della classe finestra che mostra il risultato. o la classe finestra con i metodi dis_gui() fa_eventi() deve gestire il solo evento windowopened() al quale corrisponde il programma che stampa quanto richiesto Come in si desidera costruire un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, stampi su una frame un messaggio di esistenza/non esistenza, indichi la sua lunghezza in byte e stampi testo contenuto." o il main(string args[]) deve acquisire il nome file come parametro di input e quindi chiamare il costruttore della classe finestra che mostra il risultato. o la classe finestra con i metodi dis_gui() fa_eventi() deve gestire il solo evento windowopened() al quale corrisponde il programma che stampa quanto richiesto Come il 10.1 ma con output su finestra. mostrare il messaggio in una text area, gestendo l'evento windowopened() Come il 10.2 ma con output su finestra. mostrare il testo in una text area, gestendo l'evento windowopened() Come il 10.3 ma con output su finestra. mostrare il testo e quanto richiesto in una text area, gestendo l'evento windowopened() Come il 10.4 ma con output su finestra. mostrare il file di input in una text area e rimostrare il file di output in una text area distinta Come il 10.5 ma con output su finestra. mostrare il file di input in una text area e rimostrare il file di output in una text area distinta. Problemi che usano File e Stream per progettare semplici classi con input/output su console. a) trattamento di testi e parole b) trattamento di file con record di lunghezza costante c) trasformazioni di file di testo in file di record e viceversa

19 appunti java Capitolo 10 pag. 19 Categoria a) si desidera realizzare un programma che acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco, lo filtri restituendo a richiesta una delle seguenti funzionalità: il numero di parole che contiene, il numero di token numerici, il numero di righe, il numero di caratteri e il testo stesso sotto forma di stringa." o Progettare una classe filtro che fornisca le funzionalità richieste utilizzando al suo interno le funzionalità della classe StreamTokenizer. o Disegnare la classe prima di codificarla. o Realizzare un main() che testi il funzionamento delle funzionalità realizzate Si desidera realizzare un programma che Costruisca l'indice analitico di una parola di un testo. Acquisito il nome di un file di testo (comprensivo del percorso path) memorizzato su disco e la parola xxx si deve ottenere l'indice della parola nella forma: xxx pag. yy, zz, kk." o progettare (o ampliare) la classe filtro che fornisca le funzionalità richieste utilizzando al suo interno le funzionalità della classe StreamTokenizer, supporre che ad ogni fine pagina corrisponda un marcatore particolare ad esempio '\'." o Disegnare la classe prima di codificarla. o realizzare un main() che testi il funzionamento dei metodi realizzati. Categoria b) Si desidera realizzare un programma che Generi, con la funzione random, un file di dati costituito da numeri decimali (comprensivo del percorso path) memorizzato su disco e ne possa calcolare i seguenti numeri caratteristici: la media aritmetica, il massimo e il minimo. Deve inoltre fornire la possibilità di stampa del file" o Progettare una classe (indici) che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o Realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma che Acquisisca da tastiera e generi un file di dati costituito da numeri interi lo memorizzi su disco e lo stampi." Indicazioni: o utilizzare per l'input da tastiera dei numeri lo Stream di input più adatto. o progettare una classe (file_interi) che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o Realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma che Acquisisca da tastiera e generi un file di dati costituito da un'entità (record?) formato da una Stringa <nome> e da un intero che rappresenta il <peso> in Kg. Dopo averlo memorizzato su disco lo legga, calcoli la media e stampi sul video di

20 appunti java Capitolo 10 pag. 20 fianco a ciascun nome il differenziale tra il suo peso e la media. Es Tizio Kg, Caio +7.5 Kg. ecc." o progettare una classe che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma come il precedente che Acquisisca da tastiera e generi un file di dati costituito da entità di tipo Stringa <nome> e da un intero che rappresenta il <peso> in Kg <idem es >. Successivamente generare un nuovo file che memorizzi Nome, Peso e Differenziale e lo stampi" Indicazioni: o Idem. o idem Categoria c) Si desidera realizzare un programma che Disponendo in input di un file di interi (o generandolo con la funzione random) lo trasformi in un file di testo con i numeri separati da uno spazio. Si richiede di disporre di una funzionalità che mostri a video il file di testo generato." o progettare una classe che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma che Dopo aver generato (random) un file di interi, lo trasformi in un file di testo con i numeri separati da uno spazio. Si richiede di disporre di una funzionalità che legga il file di testo e restituisca un array di interi." o progettare una classe che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o realizzare un main() che ne testi il funzionamento e Stampare l'array come verifica." Si desidera realizzare un programma che Disponendo in input di un file di record, costituito da una Stringa nome e dal peso intero, <come esercizio 10.25>, lo trasformi in un file di testo nel quale ogni riga contenga Nome e Peso separati da uno spazio. Si desidera disporre della funzionalità di stampa del testo." o progettare una classe che esibisca le funzionalità richieste dal testo (Definire i Casi D'uso). o Disegnare la classe/i prima di codificarla. o realizzare un main() che ne testi il funzionamento. Problemi che usano File e Stream per progettare semplici classi con input/output su Frame con Eventi.

21 appunti java Capitolo 10 pag Si desidera realizzare un programma che "consenta all'utente di immettere interi separati su ogni riga in un'area di una finestra e quindi li memorizzi, alla pressione di una coppia di Pulsanti a scelta o come file di testo o come file di interi." o all'evento di chiusura della frame, se non è stato salvato il lavoro in una delle due modalità, deve comparire una finestra di dialogo (Frame Dialog) che informi che non si è salvato e a conferma consenta di proseguire ugualmente o di ritornare alla frame per salvare. o Disegnare Casi d'uso e Classi e successivamente Codificare. o realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma che "consenta all'utente di portare in un'area di una finestra un file di Interi (uno per ogni riga del campo) e quindi dopo eventuali modifiche li memorizzi, alla pressione di una coppia di Pulsanti a scelta o come file di testo o come file di interi." o all'evento di chiusura della frame, se non è stato salvato il lavoro in una delle due modalità, deve comparire una finestra di dialogo (Frame Dialog) che informi che non si è salvato e a conferma consenta di proseguire ugualmente o di ritornare alla frame per salvare. o Disegnare Casi d'uso e Classi e successivamente Codificare. o realizzare un main() che ne testi il funzionamento Si desidera realizzare un programma "che immetta in un'area della frame una coppia Nome,Numero separati da spazio e quindi li memorizzi, alla pressione di una coppia di Pulsanti a scelta, come file di testo (ogni riga Nome Numero) o come file di record." o all'evento di chiusura della frame, se non è stato salvato il lavoro in una delle due modalità, deve comparire una finestra di dialogo (Frame Dialog) che informi che non si è salvato e a conferma consenta di proseguire ugualmente o di ritornare alla frame per salvare.. o Disegnare Casi d'uso e Classi e successivamente Codificare. o realizzare un main() che ne testi il funzionamento.

10. File e loro attributi

10. File e loro attributi Appunti java pag. 133 10. File e loro attributi In generale, in qualsiasi sistema operativo, il file system consente di operare su archivi di dati (data files) che possono essere organizzati e memorizzati

Dettagli

10.4. La classe File e gli attributi di directory e file

10.4. La classe File e gli attributi di directory e file pag.143 10.4. La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Informatica I. Ingegneria Medica. Prof. Diego Salamon Informatica I Ingegneria Medica Prof. Diego Salamon Gestione I/O Prof. Diego Salamon Introduzione Nella creazione e gestione del software è necessario interagire con entità esterne a quelle del programma

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

Lezione 16 programmazione in Java

Lezione 16 programmazione in Java Lezione 16 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO I FILE Sgli stream (flussi) I file ad

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

ESERCIZIO 1 (FILE DI TESTO)

ESERCIZIO 1 (FILE DI TESTO) ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Unità 2 I file binari

Unità 2 I file binari Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

L input da tastiera in Java. Dott. Ing. M. Banci, PhD

L input da tastiera in Java. Dott. Ing. M. Banci, PhD L input da tastiera in Java Dott. Ing. M. Banci, PhD La lettura di un flusso di input in Java avviene attraverso l'oggetto in della classe System. System.in appartiene alla classe InputStream (letteralmente

Dettagli

Input/Output. Console e File.

Input/Output. Console e File. Input/Output Console e File http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Le istruzioni di stampa servono a rendere visibili

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Introduzione Programmazione Java

Introduzione Programmazione Java Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Eccezioni Precisazioni e approfondimenti

Eccezioni Precisazioni e approfondimenti Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)

Dettagli

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi

Gestione degli impegni Requisiti generali Si fissi come ipotesi che la sequenza di impegni sia ordinata rispetto al tempo,, e che ogni lavoratore abbi Fondamenti di Informatica T-1 modulo 2 Laboratorio 10: preparazione alla prova d esame 1 Esercizio 1 - Gestione degli impegni Gli impegni giornalieri dei dipendenti di un azienda devono essere aggiornati

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Prima prova intermedia - 11 Novembre 2009 Si risolvano i seguenti esercizi. Il compitino prevede un punteggio massimo di 15/14-esimi, cui andranno sommati i punti ottenuti nel

Dettagli

Iterazioni. L istruzione while. while (condition) istruzione

Iterazioni. L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione.

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione. pag.112 9. Input e output Nell informatica classica il concetto di input e output era strettamente legato all uso dei dispositivi esterni di memorizzazione (dischi, nastri) e quindi al concetto di file,

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

Dettagli

4. Accesso diretto per gli archivi con record a lunghezza costante

4. Accesso diretto per gli archivi con record a lunghezza costante 4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione

Dettagli

Unità A1 I file testo

Unità A1 I file testo Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA stream file testo file binari file di tipi primitivi bufferizzazione InputStreamReader OutputStreamWriter Reader Writer FileReader

Dettagli

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo Introduzione all uso degli oggetti in Java (parte II) Walter Didimo Esercizio all uso di oggetti Nel corso viene fornita una classe i cui oggetti permettono di leggere dati immessi dalla tastiera la classe

Dettagli

File binari e file di testo

File binari e file di testo I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file

Dettagli

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa. 3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

file fisico file logico

file fisico file logico I files Un file è una struttura di dati residente su una memoria di massa (file fisico) Un programma vede un file come una sequenza di bytes (file logico) Generalizzando, un file può comprendere qualsiasi

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio) Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Riferimenti ad oggetti: Cosa si può fare con i riferimenti?

Dettagli

Linguaggio C: i file

Linguaggio C: i file Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Trasformare array paralleli in array di record

Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni

Dettagli

Obiettivi. Unità D1. Archivi: i concetti fondamentali. Persistenza archivi e file. Necessità di dati persistenti. Un esempio di record

Obiettivi. Unità D1. Archivi: i concetti fondamentali. Persistenza archivi e file. Necessità di dati persistenti. Un esempio di record Obiettivi Unità D1 Archivi: i concetti fondamentali Conoscere le diverse organizzazioni logiche degli archivi Conoscere le operazioni di base che si possono effettuare sugli archivi Sapere come progettare

Dettagli

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza

Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza Laboratorio di Programmazione Laurea in Informatica A.A. 2000/2001 Docente: A. Lanza I file esterni Assign flessibile I file di tipo text I/O bufferizzato La procedura page Creazione, Stampa, Travaso,

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

6. Acquisizione dati da tastiera

6. Acquisizione dati da tastiera 6. Acquisizione dati da tastiera pag.39 Si sarà notato che gli esempi proposti non acquisiscono mai dati da tastiera ma solo per assegnamento o generazione random di numeri. Tutto questo è imputabile al

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a luglio 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 8 luglio 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

LabVIEW parte II. Ing. Gianfranco Miele November 3, 2010

LabVIEW parte II. Ing. Gianfranco Miele  November 3, 2010 Ing. Gianfranco Miele (g.miele@unicas.it) http://www.docente.unicas.it/gianfranco_miele November 3, 2010 Le stringhe Una stringa è una sequenza di caratteri Ogni carattere ha una corrispondente codifica

Dettagli

Fondamenti di Informatica T-1. Classi e array

Fondamenti di Informatica T-1. Classi e array Classi e array 2 Classi e metodi statici Una classe è un costrutto linguistico che permette di modellare un'entità di un sistema, definendone le caratteristiche (variabili interne) e le azioni (metodi).

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Gestione dei file di dati

Gestione dei file di dati Gestione dei file di dati 1. Le classi di input/output Il linguaggio C++ non dispone di proprie istruzioni per la gestione dell interazione con l utente. Si appoggia infatti su appositi comandi scritti

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Jav@Lab Il linguaggio Java I file sequenziali

Jav@Lab Il linguaggio Java I file sequenziali Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do

Dettagli

5. Quinta esercitazione autoguidata: liste semplici

5. Quinta esercitazione autoguidata: liste semplici 22 5. Quinta esercitazione autoguidata: liste semplici 5.1. Liste rappresentate mediante strutture e puntatori (LISTE1.C, LISTE2.C) Scrivere un programma che - costruisce una lista di k interi (con k letto

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

Dettagli

CORSO ACCESS PARTE IV

CORSO ACCESS PARTE IV Creazione di un database / gestione tabelle Per creare un nuovo database Menu File Selezionare Nuovo Scegliere Database vuoto nella scheda Generale e confermare con Ok Impostare il nome e il percorso nella

Dettagli

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 File e Stream In Java Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Lettura da e scrittura su file Java fornisce operazioni di input/output tramite le classi del package java.io. La

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Guida allo sviluppo di applicazioni in linguaggio C# 1. ELABORAZIONE FILE DI TESTO : RIPRENDIAMO ALCUNE IDEE... 2

Guida allo sviluppo di applicazioni in linguaggio C# 1. ELABORAZIONE FILE DI TESTO : RIPRENDIAMO ALCUNE IDEE... 2 File di testo Guida allo sviluppo di applicazioni in linguaggio C# 1. ELABORAZIONE FILE DI TESTO : RIPRENDIAMO ALCUNE IDEE... 2 1.1. LETTURA DA UN FILE DI TESTO... 4 1.1.1. ELABORARE I DATI MEMORIZZATI

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.

Dettagli

Introduzione al C++ (continua)

Introduzione al C++ (continua) Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x

Dettagli

I files in C. A cura del prof. Ghezzi

I files in C. A cura del prof. Ghezzi I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files

Dettagli

Flussi, lettori e scrittori

Flussi, lettori e scrittori Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,

Dettagli

Esercizi di programmazione in linguaggio C English Dictionary

Esercizi di programmazione in linguaggio C English Dictionary Esercizi di programmazione in linguaggio C English Dictionary Il file di testo wordnet.txt contiene un certo numero di parole (word) e il corrispondente significato (meaning) secondo il seguente formato:

Dettagli