Prefissi (modificatori). signed, unsigned, short, long. Dichiarazione delle variabili. <tipo> <nome>; Es:

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Prefissi (modificatori). signed, unsigned, short, long. Dichiarazione delle variabili. <tipo> <nome>; Es:"

Transcript

1 LINGUAGGIO C 1 Creato nel 1972 da Dennis Ritchie (Kernighan & Ritchie, Linguaggio C, 2nd ed.) Caratteristiche: Potenza Flessibilità Successo Portabilità Modularità Da C bisogna partire per imparare C++ e Java Il C è standard (ANSI) Caratteristiche di un programma. INTEGRITÀ: il programma deve fare quello che ci si aspetta che faccia CHIAREZZA: il programma deve essere leggibile e adeguatamente commentato SEMPLICITÀ: nei limiti del possibile, il programma deve essere semplice EFFICIENZA: il programma deve essere veloce ed utilizzare nel modo migliore le risorse MODULARITÀ: il programma deve essere "decomposto" in moduli di programma distinti. Così si agevola anche la manutenzione e l aggiornamento GENERALITÀ: il programma deve essere il più generale possibile (nei limiti della ragionevolezza) Ciclo di produzione del software. Determinare PRIMA obiettivi e metodi Creazione del codice: editor ASCII generici o dedicati Compilazione: dal codice al file.obj controllo sintattico controllo lessicale controllo semantico ottimizzazione (dipendente o indip. dalla macchina) Link: collegamento con le funzioni di libreria generazione del file eseguibile Ambienti IDE (Integrated Development Environment) Nome delle variabili. Può contenere lettere, cifre e _ (underscore) il 1 carattere deve essere una lettera (può essere _ ma è fortemente sconsigliato) il C è case sensistive, cioè distingue maiuscole e minuscole. Di norma le variabili si scrivono in lettere minuscole non si possono usare alcune parole (reserved keywords) eventualmente, seguire una convenzione sui nomi int numerostudenti, punteggio; int intnumstudenti, intpunteggio; int numero_studenti, voto_esame; Tipi fondamentali. char (1 byte) (da -128 a 127) int (2 byte) (da a 32767) float (4 byte) (da 1.2E-38 a 3.4E38) double (8 byte) (da 2.2E-308 a 1.8E308) Prefissi (modificatori). signed, unsigned, short, long Dichiarazione delle variabili. <tipo> <nome>; Es: int prodotto; int persone, paiadiguanti; La posizione della dichiarazione conta. Si può anche fare un inizializzazione nella dichiarazione. Es: int prodotto = 0; float costanteg = 6.67e-11; char testo = B ;

2 2 È sempre consigliabile inizializzare le variabili Costanti. si mette il prefisso const, ad es.: const float pigreco = le costanti non possono essere modificate durante il programma. Si tratta, in sostanza, di variabili read-only il debugger vede le variabili e le costanti Costanti simboliche. Specificate attraverso la direttiva #define #define PI sostituzioni letterali (come in un word processor) - di solito indicate con lettere maiuscole non sostituisce all interno delle virgolette printf("il val. di PI è: %f",pi); la sostituzione avviene al momento della compilazione. Nel file.obj non rimane alcuna traccia del nome della costante. preprocessore Istruzioni. Un istruzione è un comando. Le istruzioni terminano con un ";". x = 2+3; printf("\nfond. di\ninform. A"); Più istruzioni sono racchiuse tra graffe: x = 2+3; printf("ciao!"); Operatore di assegnazione. L operatore di assegnazione è =. x = 2+3; x = x + 3; Attenzione: l operatore = non è un operatore di confronto! (:= in Pascal). Non è come l uguale in matematica Operatori matematici e -- (incremento e decremento) x = 2; /* x vale 2 */ x++; /* x vale 3 */ x--; /* x vale 2 */ corrispondono a x=x+1; e x=x-1; Attenzione: preporre o posporre l operatore produce effetti diversi. Infatti: ++x; incrementa x e poi lo valuta, mentre x++; valuta x e poi lo incrementa int a=5,b=5; printf("\na:%d,b:%d", a--, --b); printf("\na:%d,b:%d", a--, --b); printf("\na:%d,b:%d", a--, --b); printf("\na:%d,b:%d", a--, --b); printf("\na:%d,b:%d", a--, --b); A:5,B:4 A:4,B:3 A:3,B:2 A:2,B:1 A:1,B:0

3 #include <stdio.h> #include <math.h> main() double a,b,c,x1,x2; printf("\ninserire il coeff. a: "); scanf(" %lf", &a); printf("\ninserire il coeff. b: "); scanf(" %lf", &b); printf("\ninserire il coeff. c: "); scanf(" %lf", &c); x1 = (- b + sqrt(b*b-4*a*c) )/(2*a); x2 = (- b - sqrt(b*b-4*a*c) )/(2*a); printf("soluzioni: %lf, %lf", x1, x2); return 0; 3 Operatori matematici 2. +, -, *, /, % 32%5 = 2 100%2 = 0 Osservazione 1: il tipo del risultato può variare al variare del tipo degli operandi: prima di svolgere l operazione l operando con la precisione più bassa viene convertito alla precisione dell altro Osservazione 2: alcune operazioni possono risultare prive di significato int i=7; float f=5.5; i+f vale 12.5 (è di tipo float) (i+f) % 4 non è valida (e viene segnalato errore) ( (int) (i+f) ) % 4 è valida (perché (i+f) è convertito al tipo intero (cast)) Operatori matematici 3. la scrittura x = x+a ha una forma abbreviata: x += a in generale: exp1 op= exp2 significa exp1 = exp1 op exp2 y -= z+1 vuol dire y = y-(z+1) Funzioni matematiche. int abs(x) double ceil(x) double exp(x) double floor(x) double fabs(x) double sin(x)... int abs(x) double ceil(x) double exp(x) double floor(x) double fabs(x) double sin(x)... Strutture. La struttura è una collezione di variabili (non necessariamente dello stesso tipo) raggruppate sotto lo stesso nome. struct tempo int ore; int minuti; int secondi; orologio1, orologio2;

4 4 oppure: struct tempo int ore; int minuti; int secondi; ; struct tempo orologio1, orologio2; orologio1.ore = 18; orologio1.minuti = 21; orologio1.secondi = 22; Le strutture si possono nidificare (cioè si può inserire una struttura dentro un altra struttura). struct nascita struct tempo ora; struct data data; ; L istruzione typedef. L istruzione typedef definisce un sinonimo per un tipo di variabile. Ad es.: tipedef int intero; intero x = 3; Con le strutture typedef definire un breve sinonimo per strutture complesse tipedef struct tempo... orologio; orologio swatch, sector; typedef è un sinonimo per la dichiarazione di istanze di strutture /*dichiarazione*/ typedef struct int x; int y; coord;... /*istanza*/ coord punto1, punto2; /*dichiarazione*/struct coord int x; int y;;... /*istanza*/ struct coord punto1, punto2; Controllo di flusso. Alcuni comandi permettono di controllare l esecuzione del programma, nel senso che, in dipendenza da certi valori, il programma può eseguire certe operazioni piuttosto che altre. il comando if.. else #include <stdio.h> #include <math.h> main() double a,b,c,x1,x2,r; printf("\ninserire il coefficiente a: "); scanf(" %lf", &a); printf("\ninserire il coefficiente b: "); scanf(" %lf", &b); printf("\ninserire il coefficiente c: "); scanf(" %lf", &c); r = b*b-4*a*c; if ( r >= 0 ) x1 = (- b + sqrt(r) )/(2*a); x2 = (- b - sqrt(r) )/(2*a);

5 printf("soluzioni: %lf e %lf", x1, x2); else printf("nessuna soluzione reale."); return 0; 5 if... else. if ( espressione ) istruzione1; istruzionesuccessiva; if ( espressione ) istruzione1; else istruzione2; istruzionesuccessiva; if ( espressione1 ) istruzione1; else if ( espressione2 ) istruzione2; else istruzione3; istruzionesuccessiva; if ( eta < 18 ) printf("minore"); else if ( eta < 65 ) printf("adulto"); else printf("pensionato"); /* prosegue */ istruzionesuccessiva; Operatori di confronto. >, >=, <, <=,!=, == i valori che possono assumere sono: VERO ( = uno ) FALSO ( = zero ) Attenzione: l operatore == non va confuso con l operatore = (assegnazione) usare sempre uno stile semplice da leggere, invece di scrivere if(x!= 5) A; else B; scrivere if(x == 5) B; else A; Operatori logici. AND && (vero solo se entrambi veri) OR (vero se almeno uno è vero) NOT! Attenzione alle precedenze (in caso di dubbio usare le parentesi) Controllo di flusso (2): l istruzione for. for(inizio;condizione;incremento) istruzione; seguito;

6 6 1. L espressione inizio viene valutata(di solito è un assegnazione di valore ad una variabile) 2. L espressione condizione viene valutata. 3. Se essa è falsa il controllo del programma passa all istruzione seguito 4. Se condizione è vera viene eseguita istruzione 5. Viene valutata incremento e si ritorna al passo 2 int i; for(i=1; i<11; i++) printf("\nil quadrato di %d è %d",i,i*i); int i; for(i=1; i<11; i++) printf("\nil quadrato di %d è %d",i,i*i); printf("\nil cubo di %d è %d",i,i*i*i); Controllo di flusso (2): l istruzione for. int i,k,pot; for(k=1; k<=10; k++) pot = 1; for(i=1; i<=3; i++) pot *= k; printf("\n%d elev. alla %d è %d",k,i,pot); 1 elev. alla 4 è 1 2 elev. alla 4 è 8 3 elev. alla 4 è 27 4 elev. alla 4 è int i,k,pot; for(k=1; k<=10; k++) pot = 1; for(i=1; i<=3; i++) pot *= k; printf("\n%d elev. alla %d è %d",k,i-1,pot); Controllo di flusso (3): l istruzione while. while(condizione) istruzione; seguito; 1. L espressione condizione viene valutata. 2. Se essa è falsa il controllo del programma passa all istruzione seguito 3. Se condizione è vera viene eseguita istruzione 4. Viene valutata incremento e si ritorna al passo 1 int i=1; while(i<=10) printf("\nil quadr. di %d è %d",i,i*i); i++; int i=1;

7 while(i<=10) printf("\nil quadrato di %d è %d",i,i*i); printf("\nil cubo di %d è %d",i,i*i*i); i++; 7 Confronto tra while e for. while(condizione) e for( ; condizione ;) sono la stessa cosa. Quindi, ogni cosa che si può fare con for si può fare con while. Con il for, inizializzazione, incremento e controllo di uscita vengono scritti nello stesso posto. Con il while in posti diversi. Istruzione do... while. do istruzione; while(condizione); La differenza con il while è che in questo caso la valutazione della condizione viene fatta alla fine. istruzione, quindi, viene eseguita almeno una volta. Si usa do... while, quando il ciclo viene eseguito sicuramente la prima volta (ad es. nei menu). Array. un array è un insieme di locazioni di memoria con lo stesso nome e distinte da un numero detto indice (posizione, posto, in inglese subscript). Gli array si indicano come le variabili ma sono seguiti da [n], dove n è la dimensione dell array int x[10]; char testo[20]; Corrispondono ai vettori matematici o alle matrici n X 1. Le singole locazioni di memoria si indicano con i simboli x[0],x[1],x[2],..., x[9] Attenzione: gli indici cominciano da ZERO #include <stdio.h> main() int lista[5]; int ctr = 0, nbr = 0; printf("inserire 5 numeri tra 1 e 10\n"); while ( ctr < 5 ) nbr = 0; while (nbr < 1 nbr > 10) printf("\nins. il num. %d: ", ctr + 1 ); scanf("%d", &nbr ); lista[ctr] = nbr; ctr++; for (ctr = 0; ctr < 5; ctr++) printf("\nval. %d=%d", ctr + 1, lista[ctr] ); return 0; Trova l errore! int num = 0; while ( num < 100 ) printf("\nnum. %d:", num );

8 8 printf("\ninserire il seguente..."); Trova l errore 2! for( num = 1; num < MASSIMO; num++) printf("\nnum. = %d:", num ); Funzioni in C. double area_triangolo(int b, int h); main() int base = 4; int alt = 6; double area; area = area_triangolo(base, alt); double area_triangolo(int b, int h) double a = (b * h) / 2; return a; base = 4 alt = 6 b h 5 6 a = (b * h) / 2 12 a area base 4 alt 6 area b h a 12 void swap(int &a, int &b); main() int n1 = 3; int n2 = 5; swap(n1, n2);

9 void swap(int &a, int &b) int temp; 9 temp = a; a = b; b = temp; n1 = 3 n2 = 5 a &n1 b &n2 temp = a a = b b = temp n1 3 n1 5 a b temp 3 Puntatori. un puntatore è una variabile numerica che contiene un indirizzo di memoria Per dichiarare un puntatore, così come per le altre variabili, bisogna indicare un nome univoco e far precedere il nome da un * int *p_x; char *testo; La prima dichiarazione assegna ad una certa cella di memoria il nome p_x e dice che il contenuto di quella cella sarà un intero. La seconda assegna ad un altra cella di memoria il nome testo e dice che il contenuto di quella cella sarà un carattere. Come si inizializza un puntatore? Assegnandogli l indirizzo di memoria di una variabile esistente int pippo; p_x = &pippo; L operatore & restituisce l indirizzo di memoria della variabile (pippo) indirizzi contenuto La variabile a vale 31 ed è nella cella 3. Allora: int a = 31; printf( %d,a); /* scrive 31 */ printf( %d,&a); /* scrive 3 */ Se usiamo un puntatore si ha: int a = 31; int *punt_a; punt_a = &a; a

10 10 printf( %d,a); /* scrive 3 */ printf( %d,*punt_a); /* scrive 31 */ Gli operatori * e & agiscono rispettivamente su puntatori e su variabili ordinarie (in realtà, però, anche i puntatori sono tipi di variabili)il C sa che differenti tipi di variabile occupano un numero diverso di byte. Diversi puntatori possono riferirsi alla stessa variabile: int a = 31; int *punt_b, *punt_c; punt_b = &a; punt_c = &a; printf( %d,a); /* scrive 31 */ printf( %d,*punt_b); /* scrive 31 */ printf( %d,*punt_c); /* scrive 31 */ Ma si può anche assegnare ad un puntatore il valore di un altro puntatore int a = 31; int *punt_b, *punt_c; punt_b = &a; punt_c = punt_b; printf( %d,a); /* scrive 31 */ printf( %d,*punt_b); /* scrive 31 */ printf( %d,*punt_c); /* scrive 31 */ Attenzione: int a; int *punt_b; *a /* illegale */ &punt_b /* corretto ma molto anomalo */ Puntatori e array indirizzi contenuto Il nome di un array senza le parentesi è il puntatore al suo primo elemento: int a[4]; printf( %d,a[0]); /* scrive 31 */ printf( %d,a); /* scrive 3 */ printf( %d,&a[0]); /* scrive 3 */ Incrementando il puntatore, quindi, si incrementa un indirizzo di memoria: int a[4]; printf( %d,*(a + 2)); /* scrive 55 */ printf( %d,a[2]); /* scrive 55 */ Quando un array è un parametro di una funzione, si sta in realtà passando un puntatore (e quindi la chiamata è per indirizzo) La seguente funzione copia una stringa da una variabile ad un altra. main() #include <stdio.h> void copias( char *x, char *y ); int main() char *testo1 = "W Milan!"; char *testo2 = "W Inter!"; printf("\n\n1: %s", testo1 ); printf("\n2: %s", testo2 ); copias( testo1, testo2 ); printf("\n\n1: %s", testo1 ); printf("\n2: %s", testo2 ); a[0] a[1] a[2] a[3]

11 return 0; 11 void copias( char *x, char *y ) while (1) *x = *y; if ( *x == \0 ) return; x++; y++; Puntatori 1. main() char lettera = c ; int anno = 1998; float radice = 2.563; printf( %c %d %f, lettera, anno, radice); lettera anno c FF FF FF73 radice Puntatori 2. main() char lettera = c ; int anno = 1998; float radice = 2.563; printf( %p %p %p, &lettera, &anno, &radice); lettera anno c 1998 & lettera & anno & radice radice Puntatori 3. main() int anno = 1998;

12 12 int* p_anno; p_anno = &anno; c anno 1998 & anno 0012FF74 p anno Puntatori 4. main() int anno = 1998; int* p1_anno = &anno; int* p2_anno = &anno; c anno 1998 & anno 0012FF FF74 p1 anno p2 anno Puntatori 5. main() int n1 = 3; int n2 = 5; swap(&n1, &n2); void swap(int* a, int* b) int temp = *a; *a = *b; *b = temp; n1 3 n2 5 temp FF FF76 a = &n1 b = &n2

13 Gestione dei file. La gestione dei file avviene mediante l inizializzazione di una variabile con una particolare struttura, FILE. La prima operazione è l apertura del file che si esegue con la funzione fopen(). Il suo prototipo è: FILE *fopen(const char *nomefile, const char *modo); nomefile è il nome del file che si vuole aprire (eventualmente l intero percorso); modo è un parametro che indica quali operazioni si vogliono eseguire con il file. (r=lettura, w=scrittura, a=append, r+=lettura e scrittura, ecc.) La funzione fopen, quindi, restituisce un puntatore ad una variabile di tipo FILE. Con questo puntatore si può poi operare con diverse funzioni. FILE *fp; fp = fopen( ricette.txt, r+ ); La funzione fopen() FILE *fopen(const char *nomefile, const char *modo); fopen NON restituisce un puntatore quando c è un errore: restituisce NULL. Pertanto è necessario controllare che il puntatore restituito non sia NULL per evitare disastri! FILE *fp; fp = fopen( ricette.txt, r+ ); if ( fp == NULL ) printf( \nerrore! ); fprintf() e fscanf() Sono le funzioni che corrispondono a printf() e scanf(). Operano con i file in modo analogo. fclose() Questa funzione chiude il file aperto con fopen (chiude, cioè, il canale di comunicazione con il file). Quando la chiusura avviene senza problemi la funzione restituisce 0. Esempio: #include <stdlib.h> #include <stdio.h> 13 main() float f1, f2, f3, f4, f5; FILE *fp; if ((fp=fopen("input.txt","r"))==null) fprintf(stderr,"errore di apertura."); fscanf(fp,"%f %f %f %f %f", &f1, &f2, &f3, &f4, &f5); printf("valori:%f,%f,%f,%f, e %f.", f1, f2, f3, f4, f5); fclose(fp); return(0); exit(1); INPUT.TXT getc() e fgetc() int getc(file *fp); getc legge un carattere (un intero) dal FILE; può funzionare anche se FILE non è specificato: allora legge da tastiera (il file stdin). Il C definisce tre file sempre aperti: stdin, stdout e stderr. fgetc e getc sono identiche! Corrispondente in output: putc int putc(int ch, FILE *fp);

14 14 fgets() char *fgets(char *str, int n, FILE *fp); fgets legge una linea o al massimo n-1 caratteri e li mette in *str. Corrispondente in output: fputs char *fputs(char *str, FILE *fp); fwrite() int fwrite(void *buf, int size, int count, FILE *fp); *buf è il puntatore in memoria ai dati da scrivere; size è la lunghezza del singolo dato; count è il numero dei dati e *fp è il file su cui scrivere. Di solito, size viene calcolato con l operatore sizeof(). La funzione restituisce il numero di dati effettivamente scritti. fread() int fread(void *buf, int size, int count, FILE *fp); *buf è il puntatore in memoria ai dati da leggere; size è la lunghezza del singolo dato; count è il numero dei dati e *fp è il file su cui scrivere.di solito, size viene calcolato con l operatore sizeof().la funzione restituisce il numero di dati effettivamente letti. #include <stdlib.h> #include <stdio.h> #define SIZE 20 main() int c, array1[size], array2[size]; FILE *fp; for (c = 0; c < SIZE; c++) array1[c] = 2 * c; if ( (fp = fopen("direct.txt", "wb")) == NULL) fprintf(stderr, "Error opening file."); exit(1); if (fwrite(array1, sizeof(int), SIZE, fp)!= SIZE) fprintf(stderr, "Error writing to file."); exit(1); fclose(fp); if ( (fp = fopen("direct.txt", "rb")) == NULL) fprintf(stderr, "Error opening file."); exit(1); if (fread(array2, sizeof(int), SIZE, fp)!= SIZE) fprintf(stderr, "Error reading file."); exit(1); fclose(fp); for (c = 0; c < SIZE; c++) printf("%d\t%d\n", array1[c], array2[c]); return(0); ftell() long ftell(file *fp); la funzione restituisce la posizione corrente del cursore sul file (0=all inizio; -1=errore) fseek() int fseek(file *fp, long offset, int origine); la funzione sposta il cursore sul file di offset a partire da origine. Il valore di origine può essere SEEK_SET, SEEK_CUR, SEEK_END; le tre costanti sono definite in <io.h>.

15 15 ATTENZIONE: le funzioni di scrittura e lettura non spostano necessariamente il cursore (il motivo è il buffering della scrittura su file); per sapere dove si trova il cursore occorre sempre chiamare la ftell(). feof() int feof(file *fp); La funzione restituisce ZERO (falso) quando non si è alla fine del file, non ZERO altrimenti.

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

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

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su

Dettagli

Streams e disk files

Streams e disk files Streams e disk files Streams Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream: Testo: sequenza

Dettagli

Gestione dei file in C

Gestione dei file in C Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente

Dettagli

Programmazione C. Puntatori Array come puntatori

Programmazione C. Puntatori Array come puntatori Programmazione C Puntatori Array come puntatori Perché usare gli indirizzi Tutto in C ha un valore int a = 4; significa che il valore della variabile a è 4, e che potrà essere modificato dal programma

Dettagli

Gestione dei file in C

Gestione dei file in C Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files

Dettagli

Introduzione al C. Stream e disk file

Introduzione al C. Stream e disk file Introduzione al C Stream e disk file Stream Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream:

Dettagli

Qualsiasi programma in C++ segue lo schema: Variabili

Qualsiasi programma in C++ segue lo schema: Variabili Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

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

Introduzione al linguaggio C

Introduzione al linguaggio C Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,

Dettagli

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Gestione dei file. Linguaggio ANSI C Input/Output - 13 Gestione dei file Necessità di persistenza dei file archiviare i file su memoria di massa. Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni

Dettagli

La gestione dei file in C

La gestione dei file in C Gestione dei file La gestione dei file in C Il file è un astrazione molto ampia nella descrizione di un sistema informatico nastro di I/O supporto di comunicazione macchina/ambiente di ogni tipo (sensori,

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

1

1 Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix

Dettagli

Il linguaggio C. Breve panoramica su stdio.h

Il linguaggio C. Breve panoramica su stdio.h Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene

Dettagli

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

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Gestione dei File. Credits Prof. Campi

Gestione dei File. Credits Prof. Campi Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè

Dettagli

C: primi elementi. Lezione 4

C: primi elementi. Lezione 4 C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX

Dettagli

Dispensa 25 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA. Laboratorio

Dispensa 25 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA. Laboratorio CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA CORSO DI PROGRAMMAZIONE A.A. 2016-17 Dispensa 25 Laboratorio Dott. Mirko Ravaioli e-mail: mirko.ravaioli@unibo.it http://www.programmazione.info

Dettagli

Operazioni su file di caratteri

Operazioni su file di caratteri Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Lezione 11: Liste a Puntatori e Input/Output

Lezione 11: Liste a Puntatori e Input/Output Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

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

Esercizi. I File ed il C

Esercizi. I File ed il C Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione

Dettagli

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

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi

Dettagli

Lezione 22: Input/Output e Files

Lezione 22: Input/Output e Files Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard

Dettagli

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Marzo 2016 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono

Dettagli

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Maggio 2014 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono

Dettagli

Gestione dei File in C

Gestione 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

Dettagli

Struttura dei programmi e Variabili

Struttura dei programmi e Variabili Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita

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

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

Suggerimenti, note utili ed errori comuni. Fondamenti di informatica T Suggerimenti, note utili ed errori comuni Fondamenti di informatica T printf, scanf e stringhe di formato La lettura e scrittura di variabili in formato testo sono realizzate tramite printf e scanf sfruttando

Dettagli

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

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

Capitolo 5 -- Stevens

Capitolo 5 -- Stevens Libreria standard di I/O Capitolo 5 -- Stevens Libreria standard di I/O rientra nello standard ANSI C perché è stata implementata su molti sistemi operativi oltre che su UNIX le sue funzioni individuano

Dettagli

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

FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto alla volta Scrittura di un fputc Int fputc(int ch, FILE *flusso); carattere alla volta Lettura

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

Fondamenti di Informatica L-A

Fondamenti di Informatica L-A Fondamenti di Informatica L-A Esercitazione del 23/11/07 Ing. Giorgio Villani Ripasso Teoria Funzioni ricorsive 2 fatt(2) 1 2*fatt(1) fatt(1) 1 2*1 1*fatt(0) fatt(0) 1*1 caso base fatt(0)=1 Esercizio 1

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2015 2nda prova in itinere Era il 21 Maggio 2 2nda prova in itinere Era il 21 Maggio Spostata (da 3 settimane) al 22

Dettagli

Input/Output su File

Input/Output su File Input/Output su File Premessa importante Queste dispense si intendono unicamente come riferimento rapido per consultare il significato e I prototipi delle funzioni per l'accesso ai file. Per avere esempi

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

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

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali Files e S.O. I files sono gestiti dal S.O. e resi visibili

Dettagli

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e! Settimana n.12 Obiettivi File!di!testo Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!scanf 437 Files Vista d insieme dei formati di file File File

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

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

Introduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp. Introduzione L elaborazione dei files in C D.D. cap. 11+ pp. 569-572 K.P. pp. 581-583 La memorizzazione dei dati nelle variabili e nei vettori è temporanea: tutti quei dati andranno persi quando il programma

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

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Dettagli

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

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

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

Dettagli

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

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale. 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

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

Linguaggio C Gestione File

Linguaggio C Gestione File Gestione File: Il file è l'unità logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati non limitata dalle dimensioni della memoria centrale. Nel linguaggio

Dettagli

ELEMENTI DI INFORMATICA. Linguaggio C

ELEMENTI DI INFORMATICA. Linguaggio C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:

Dettagli

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

Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri L elaborazione dei files in C DD, Cap. 11 + pp. 569-572 KP, pp. 581-583 Introduzione La memorizzazione dei dati nelle variabili e nei

Dettagli

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

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come

Dettagli

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

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Ripasso Liste: typedef struct EL{TipoElemento Info; struct EL *Prox;} ElemLista; typedef ElemLista

Dettagli

A. Ferrari. File. in C

A. Ferrari. File. in C File in C stream - flussi in C la gestine dei file avviene attravers un fluss di cmunicazine per utilizzare un file è necessari dichiarare una variabile di tip puntatre al file (ad un ggett di tip FILE)

Dettagli

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

Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Gestione dei files Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Struttura del disco fisso Un disco fisso è composto da una serie di piatti sovrapposti Ogni piatto è

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi

Dettagli

PROGRAMMA = ALGORITMO

PROGRAMMA = ALGORITMO Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca

Dettagli

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

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire.. File I file sono una illusione creata dal Sistema Operativo(SO) Il SO usa opportune strutture dati per implementare tale astrazione (ad esempio: File Control Block, FCB) Sono usati per memorizzare in modo

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 13 Corso di Informatica 2009-2010 Lezione 13 1 Input/output da file Stream Si definisce stream una sequenza di bytes di dati che può essere in ingresso (input

Dettagli

Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.

Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A. Gestione dei File Corso di Informatica A Vito Perrone 1 Il file system in C Indice Principali operazioni sui file (dalla Standard Library) Esempi 2 Il file system in C Flusso di comunicazione: binario

Dettagli

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main() Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

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

Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. 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

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

Gestione dei file in C

Gestione dei file in C Gestione dei file in C Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute

Dettagli

Input/output console file caratteri stringhe formattato ascii binari

Input/output console file caratteri stringhe formattato ascii binari Input/output Input/Output Input/output console file caratteri stringhe formattato ascii binari La libreria standard del C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria,

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Introduzione alla programmazione in C

Introduzione 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

Dettagli

Prof. G. Ascia. Gestione dei File C

Prof. G. Ascia. Gestione dei File C Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel

Dettagli

Gestione dei File C. Generalità

Gestione dei File C. Generalità Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel

Dettagli

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013 File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2013 Obiettivi Alcuni problemi aperti Il main() Allocazione dinamica della memoria Il salvataggio dei dati File File

Dettagli

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.

Dettagli

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri

Informazioni Utili. Fondamenti di Informatica L-B (L-Z) Esercitazioni. A.A. 2005/06 Tutor: Loris Cancellieri Fondamenti di Informatica L-B (L-Z) Esercitazioni A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Informazioni Utili Orario delle Esercitazioni Lunedì 14-16 Gruppo L Q Martedì 16-18

Dettagli

Corso di Laboratorio di programmazione e calcolo

Corso di Laboratorio di programmazione e calcolo Corso di Laboratorio di programmazione e calcolo Docente: Stefano Finzi Vita Pagina del corso: http://www1.mat.uniroma1.it/mat_cms/pres_corso.php?corso_da_ presentare=1851&lingua=italiano oppure link da

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I/O in C Il sistema di I/O del C è una interfaccia uniforme

Dettagli

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione

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