La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012

Presentazioni simili


Presentazione sul tema: "1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012"— Transcript della presentazione:

1 1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012 http://agile.diee.unica.it Ing. Giuseppe Destefanis Diee, secondo piano Tel. 070-6755774 mail: giuseppe.destefanis@diee.unica.it

2 2 File In astratto un file può essere visto come una sequenza di dati di un certo tipo, principalmente caratteri. Per accedere ad un file è necessario che esso sia aperto. Un file ha un nome e un percorso, tale percorso permette di accedere al file in un sistema organizzato in directory. Una volta aperto il file è possibile accedere al suo contenuto, in sequenza, dal suo inizio sino alla fine. Quando si apre un file occorre specificare quale tipo di operazioni tra lettura e scrittura o aggiunta in coda si desidera effettuare.

3 3 Funzioni fopen() e fclose() I file hanno diverse proprietà importanti:  hanno un nome;  devono essere aperti o chiusi. FILE *fopen(const char *path, const char *mode); La funzione fopen() apre il file path associandolo ad uno stream. Il file path viene predisposto per le operazioni di I/O come e’ indicato da mode. Restituisce, in caso di successo, lo stream da impiegare nelle successive chiamate alle funzioni di I/O. In caso di fallimento viene restituito il valore NULL.

4 4 Funzioni fopen() e fclose() int fclose( FILE *stream );  Chiude il file stream associato;  dealloca il buffer stream associato. fclose() restituisce 0 se il file viene chiuso con successo, EOF altrimenti.

5 5 File *myfile; //aperto in lettura myfile=fopen("nomefile.txt","r");... //aperto in scrittura myfile=fopen("nomefile.txt","w"); fclose(myfile);

6 6 Accesso  lettura: int fscanf(FILE *stream, const char *format,...); La funzione fscanf() legge l’input stream ed esegue le conversioni in base alla stringa di formattazione format assegnando i valori convertiti alle variabili, i cui puntatori sono passati come argomenti della funzione.

7 7 Accesso  scrittura: int fprintf(FILE *stream, const char *format,...); La funzione fprintf() scrive sull’output stream gli argomenti passati, eseguendo le opportune conversioni sotto il controllo della stringa di formattazione format.

8 8 Esempio #include int main() { char car; char path[]="/home/universo/Desktop/data/esample.txt"; FILE *file; file=fopen(path,"w"); //scrittura dei caratteri dell’alfabeto if(file!=NULL) for(car=’A’;car<’Z’; car++) fprintf(file,"%c",car); //chiusura del flusso fclose(file); //lettura dei caratteri file=fopen(path,"r"); if(file!=NULL) while( fscanf(file,"%c",&car)!=EOF) printf("%c\n",car); fclose(file); return 0; }

9 9 Esempio 2 (1) Il file di testo studenti.txt contiene cognome, nome e numero di matricola di alcuni studenti separati da spazi. Il formato è il seguente: Rossi Mario 25402 Bianchi Francesco 20012 Verdi Simone 11254 Neri Alessandra 31012 Scrivere un programma che legge i dati da file e li stampa sullo standard output.

10 10 Esempio 2 (2) #include struct studente { char cognome[15]; char nome[15]; int matricola; }; int main() { int endof; FILE *file; Studente stud; file = fopen("studenti.txt", "r"); endof=1; if(file==NULL) printf("Il file non pu essere aperto\n"); else { do{ endof=fscanf(file,"%s %s %d",stud.cognome,stud.nome,&stud.matricola); printf("%s %s %d\n",stud.cognome,stud.nome,stud.matricola);} while(endof!=EOF); }

11 11 Algoritmo di Ricerca Binaria int ricercaBinaria(int lista[], int n, int x) { int p,u,m; p = 0; u = n-1; while(p<=u) { m = (p+u)/2; if(lista[m]==x) return m; // valore x trovato alla posizione m if(lista[m]<x) p = m+1; else u = m-1; } // se il programma arriva a questo punto vuol dire che // il valore x non è presente in lista, ma se ci fosse // dovrebbe trovarsi alla posizione p (nota che qui p > u) return -1; }

12 12 Bubblesort void BubbleSort(int *array, int elemN) { int i, tmp, ultimo; int alto=elemN; /* elemN è il numero degli elementi del vettore da ordinare */ while (alto >= 0) { ultimo = -1; for (i=0; i<alto; i++) { if (array[i]>array[i+1]) //sostituire ">" //con "<" per avere un ordinamento decrescente { tmp = array[i]; array[i] = array[i+1]; array[i+1] = tmp; ultimo = i; } alto = ultimo; }


Scaricare ppt "1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012"

Presentazioni simili


Annunci Google