Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAdriano Spinelli Modificato 8 anni fa
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; }
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.