Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott.

Documenti analoghi
INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 5 Dott. Michele Zanella Ing. Gian Enrico Conti

Informatica ed Elementi di Informatica Medica

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.

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

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 5 Ing. Gian Enrico Conti Dott. Michele Zanella

Streams e disk files

ELEMENTI DI INFORMATICA. Linguaggio C

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 6 Dott. Michele Zanella Ing. Gian Enrico Conti

Corso di Informatica A.A

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

Capitolo 5 -- Stevens

Operazioni su file di caratteri

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Linguaggio C: i file

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Gestione dei file. File di testo e binari

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire..

Introduzione al C. Stream e disk file

Esercitazioni Fondamenti di Informatica

Files in C endofile

Suggerimenti, note utili ed errori comuni. Fondamenti di informatica T

File binari e file di testo

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016

Gestione dei File C. Generalità

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014

Gestione dei File. Credits Prof. Campi

Gestione dei file in C

Input/Output su File

Fondamenti di Informatica L-A

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto

Il linguaggio C. Breve panoramica su stdio.h

Laboratorio di Programmazione

Laboratorio di Informatica

Lezione 22: Input/Output e Files

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File

Linguaggio C: PUNTATORI

Linguaggio C: puntatori

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015

Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132

File. Titolo presentazione sottotitolo. Federico Reghenzani

Gestione dei file in C

Laboratorio di Sistemi Operativi primavera 2009

FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto

I file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Introduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

Lezione 11: Liste a Puntatori e Input/Output

MATLAB: FILES. Informatica B/C - A.A. 2013/2014

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma

I files in C. A cura del prof. Ghezzi

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.

Gestione File di testo

File e puntatori a file

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Matrici, stringhe e I/O da file

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016

I/O da file. Matrici. Stringhe. Memory leakage. Matrici, stringhe e I/O da file

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Il linguaggio C. Puntatori e dintorni

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013

Introduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.

puntatori Lab. Calc. AA 2006/07 1

Esercitazione 11. Liste semplici

Gestione dinamica della memoria

Gestione dei File C. Generalità

Gestione dei File in C

Sulla libreria standard, III. Manipolare file con stdio.h

Fondamenti di Informatica

C: panoramica. Violetta Lonati

Informatica (A-K) 23. Linguaggio C -8

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

La gestione dell'errore

Gestione dei File. dischi nastri cd

Corso di Informatica A.A

Introduzione al C Corso di Fondamenti di Informatica Ingegneria Clinica Le Matrici e i Puntatori Domenico Daniele Bloisi

INFORMATICA. I file. File. File. File

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Esercizi. I File ed il C

Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2)

FILE BINARI FILE BINARI

Sommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file

La copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018

Lezione 15. Introduzione

Esercitazione di Reti degli elaboratori

Introduzione al linguaggio C Puntatori

Dati due punti sul piano calcolare la loro distanza

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Consideriamo ora il seguente programma organizzato su 3 file:

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Gestione di files Motivazioni

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 2 Ing. Gian Enrico Conti Dott. Michele Zanella

Transcript:

Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Michele Zanella

Info Logistiche (cont d) Calendario laboratori Data Orario Squadra Aula Resp. Programma 23/10/2017 9:00-12:00 A CS 0.2 Zanella 23/10/2017 9:00-12:00 B CS 1.4 Conti 26/10/2017 14:15-17:15 C CS 0.11 Conti 30/10/2017 9:00-12:00 A CS 0.2 Zanella 30/10/2017 9:00-12:00 B CS 1.4 Conti 02/11/2017 14:15-17:15 C CS 0.11 Conti 06/11/2017 9:00-12:00 A CS 0.2 Zanella 06/11/2017 9:00-12:00 B CS 1.4 Conti 09/11/2017 14:15-17:15 C CS 0.11 Conti 20/11/2017 9:00-12:00 A CS 0.2 Zanella 20/11/2017 9:00-12:00 B CS 1.4 Conti 23/11/2017 14:15-17:15 C CS 0.11 Conti 27/11/2017 9:00-12:00 A CS 0.2 Zanella 27/11/2017 9:00-12:00 B CS 1.4 Conti 30/11/2017 14:15-17:15 C CS 0.11 Conti 04/12/2017 9:00-12:00 A CS 0.2 Zanella 04/12/2017 9:00-12:00 B CS 1.4 Conti 14/12/2017 14:15-17:15 C CS 0.11 Conti Lab 1 Lab 2 Lab 3 Lab 4 Lab 5 Lab 6

Fasi Progetto Nella cartella Step Progetto di Beep: 1. Step00 Strutture e tipi: Definizione le strutture e i tipi utilizzati 2. Step00b Header files: Spostamento delle definizioni in un file header esterno 3. Step01 Inserimenti: Implementazione delle funzioni basiche di inserimento di aeroporti, aerei, passeggeri e voli 4. Step02 Struttura menù: Creazione della struttura generale del menù di selezione 5. Step03 Menù: Implementazione di alcune funzioni del menù 6. Step04 Prototipi: Creazione dei prototipi di funzioni per le operazioni da implementare 7. Step05 Funzioni: Implementazione delle funzioni 8. Step06 File I/O: Implementazione delle funzioni per salvare i dati su.csv o.json

Header files Vengono utilizzati per spostare le definizioni delle variabili globali e dei tipi in un file esterno: Possibilità di riutilizzare strutture dati in più file (es., librerie) Migliorano la leggibilità del codice (meno righe nei sorgenti.c) Vengono salvati con un formato specifico: my_header.h Vengono inclusi nei file.c tramite la #include "my_header.h" Per il progetto creiamo un file define_and_typedefs.h Negli header files posso anche inserire dei prototipi delle funzioni, ossia una loro dichiarazione fatta senza specificare il corpo della funzione stessa.

Funzioni Hanno una "firma" (signature): Tipo dell output Nome univoco Parametri di input int my_function(int a) Generalmente terminano con la restituzione, al chiamante, del risultato della computazione, attraverso l istruzione return. Esistono anche funzioni che non restituiscono nulla: quelle di tipo void (procedure) int somma(int a, int b){ int s = a + b; return s; } Vengono utilizzate per riutilizzare parti di codice e per migliorarne la leggiblità. In C non è possibile utilizzare una funzione prima che sia dichiarata!

Puntatori I puntatori sono delle variabili che contengono l indirizzo di memoria di un altra variabile int* puntatore; "*" è chiamato operatore di deferenziazione e restituisce il contenuto dell oggetto puntato dal puntatore; mentre l operatore "&" restituisce l indirizzo della variabile. int var=0, var2, ind; int* puntatore; puntatore = &var; //puntatore punta a var var2 = *puntatore; //var2 == var ind = puntatore; //ind contiene l indirizzo di var *puntatore = 5 //var == 5

Operazioni sui puntatori È possibile effettuare operazioni sui puntatori. Spostamento in avanti: p + i, sposta il puntatore di i posizioni avanti Spostamento indietro: p i, sposta il puntatore di i posizioni indietro Un puntatore esiste sempre in funzione del tipo di oggetto puntato. Un puntatore ad int ha un blocco di memoria di 4 byte, a char di 1 byte, ecc Se sommo al puntatore un intero o utilizzo l operatore ++, il puntatore si sposterà in avanti di tanti byte quanti ne prevede il tipo di variabile puntata. Ad esempio: p + i equivale a posizione + (i*dimensione tipo puntato) Se ad una funzione passo dei puntatori eventuali operazioni su questi parametri saranno effettuate sulle variabili originali! È possibile agire sugli array come se si stesse agendo su un puntatore poiché entrambi sono blocchi contigui di memoria. Attenzione: devo comunque assegnare la prima cella dell array ad un puntatore. Posso utilizzare i puntatori per puntare a strutture, in questo caso per accedere ai campi della struct utilizzo l operatore "->"

Puntatori e tipi Puntatori ed array char stringa[20]; char* pointer; pointer= &stringa[0]; //pointer punta a stringa[0] pointer++; //Ora pointer punta a stringa[1] Puntatori e struct struct punto { int x; int y; } puntoa; struct punto* pointer; pointer = &puntoa; pointer->x = 6; //Assegno il campo x pointer->y = 7; //Assegno il campo y

File I/O I file rappresentano una sequenza di byte, siano essi file di testo o file binari. La fine del file è espressa dal carattere speciale EOF. Vengono rappresentati tramite una struttura FILE Nella manipolazione dei file si utilizza il puntatore a tale struttura: FILE* fp; La libreria <stdlib.h> mette a disposizione una serie di funzioni per operare sui file: FILE* fopen(const char* filename, const char* mode): crea o apre un file, specificando il nome del file e la modalità di apertura. r: lettura w: scrittura a: writing appending mode int fputc(int c, FILE* fp): scrive il caratter c nel file puntato da fp tramite un output stream int fputs(const char* s, FILE *fp): scrive una stringa s nel file puntato da fp Altre simili a quelle di console: fwrite, fprintf

File I/O Altre funzioni int fgetc(file *fp): leggere un carattere dal file puntato da fp char* fgets(char* buf, int n, FILE *fp): legge fino a n-1 caratteri dal file puntato da fp. La funzione si ferma se incontra un \n o la fine del file. Alte simili a quelle di console: fread, fscanf int fclose(file *fp): Chiude un file ed esegue un flush sui buffer di scrittura/lettura. La sequenza per operare sui file è: 1. fopen( ) 2. freaed/fgets oppure fwrite/fputs 3. fclose In caso di problemi in apertura il puntatore fp = NULL

Esercizio 1: Distnza punti Si implementi la funzione che permetta di stabilire, dati due punti, quali dei due è più distante dall origine. I tipi definiti «a mano» possono essere usati come tutti gli altri tipi nelle funzioni.

Esercizio 2: Fattoriale Si implementi una funzione fact() che, presi in ingresso un intero n, ne restituisca il fattoriale. Il fattoriale di un numero n ("n!") è la produttoria di tutti gli interi da 1 ad n (compreso): Si utilizzi un semplice ciclo for. Ad esempio: 5! = 120 0! = 1 1! = 1