# Informatica 2 Liceo Scientifico Scienze Applicate/File

Informatica 2 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
* Linguaggi di programmazioneInformatica 2 Liceo Scientifico Scienze Applicate/Linguaggi di programmazione
* Compilare un programmaInformatica 2 Liceo Scientifico Scienze Applicate/Compilare un programma
* CiaoMondoInformatica 2 Liceo Scientifico Scienze Applicate/CiaoMondo
* AreaRettangoloInformatica 2 Liceo Scientifico Scienze Applicate/AreaRettangolo
* AreaTrapezioInformatica 2 Liceo Scientifico Scienze Applicate/AreaTrapezio
** Compito1Informatica 2 Liceo Scientifico Scienze Applicate/Compito1
* Programmazione ImperativaInformatica 2 Liceo Scientifico Scienze Applicate/Programmazione Imperativa
* Diagrammi di FlussoInformatica 2 Liceo Scientifico Scienze Applicate/Diagrammi di Flusso
* Operatori AritmeticiInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici
* Istruzione ifInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione if
** Esercizio Equazione 2^ gradoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Equazione 2^ grado
** Esercizio Calcola lo ScontoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto
** Esercizio Calcola lo Sconto2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto2
* Operatori LogiciInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Logici
** Esercizio x interno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x interno all'intervallo
** Esercizio x esterno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x esterno all'intervallo
* Istruzione switchInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch
** Esercizio Scelta EquazioneInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Scelta Equazione
* Altre Istruzioni di Scelta o DiramazioneInformatica 2 Liceo Scientifico Scienze Applicate/Altre Istruzioni di Scelta o Diramazione
* Istruzioni di RipetizioneInformatica 2 Liceo Scientifico Scienze Applicate/Istruzioni di Ripetizione
** Es (do-while) Indovina il numeroInformatica 2 Liceo Scientifico Scienze Applicate/Es (do-while) Indovina il numero
** Es (while) La nonna è stancaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) La nonna è stanca
** Es (for) Somma di 5 numeriInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Somma di 5 numeri
** Es (for) Analisi sequenza datiInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Analisi sequenza dati
** Es (for) Sequenze NumericheInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Sequenze Numeriche
** Es (for) SupermarketInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Supermarket
** Es (while) Bisca ClandestinaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) Bisca Clandestina
* Compito2Informatica 2 Liceo Scientifico Scienze Applicate/Compito2
* I vettoriInformatica 2 Liceo Scientifico Scienze Applicate/I vettori
** Es Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es Usiamo i vettori
** Es2 Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es2 Usiamo i vettori
** Es3 Supermarket con vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es3 Supermarket con vettori
** Compito dic 2019Informatica 2 Liceo Scientifico Scienze Applicate/Compito dic 2019
** BubbleSortInformatica 2 Liceo Scientifico Scienze Applicate/BubbleSort
** Ricerca DicotomicaInformatica 2 Liceo Scientifico Scienze Applicate/Ricerca Dicotomica
* Matrici e ArrayInformatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array
** Es matrici battaglia navaleInformatica 2 Liceo Scientifico Scienze Applicate/Es matrici battaglia navale
** Es matrici 1Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 1
** Es matrici 2Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 2
* PuntatoriInformatica 2 Liceo Scientifico Scienze Applicate/Puntatori
* StructInformatica 2 Liceo Scientifico Scienze Applicate/Struct
** Es Bubble Sort con StructInformatica 2 Liceo Scientifico Scienze Applicate/Es Bubble Sort con Struct
* FunzioniInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni
* Funzioni Void e non VoidInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni Void e non Void
** esercizi1 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi1 funzioni
** esercizi2 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi2 funzioni
** esercizi3 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi3 funzioni
* BacktrackingInformatica 2 Liceo Scientifico Scienze Applicate/Backtracking
* TemplateInformatica 2 Liceo Scientifico Scienze Applicate/Template
* FileInformatica 2 Liceo Scientifico Scienze Applicate/File
** File di TestoInformatica 2 Liceo Scientifico Scienze Applicate/File di Testo
** File BinariInformatica 2 Liceo Scientifico Scienze Applicate/File Binari
** File RecordsInformatica 2 Liceo Scientifico Scienze Applicate/File Records
** Es FilesInformatica 2 Liceo Scientifico Scienze Applicate/Es Files
* Esercizi VacanzeInformatica 2 Liceo Scientifico Scienze Applicate/Esercizi Vacanze
** Esercizi1Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi1
** Esercizi2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi2
** Esercizi3Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi3
* Olimpiadi Informatica
** NobileChimicoInformatica 2 Liceo Scientifico Scienze Applicate/NobileChimico
** Sunnydale
** MappaAnticaInformatica 2 Liceo Scientifico Scienze Applicate/MappaAntica
Modifica il sommario

## Files

La memoria RAM di un computer è una memoria volatile perché quando viene a mancare la corrente di alimentazione i dati memorizzati nella RAM vengono persi. Per conservare dei dati anche quando il computer viene spento bisogna salvarli in un file sull'hard disk che essendo un dispositivo magnetico è in grado di conservare l'informazione anche in assenza di una corrente di alimentazione . I files sono in genere divisi in due gruppi i files di testo e i file binari, quelli di testo sono codificati usando la tabella ASCII o la più recente tabella UNICODE, tutti file in formati diversi dall'ASCII/UNICODE rientrano invece nella categoria dei files binari (ad esempio file jpg, mp3, avi, etc). Un file è semplicemente una lunga sequenza binaria che rappresenta mediante una codifica delle informazioni.
Ecco un file 010100101001001001010000001010111100101011101110100101010010 ..... se quest file fosse codificato in ASCII allora per visualizzarlo dovrei prendere i primi 8 bit e cercare nella tabella ascii il carattere corrispondente e poi ripetere la cosa per gli 8 bit successivi e così via. Se la codifica fosse diversa i primi 4 byte potrebbero essere invece un numero intero, i successivi 8 un numero di tipo double e così via.
Il grande vantaggio di usare un file di testo è che può essere letto/modificato/creato direttamente da una persona utilizzando un semplice editor di testo. Un file di testo può essere anche creato/letto/modificato tramite un programma in C ma la codifica ASCII usata per rappresentare i dati nel file richiede una traduzione (decodifica) prima di poter caricare nelle variabili del programma le informazioni del file, questa traduzione rallenta il caricamento delle informazioni contenute nel file di testo alle celle di memoria RAM usata dal programma in C per memorizzare le variabili. Un file di testo quando viene letto/scritto comporta inoltre una trasformazione/perdita di alcuni caratteri speciali che ne permettono la formattazione (spazi, carattere di fine riga etc), non c'e' una perfetta corrispondenza fra quello che viene inviato in scrittura e quello che viene effettivamente scritto nel file e quello che viene poi letto.
I file binari sacrificano la diretta comprensione/modificabilità del loro contenuto informativo da parte di una persona (rinunciano quindi alla codifica in formato ASCII ) e in cambio ottengono una maggiore velocità nelle operazioni di scrittura/lettura del file, cioè nel trasferimento delle informazioni fra file sull' hardisk e la memoria ram dove risiedono le variabili del programma. Un programma in C che salva su un file una variabile intera memorizzata nella RAM, ne trasferisce semplicemente la sequenza binara, che ne rappresenta il valore, sul file. La corrispondenza fra sequenza binaria della variabile è perfettamente fedele alla sequenza binaria scritta nel file.
Per usare i files qui si utilizzano i comandi del C++, che fa uso della programmazione OOP e del concetto di stream. Per anni ho usato i comandi del C per gestire i files ma poi su suggerimento d i uno studente che li riteneva più semplici sono passato ai comandi del C++, in realtà sono semplici e potenti entrambi i metodi.
Quando si crea un file vuoto c'è un cursore di scrittura posto a zero che indica dove nel file debba avvenire la prossima (se e' vuoto la prima) operazione di scrittura
quando poi si inserisce un dato questo cursore si sposta alla fine del dato appena scritto, per indicare il punto di partenza della prossima operazione di scrittura
e cosi via
analogamente per le operazioni di lettura, quando si apre un file esistente c'e' un cursore di lettura posto a zero che indica dove nel file debba avvenire la prossima (se è appena aperto la prima) operazione di lettura,
dopo aver letto un dato il cursore si sposta automaticamente in corrispondenza della fine del dato appena letto, pronto per indicare la posizione del prossimo dato da leggere
e cosi via