C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo
|
|
- Annalisa Bruni
- 8 anni fa
- Visualizzazioni
Transcript
1 File e Flussi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari
2 Obiettivi 2 Saper leggere e scrivere file di testo Acquisire familiarità con i concetti di formato binario e di testo Capire la codifica cifrata delle informazioni Capire quando va usato l accesso casuale o sequenziale ai file Saper leggere e scrivere oggetti usando la serializzazione
3 Leggere e Scrivere File di Testo 3 Il modo più semplice per leggere file di testo prevede l utilizzo della classe Scanner Per leggere dati da un file presente sul disco, occorre dapprima costruire un oggetto di tipo FileReader FileReader reader = new FileReader("input.txt"); Scanner in = new Scanner(reader); Si utilizza tale oggetto come parametro per costruire un oggetto di tipo Scanner Per leggere i dati, si possono usare i metodi della classe: next, nextline, nextint e nextdouble
4 Leggere e Scrivere File di Testo 4 Per scrivere file di testo usate la classe PrintWriter e i suoi metodi print e println PrintWriter out = new PrintWriter("output.txt"); Se il file in cui scrivere esiste già, viene svuotato prima di scrivervi nuovi dati Se il file non esiste, viene creato un file vuoto
5 Leggere e Scrivere File di Testo 5 Usate, poi, i consueti metodi print e println per inviare numeri, oggetti e stringhe all'istanza di PrintWriter out.println(29.95); out.println(new Rectangle(5, 10, 15, 25)); out.println("hello, World!"); Quando avete terminato di scrivere in un oggetto di tipo PrintWriter,, accertatevi di chiuderlo out.close(); Se il programma termina l esecuzione senza aver chiuso l oggetto di tipo PrintWriter,, può darsi che non tutti i dati siano stati realmente scritti nel file su disco
6 Esempio di Programma 6 Legge tutte le righe presenti in un file di dati in ingresso e le invia ad un file di uscita, facendo precedere a ciascuna riga di testo il corrispondente numero di riga Se il file d ingresso è: Mary had a little lamb Whose fleece was white as snow. And everywhere that Mary went, The lamb was sure to go!
7 Esempio di programma 7 Allora il programma produce il seguente file: /* 1 */ Mary had a little lamb /* 2 */ Whose fleece was white as snow. /* 3 */ And everywhere that Mary went, /* 4 */ The lamb was sure to go! I numeri di riga sono racchiusi tra delimitatori /* */ in modo che il programma possa essere utilizzato per numerare file di codice sorgente Java
8 LineNumberer.java 8 01: import java.io.filereader; 02: import java.io.ioexception; 03: import java.io.printwriter; 04: import java.util.scanner; 05: 06: public class LineNumberer 07: { 08: public static void main(string[] args) 09: { 10: Scanner console = new Scanner(System.in); 11: System.out.print("Input file: "); 12: String inputfilename = console.next(); 13: System.out.print("Output file: "); 14: String outputfilename = console.next(); 15: 16: try 17: { 18: FileReader reader = new FileReader(inputFileName); 19: Scanner in = new Scanner(reader); 20: PrintWriter out = new PrintWriter(outputFileName); 21: int linenumber = 1;
9 LineNumberer.java 9 22: 23: while (in.hasnextline()) 24: { 25: String line = in.nextline(); 26: out.println("/* " + linenumber + " */ " + line); 27: linenumber++; 28: } 29: 30: out.close(); 31: } 32: catch (IOException exception) 33: { 34: System.out.println("Error processing file:" + exception); 35: } 36: } 37: }
10 Una Finestra di Dialogo 10 Figura 1: Una finesta di dialogo del tipo JFileChooser
11 Una Finestra di Dialogo 11 JFileChooser chooser = new JFileChooser(); FileReader in = null; if (chooser.showopendialog(null) == JFileChooser.APPROVE_OPTION) { File selectedfile = chooser.getselectedfile(); reader = new FileReader(selectedFile);... }
12 Formato di Testo 12 Esistono due modi fondamentalmente diversi di memorizzare i dati: In formato testo In formato binario
13 Formato di Testo 13 Nel formato testo i dati sono rappresentati in una forma leggibile dagli esseri umani come una sequenza di caratteri Per esempio, il numero intero viene memorizzato come una sequenza di cinque caratteri: '1' '2' '3' '4' '5' Per elaborare dati in ingresso e in uscita dovete usare le classi Reader e Writer e le loro sottoclassi Per leggere: FileReader reader = new FileReader("input.txt"); Per scrivere: FileWriter writer = new FileWriter("output.txt");
14 Formato Binario 14 Nel formato binario i dati sono rappresentati da byte In formato binario il numero intero viene registrato come una sequenza di quattro byte come una sequenza di quattro byte Se memorizzate le informazioni in forma binaria, come sequenza di byte, dovete usare le classi InputStream e OutputStream e le loro sottoclassi La memorizzazione binaria è più compatta e più efficiente
15 Formato Binario 15 Per leggere dati binari da un file su disco si crei un oggetto di tipo FileInputStream FileInputStream inputstream = new FileInputStream("input.bin"); Si usi oggetti di tipo FileWriter e FileOutputStream per scrivere dati in un file su disco in forma di testo o, rispettivamente, binaria FileOutputStream outputstream = new FileOutputStream("output.bin");
16 Leggere un Singolo Carattere da 16 un File in Formato Testo La classe Reader ha un metodo, read,, che legge un carattere alla volta Il metodo read di fatto restituisce un dato di tipo int 1 Alla fine dei dati, read restituisce 1 Reader reader =...; int next = reader.read(); char c; if (next!= -1) c = (char) next;
17 Leggere un Singolo Carattere da 17 un File in Formato Testo La classe InputStream ha un metodo read per leggere un byte alla volta Restituisce un dato di tipo int,, che può essere il byte che è stato inserito Restituisce il numero intero 1,, se è stata raggiunta la fine del flusso InputStream in =...; int next = in.read(); byte b; if (next!= -1) b = (byte) next;
18 Formato Testo e Binario 18 Le classi Writer e FileOutputStream hanno un metodo write per scrivere, rispettivamente, un singolo carattere o byte Questi metodi basilari sono gli unici metodi di lettura e scrittura forniti dalle classi che leggono e scrivono un file Il pacchetto dei flussi di Java si basa sul principio che ciascuna classe deve avere una responsabilità ben precisa
19 Formato Testo e Binario 19 Il compito di un oggetto di tipo FileInputStream è quello di interagire con i file, cioè di acquisire dati sotto forma di byte, non di analizzarli Se volete leggere numeri, stringhe o altri oggetti, dovete combinare la classe con altre classi
20 Un Programma di Crittografia 20 Il programma cifra un file Mescola i dati in modo che siano illeggibili tranne per chi conosca il metodo di decifrazione e la corrispondente parola segreta Useremo un metodo che era conosciuto ai tempi di Giulio Cesare Si sceglie una chiave di cifratura, che in questo caso è un numero compreso tra 1 e 25 Esempio se la chiave è 3, si sostituisce A con D, B con E, e così via
21 Un programma di crittografia 21 Per la decifrazione, si usa semplicemente il valore opposto della chiave (negativo) Testo normale Testo cifrato Figura 2: Il codice di Cesare
22 Elaborazione di Dati Binari 22 int next = in.read(); if (next == -1) done = true; else { byte b = (byte) next; //call the method to encrypt the byte byte c = encrypt(b); out.write(c); }
23 Encryptor.java 23 01: import java.io.file; 02: import java.io.fileinputstream; 03: import java.io.fileoutputstream; 04: import java.io.inputstream; 05: import java.io.outputstream; 06: import java.io.ioexception; 07: 08: /** 09: un cifratore cifra file usando la crittyografia di Cesare. 10: Per la decifrazione, usate un cifratore con la chiave 11: opposta a quella di cifratura. 12: */ 13: public class Encryptor 14: { 15: /** 16: Costruisce un cifratore. akey la chiave di cifratura 18: */
24 Encryptor.java 24 19: public Encryptor(int akey) 20: { 21: key = akey; 22: } 23: 24: /** 25: cifra il contenuto di un file. infile il nome del file in ingresso outfile il nome del file in uscita 28: */ 29: public void encryptfile(string infile, String outfile) 30: throws IOException 31: { 32: InputStream in = null; 33: OutputStream out = null; 34: 35: try 36: {
25 Encryptor.java 25 37: in = new FileInputStream(inFile); 38: out = new FileOutputStream(outFile); 39: encryptstream(in, out); 40: } 41: finally 42: { 43: if (in!= null) in.close(); 44: if (out!= null) out.close(); 45: } 46: } 47: 48: /** 49: Cifra il contenuto di un flusso. in il flusso di ingresso out il flusso di uscuta 52: */
26 Encryptor.java 26 53: public void encryptstream(inputstream in, OutputStream out) 54: throws IOException 55: { 56: boolean done = false; 57: while (!done) 58: { 59: int next = in.read(); 60: if (next == -1) done = true; 61: else 62: { 63: byte b = (byte) next; 64: byte c = encrypt(b); 65: out.write(c); 66: } 67: } 68: } 69:
27 Encryptor.java 27 70: /** 71: Cifra un byte. b il byte da cifrare il byte cifrato 74: */ 75: public byte encrypt(byte b) 76: { 77: return (byte) (b + key); 78: } 79: 80: private int key; 81: }
28 EncryptorTester.java 28 01: import java.io.ioexception; 02: import java.util.scanner; 03: 04: /** 05: Un programma per collaudare il cifratore con il codice di Cesare. 06: */ 07: public class EncryptorTester 08: { 09: public static void main(string[] args) 10: { 11: Scanner in = new Scanner(System.in); 12: try 13: { 14: System.out.print("Input file: "); 15: String infile = in.next(); 16: System.out.print("Output file: "); 17: String outfile = in.next();
29 EncryptorTester.java 29 18: System.out.print("Encryption key: "); 19: int key = in.nextint(); 20: Encryptor crypt = new Encryptor(key); 21: crypt.encryptfile(infile, outfile); 22: } 23: catch (IOException exception) 24: { 25: System.out.println("Error processing file: " + exception); 26: } 27: } 28: } 29: 30:
30 Crittografia con Chiave Pubblica 30 Chiave pubblica di Bob Vediamoci alla festa in toga Vediamoci alla festa in toga Testo normale Testo cifrato chiave privata di Bob testo decifrato Figura 3
31 Accesso Casuale e 31 Accesso sequenziale Accesso Sequenziale Un file viene elaborato un byte alla volta può essere poco efficiente Accesso casuale consente di accedere a posizioni arbitrarie nel file Solo i file su disco forniscono l accesso casuale System.in e System.out non lo forniscono Ciascun file su disco ha una posizione speciale detta puntatore del file Potete scrivere e leggere nella posizione in cui si trova il puntatore
32 Accesso Casuale 32 e Accesso Sequenziale Ciascun file su disco ha una posizione speciale detta puntatore del file Potete scrivere e leggere nella posizione in cui si trova il puntatore Accesso sequenziale Accesso casuale
33 RandomAccessFile 33 Potete aprire un file solo per: Leggere ( r ) Leggere e scrivere ( rw ) RandomAccessFile f = new RandomAcessFile("bank.dat","rw"); f.seek(n); L invocazione del metodo sposta il puntatore al byte di indice n, contando le posizioni dall inizio del file
34 RandomAccessFile 34 Per sapere qual è la posizione corrente del puntatore del file userete long n = f.getfilepointer(); Per sapere qual è il numero dei byte di un file si usa il metodo length filelength = f.length();
35 Esempio di Programma 35 Usa un file ad accesso casuale per memorizzare un insieme di conti correnti Il programma di prova fa specificare un numero di conto qualsiasi e vi aggiunge gli interessi Se si vuol manipolare un insieme di dati presenti in un file, si deve prestare particolare attenzione alla disposizione dei dati stessi Supposto di inserire semplicemente i dati in formato testo: Immaginiamo che il conto numero 1001 abbia un saldo uguale a $900 e che il conto numero 1015 abbia saldo 0$
36 Esempio di Programma 36 Vogliamo versare $100 nel conto numero Se ora si scrivesse semplicemente il nuovo valore, il risultato sarebbe:
37 Esempio di Programma 37 La classe RandomAccessFile memorizza i dati in binario I metodi readint e writeint leggono e scrivono numeri interi sotto forma di quantità di quattro byte double x = f.readdouble(); f.writedouble(x); I metodi readdouble e writedouble elaborano numeri in virgola mobile in doppia precisione sotto forma di quantità di otto byte
38 Esempio di Programma 38 Per poter aggiornare un file dovete assegnare a ciascun campo una dimensione fissa che sia sufficientemente grande Ne risulta che tutti i record ( insiemi di campi ) del file hanno la stessa dimensione Questo presenta il vantaggio che è molto più facile spostarsi sui record Quando si memorizzano numeri in un file avente dimensioni fisse per i record, è più facile inserirli in formato binario invece che in formato testo
39 Esempio di Programma 39 Il metodo size determina il numero totale di conti, dividendo la lunghezza del file per la dimensione di un record public int size() throws IOException { return (int) (file.length() / RECORD_SIZE); // RECORD_SIZE è pari a 12 bytes: // 4 bytes per il numero di conto e // 8 bytes per il saldo }
40 Esempio di Programma 40 Per leggere dal file il conto n-esimo, il metodo read posiziona il puntatore del file all indirizzo n * RECORD_SIZE (il primo conto ha indice n uguale a 0), quindi legge i dati e costruisce un oggetto che rappresenta un conto bancario: public BankAccount read(int n) throws IOException { file.seek(n * RECORD_SIZE); int accountnumber = file.readint(); double balance = file.readdouble(); return new BankAccount(accountNumber, balance); }
41 Esempio di Programma 41 Per scrivere un conto si fa, invece, così: public void write(int n, BankAccount account) throws IOException { file.seek(n * RECORD_SIZE); file.writeint(account.getaccountnumber()); file.writedouble(account.getbalance()); }
42 BankDatatester.java 42 01: import java.io.ioexception; 02: import java.io.randomaccessfile; 03: import java.util.scanner; 04: 05: /** 06: Questo programma collauda l accesso casuale. 07: Potete accedere ai conti esistenti e aggiungervi 08: gli interessi oppure creare nuovi conti.i conti vengono memorizzati in un file ad accesso casuale 09: */ 10: public class BankDataTester 11: { 12: public static void main(string[] args) 13: throws IOException 14: { 15: Scanner in = new Scanner(System.in); 16: BankData data = new BankData(); 17: try
43 BankDatatester.java 43 18: { 19: data.open("bank.dat"); 20: 21: boolean done = false; 22: while (!done) 23: { 24: System.out.print("Account number: "); 25: int accountnumber = in.nextint(); 26: System.out.print("Amount to deposit: "); 27: double amount = in.nextdouble(); 28: 29: int position = data.find(accountnumber); 30: BankAccount account; 31: if (position >= 0) 32: { 33: account = data.read(position); 34: account.deposit(amount); 35: System.out.println("new balance=" 36: + account.getbalance()); 37: }
44 BankDatatester.java 44 38: else // Aggiungi un nuovo conto 39: { 40: account = new BankAccount(accountNumber, 41: amount); 42: position = data.size(); 43: System.out.println("adding new account"); 44: } 45: data.write(position, account); 46: 47: System.out.print("Done? (Y/N) "); 48: String input = in.next(); 49: if (input.equalsignorecase("y")) done = true; 50: } 51: } 52: finally 53: { 54: data.close(); 55: } 56: } 57: }
45 BankData.java : import java.io.ioexception; 002: import java.io.randomaccessfile; 003: 004: /** 005: Questa classe funge da tramite per un file 006: ad accesso casuale contenente i dati di conti bancari. 007: */ 008: public class BankData 009: { 010: /** 011: Costruisce un oggetto del tipo BankData senza 012: associarlo ad un file. 013: */ 014: public BankData() 015: { 016: file = null; 017: }
46 BankData.java : 019: /** 020: Apre il file dei dati. filename il nome del file che contiene 022: informazioni sui conti bancari 023: */ 024: public void open(string filename) 025: throws IOException 026: { 027: if (file!= null) file.close(); 028: file = new RandomAccessFile(filename, "rw"); 029: } 030: 031: /** 032: Restituisce il numero di conti presenti nel file. il numero dei conti 034: */ 035: public int size() 036: throws IOException 037: { 038: return (int) (file.length() / RECORD_SIZE); 039: } 040:
47 BankData.java : /** 042: Chiude il file dei dati. 043: */ 044: public void close() 045: throws IOException 046: { 047: if (file!= null) file.close(); 048: file = null; 049: } 050: 051: /** 052: Legge il record di un nuovo conto bancario. n l indice del conto nel file dei dati conto inizializzato con i dati letti dl file 055: */ 056: public BankAccount read(int n) 057: throws IOException 058: { 059: file.seek(n * RECORD_SIZE); 060: int accountnumber = file.readint(); 061: double balance = file.readdouble(); 062: return new BankAccount(accountNumber, balance); 063: }
48 BankData.java : 065: /** 066: Trova la posizione del conto bancario avente // il numero di conto indicato accountnumber il numero di conto da cercare la posizione del conto trovato oppure 069: -1 se il non esiste conto con tale numero 070: */ 071: public int find(int accountnumber) 072: throws IOException 073: { 074: for (int i = 0; i < size(); i++) 075: { 076: file.seek(i * RECORD_SIZE); 077: int a = file.readint(); 078: if (a == accountnumber) // trovato 079: return i; 080: } 081: return -1; // Non trovato dopo aver seaminato tutti i file 082: }
49 BankData.java : 084: /** 085: Scrive nel file dei dati il record di un conto bancario n l indice del conto nel file dei dati account il conto da scrivere 088: */ 089: public void write(int n, BankAccount account) 090: throws IOException 091: { 092: file.seek(n * RECORD_SIZE); 093: file.writeint(account.getaccountnumber()); 094: file.writedouble(account.getbalance()); 095: } 096: 097: private RandomAccessFile file; 098: 099: public static final int INT_SIZE = 4; 100: public static final int DOUBLE_SIZE = 8; 101: public static final int RECORD_SIZE 102: = INT_SIZE + DOUBLE_SIZE; 103: }
50 Output 50 Account number: 1001 Amount to deposit: 100 adding new account Done? (Y/N) N Account number: 1018 Amount to deposit: 200 adding new account Done? (Y/N) N Account number: 1001 Amount to deposit: 1000 new balance= Done? (Y/N) Y
51 Flussi di Oggetti 51 La classe ObjectOutputStream può memorizzare sul disco interi oggetti La classe ObjectInputStream li può rileggere Gli oggetti vengono salvati in formato binario; di conseguenza, si usano stream e non writer
52 Scrivere in un File un Oggetto di 52 Tipo BankAccount Il flusso di uscita per oggetti memorizza automaticamente nel flusso stesso tutti i campi di esemplare dell oggetto BankAccount b =...; ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("bank.dat")); out.writeobject(b);
53 Scrivere in un File un Oggetto di 53 Tipo BankAccount Si usa il metodo readobject della classe ObjectInputStream,, che restituisce un riferimento di tipo Object Dovrete ricordare i tipi degli oggetti che avete memorizzato e usare un cast ObjectInputStream in = new ObjectInputStream(new FileInputStream("bank.dat")); BankAccount b = (BankAccount) in.readobject();
54 Scrivere in un File un Oggetto di 54 Tipo BankAccount Il metodo readobject può lanciare un eccezione di tipo ClassNotFoundException È un eccezione controllata La si cattura oppure la si dichiara in una clausola throws
55 Scrivere e Leggere un ArrayList 55 Con una sola istruzione si può salvare il vettore e tutti gli oggetti cui fa riferimento ArrayList<BankAccount> a = new ArrayList<BankAccount>(); // Ora inserisci in a molti oggetti di tipo BankAccount out.writeobject(a); E con una sola istruzione si possono rileggere tutti ArrayList<BankAccount> a = (ArrayList<BankAccount>) in.readobject();
56 Interfaccia Serializable 56 In un flusso di oggetti possono essere memorizzati soltanto esemplari di classi che realizzino l interfaccia Serializable class BankAccount implements Serializable {... } Questa interfaccia non ha metodi
57 Interfaccia Serializable 57 Il processo di memorizzazione degli oggetti in un flusso viene chiamato serializzazione Ad ogni oggetto viene assegnato un numero di serie all interno del flusso Se lo stesso oggetto viene salvato due volte, la seconda volta viene scritto soltanto il suo numero di serie Quando gli oggetti vengono poi riletti, i numeri di serie ripetuti sono considerati come riferimenti allo stesso oggetto
58 SerialTester.java 58 01: import java.io.file; 02: import java.io.ioexception; 03: import java.io.fileinputstream; 04: import java.io.fileoutputstream; 05: import java.io.objectinputstream; 06: import java.io.objectoutputstream; 07: 08: /** 09: Questo programma verifica la serializzazione di un oggetto 10: di tipo Bank. Se esiste un file con i dati serializzati di 11: una banca,esso viene caricato;altrimenti il programma parte 12: con una nuova banca. Ulteriori conti bancari sono aggiunti 13: alla banca, quindi i dati della banca vengono memorizzati nel file 14: */ 15: public class SerialTester 16: {
59 SerialTester.java 59 17: public static void main(string[] args) 18: throws IOException, ClassNotFoundException 19: { 20: Bank firstbankofjava; 21: 22: File f = new File("bank.dat"); 23: if (f.exists()) 24: { 25: ObjectInputStream in = new ObjectInputStream 26: (new FileInputStream(f)); 27: firstbankofjava = (Bank) in.readobject(); 28: in.close(); 29: } 30: else 31: { 32: firstbankofjava = new Bank(); 33: firstbankofjava.addaccount(new BankAccount(1001, 20000));
60 SerialTester.java 60 34: firstbankofjava.addaccount(new BankAccount(1015, 10000)); 35: } 36: 37: // Effettua alcuni versamenti 38: BankAccount a = firstbankofjava.find(1001); 39: a.deposit(100); 40: System.out.println(a.getAccountNumber() + ":" + a.getbalance()); 41: a = firstbankofjava.find(1015); 42: System.out.println(a.getAccountNumber() + ":" + a.getbalance()); 43: 44: ObjectOutputStream out = new ObjectOutputStream 45: (new FileOutputStream(f)); 46: out.writeobject(firstbankofjava); 47: out.close(); 48: } 49: }
61 Output 61 Prima esecuzione del programma 1001: : Seconda esecuzione del programma 1001: :
File, flussi e pacchetto java.io
File, flussi e pacchetto java.io Formato binario e formato di testo I dati sono memorizzati nei files in due formati: testo (successione di caratteri) binario (successione di bytes) Ad es. numero 12345
DettagliInformatica 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
DettagliFlussi, 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,
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliCifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
Dettagli20 - Input/Output su File
20 - Input/Output su File 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
DettagliCorso 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
DettagliCapitolo 11 Gestione File ed Eccezioni
Capitolo 11 Gestione File ed Eccezioni Obiettivi del capitolo Lettura e scrittura file ASCII File testo e binari 1 Fondamenti di Informatica Fondamenti di Informatica 2 Lettura di file testo Scrivere file
DettagliOperazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliCapitolo 11 Ingresso/uscita e gestione delle eccezioni. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione
Capitolo 11 Ingresso/uscita e gestione delle eccezioni Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Essere in grado di leggere e scrivere file di
DettagliAlgoritmi 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
DettagliProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete
ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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
DettagliEsercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12
Laboratorio LP2 Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12 ventre@dia.unisa.it Esercizio P14.8 Scrivete un programma Find che cerchi in tutti i file specificati sulla riga di comando una
DettagliUn flusso (stream) è una astrazione che produce e/o consuma informazioni.
I programmi Java eseguono l I/O mediante i flussi. Un flusso (stream) è una astrazione che produce e/o consuma informazioni. Ogni flusso è collegato ad un dispositivo fisico dal sistema di I/O di java.
DettagliJav@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
DettagliModulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Input e Output da Console Leggere valori in input (Scanner); Stampare valori di output (System.out.print); Modulo 2: Strutture
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliEsercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.
Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double
DettagliTECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE
Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su
DettagliUn oggetto per la lettura dalla tastiera
Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice
DettagliEsercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliInput e Output in Java
Input e Output in Java Stream Redirecting Scomposizione dell input Uso di file Set di caratteri 1 Inserimento dati e test Riconsideriamo la versione iniziale della classe DataSet usata per illustrare le
DettagliINPUT 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
DettagliInput/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
DettagliLavorare con i File e gestire le Eccezioni
Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Due modi per memorizzare i dati Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato
Dettagli10 - Programmare con gli Array
10 - Programmare con gli 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
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliConcetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio
Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla
DettagliLavorare con i File e gestire le Eccezioni
Due modi per memorizzare i dati Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato
DettagliLABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 -
LABORATORIO DI INFORMATICA 1 2014-2015 - parte 6 - Lettura da File Obiettivo: leggere un file Per prima cosa dobbiamo creare un oggetto che rappresenti il file che vogliamo utilizzare (inserendo anche
DettagliEsempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante
Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliParcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento
Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate
DettagliLa prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
DettagliGestione delle Eccezioni
Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliProva Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse
Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliRMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it
Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti
DettagliOperazioni di scrittura e lettura con periferici in linguaggio Java
Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A2 I file binari 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliStrutturazione logica dei dati: i file
Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer
DettagliLa selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
DettagliProgrammazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
DettagliChat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliProgrammare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliLa paninoteca. Mi resta da scrivere solo costo()
La paninoteca Mi resta da scrivere solo costo() La paninoteca Usiamo l ereditarietà per definire dei Panini particolari Ci sono alcuni tipi di pane Estendendo Panino scrivo meno codice Nell esempio eredito
DettagliTest di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
DettagliLaboratorio di Informatica Lezione 4
Laboratorio di Informatica Lezione 4 Cristian Consonni 28 ottobre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 4 1 / 42 Outline 1 Canali standard 2 Input da tastiera 3 Output 4 Esercizi (parte
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliEsercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:
Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di
DettagliLETTURA DI DATI DA INPUT
LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream
DettagliArchitettura Client-Server
Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server
DettagliUtilizzo delle classi
Utilizzo delle classi I metodi costruttore ed il loro utilizzo. Alcune classi di ingresso e uscita 2 Classi ed Oggetti predefiniti Oggetti predefiniti Sono presenti nel programma Non è necessario crearli
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Dettagli3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.
Elaborazione testi 133 3.5 Stampa unione 3.5.1 Preparazione 3.5.1.1 Aprire, preparare un documento da utilizzare come documento principale per una stampa unione. Abbiamo visto, parlando della gestione
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliAutomatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
DettagliSistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliMECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
DettagliLe stringhe. Le stringhe
Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliEsercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)
Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni
DettagliEsercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
DettagliUso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
DettagliProva di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il
DettagliPila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi
Pila di Oggetti Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577 234850 - interno: 7102 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/
Dettaglicostruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
DettagliStruttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura
Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliLe funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.
Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide
DettagliEsercizio: la classe CashRegister
Esercizio: la classe CashRegister Si veda anche il libro di testo: Consigli pratici 3.1 Sezione 4.2 Sezione 8.2 Esercizi 8.1 e 8.2 1 Problema Si chiede di realizzare una classe CashRegister che simuli
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliFondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
Dettagli