Scope (visibilità) Scope di un identificatore
|
|
- Muzio Bonfanti
- 6 anni fa
- Visualizzazioni
Transcript
1 Scope (visibilità) Scope di un identificatore Lo scope (visibilità) di un identificatore è la porzione di codice in cui quell identificatore è definito e ha senso Se l identificatore si riferisce a una variabile, lo scope è la porzione di codice che inizia dal punto in cui viene definita la variabile e termina alla fine del blocco che la contiene (chiusura della parentesi graffa) Non è possibile utilizzare una variabile al di fuori del suo scope Si può pensare che la variabile, raggiunto il termine dello scope, venga distrutta 1
2 Scope di un identificatore int b = 4; if (b == 3) { Scope di a nel ramo-if Scope di b int a = 5; printf("b è uguale a 3\n e a è uguale a %d", a); else { Scope di a nel ramo-else int a = 1; printf("b non è uguale a 3 e a è uguale a %d\n", a); Il codice è corretto, però bisogna prestare attenzione: La variabile a del ramo-if non corrisponde alla variabile a del ramo-else Entrambe le variabili a vengono distrutte al termine del blocco, quindi qualsiasi riferimento a queste variabili dopo questo blocco di istruzioni sarebbe un errore Scope di un identificatore Se l identificatore si riferisce a una funzione, lo scope è la porzione di codice che inizia dal punto in cui viene definita e che termina alla fine del file sorgente, cioè è la zona in cui il compilatore è in grado di recuperare la definizione della funzione (il body) e il tipo e il numero di argomenti che la funzione stessa richiede, nonché il tipo del valore di ritorno 2
3 Esempio Non si può invocare una funzione non dichiarata (è fuori dallo scope) Invocazione senza dichiarazione int main(void) { int a=f(3,5); printf("%d",a); return 0; int f(int x, int y){ return 2*x + 3*y; ERRORE! Anche le funzioni di libreria (printf, strlen, ) sottostanno a questa regola: i file header (stdio.h, string.h, ) contengono le dichiarazioni delle funzioni Esempio La definizione di una funzione è implicitamente una dichiarazione: Dichiarazione, invocazione e definizione int f(int x, int y); int main(void) { int a = f(3,5); printf("%d", a); return 0; int f(int x, int y) { return 2*x + 3*y; Definizione (con dichiarazione implicita) e invocazione int f(int x, int y) { return 2*x + 3*y; int main(void) { int a = f(3,5); printf("%d", a); return 0; 3
4 Tipi derivati: struct Strutture Gli array sono utili quando dobbiamo aggregare informazione omogenea Quando invece dobbiamo aggregare informazione eterogenea è necessario utilizzare una struttura: una collezione finita di variabili (chiamate membri) non necessariamente dello stesso tipo, ognuna identificata da un nome Sintassi struct <etichetta> { ; <definizione-di-variabili> L etichetta è opzionale e rappresenta il nome della struttura 4
5 Dichiarazione di Strutture Esempio di dichiarazione di una struttura struct studente { char nome[20]; int eta; char sesso; float media; ; studente è il nome della struttura composta da tre membri: nome, eta, sesso e media N.B.: La definizione della struttura non provoca allocazione di memoria, ma introduce un nuovo tipo di dato La memoria viene allocata solo al momento della dichiarazione di una variabile del tipo struct studente Definizione di variabili di tipo struttura Dichiarazione di due variabili di tipo struct studente: struct studente p1, p2; Dichiarazione di un array di 50 elementi ciascuno dei quali è di tipo struct studente: struct studente elenco[50]; 5
6 Definizione di variabili di tipo struttura In memoria i membri di una struttura vengono allocati nello stesso ordine di dichiarazione Tra un membro e l altro, a seconda dell architettura, possono esserci spazi intermedi di allineamento di memoria inutilizzabili e di contenuto indefinito e che sono utili per rendere più efficiente la copia dei dati Es. su una macchina a 64 bit con char da 1 byte, int da 4 byte e float da 4 byte, sizeof(struct studente) non vale 29 ma 32: 3 byte vengono usati per allineare il char Regole per nominare i membri I membri devono avere nomi univoci all interno di una struttura, ma si può usare lo stesso nome in strutture diverse I nomi dei membri possono coincidere con nomi di variabili o funzioni int x; struct a { char x; int y; ; //corretto struct b { int w; float x; ; //corretto 6
7 Accesso ai membri di una struttura Si accede ai membri mediante la notazione con punto: <nome-variabile>.<nome-mebro> struct carta { int valore; char seme; ; struct carta c1, c2; c1.valore = 5; c1.seme = 'Q'; c2.valore = 9; c2.seme = 'C'; struct punto { int x, y; ; struct punto p1, p2; p1.x = 10; p1.y = -2; p2.x = 5; p2.y = 7; Ogni membro si usa come una normale variabile del tipo corrispondente a quello del membro Puntatori a strutture Se ho un puntatore a una struct, per accedere ai suoi membri, invece di usare l operatore di dereferenziamento e il punto, posso usare per maggiore comodità l operatore -> (freccia, scritta con meno e maggiore) struct data { int giorno, mese, anno; ; struct data d; struct data *pd = &d; //pd è un puntatore alla struttura d pd->giorno = 7; //equivalente a (*p).giorno pd->mese = 1; //equivalente a (*p).mese pd->anno = 2009; //equivalente a (*p).anno 7
8 Operazioni su Strutture Si possono assegnare variabili di un tipo struttura a variabili dello stesso tipo struttura struct data d1, d2; d1 = d2; Però non è possibile effettuare il confronto tra due variabili di tipo struttura struct data d1, d2; if (d1 == d2) //Errore! Per effettuare il confronto è necessario considerare separatamente ogni singolo membro: if (d1.giorno==d2.giorno && d1.mese==d2.mese && d1.anno==d2.anno) Il motivo è legato all allineamento in memoria (dato che lo spazio intermedio tra i membri ha contenuto indefinito e il C non può confrontare efficientemente le due zone di memoria, non offre all utente questa feature) Attenzione struct pippo { int codice; char nome[20]; float dato; ; struct pippo vrb1, vrb2;... vrb2 = vrb1; CORRETTO struct pippo { int codice; char nome[20]; float dato; ; struct pluto { int codice; char nome[20]; float dato; ; struct pippo vrb1; struct pluto vrb2;... vrb2 = vrb1; ERRATO Perché sia ammesso l assegnamento, non è sufficiente che le due strutture abbiano gli stessi campi, ma devono essere dichiarate con lo stesso tipo (il motivo è ancora legato al fatto che l allineamento dei dati in memoria potrebbe essere diverso) 8
9 Esercizio Dati due punti p1=(x1,y1) e p2=(x2,y2) in uno spazio bidimensionale R 2, la somma p1+p2 è il punto definito sommando componente per componente (x1+x2,y1+y2) Scrivere una versione della funzione somma che utilizzi la chiamata per valore e una versione che utilizzi la chiamata per riferimento (in entrambi i casi ovviamente occorre usare le strutture). Scrivere inoltre un main che richiami le due funzioni Definizione di nuovi tipi 9
10 Definizione di un nuovo tipo Con la parola chiave typedef si definisce un nuovo tipo (in realtà un abbreviazione per un tipo esistente): typedef <tipo_esistente> <nuovo_tipo>; Ad esempio typedef int votoesame; definisce un nuovo tipo, votoesame, che corrisponde al tipo int Quando dichiarerò una variabile potrò scrivere votoesame esame1, esame2; Definizione di un nuovo tipo Definire un nuovo tipo è utile per rendere più leggibile il codice o per nascondere al programmatore che usa un nostro modulo come realizziamo internamente al modulo una certa funzionalità 10
11 Definizione di un nuovo tipo Posso usare typedef anche sulle strutture: typedef struct { int codice; char nome[20]; float dato; nuovotipo; nuovotipo var1, var2; nuovotipo var3; Abbiamo definito un nuovo tipo derivato nuovotipo Grazie a typedef possiamo evitare di scrivere la parola chiave struct quando dichiariamo le variabili Esempio: Vettori parzialmente riempiti 11
12 Vettori parzialmente riempiti Definiamo una struttura dati in cui usiamo un vettore in cui memorizziamo via via degli interi fino a riempire interamente il vettore Vettori parzialmente riempiti 0 ff N-1 Il vettore può memorizzare N interi, ma contiene dati solo per una parte Per tenerne traccia usiamo la variabile ff (first free) per memorizzare l indice della prima posizione libera, dove si dovrà eventualmente inserire il prossimo elemento del vettore 12
13 Vettori parzialmente riempiti Definizione #define N 20 typedef struct { int vettore[n]; int ff; vpr_int; int main(void) { vpr_int miovettore; Vettori parzialmente riempiti Devo però preoccuparmi di inizializzare la struttura Quanto vale all inizio ff? Se non la inizializzassi, potrebbe avere casualmente qualsiasi valore, anche negativo È necessario, quindi, definire una funzione di inizializzazione da invocare prima di utilizzare un vettore parzialmente riempito 13
14 Vettori parzialmente riempiti Inizializzazione: vpr_int init(vpr_int vpr) { vpr.ff = 0; return vpr; La funzione verrà invocata in questo modo: int main(void) { vpr_int miovettore; miovettore = init(miovettore); Vettori parzialmente riempiti Stampa del vettore: void stampa(vpr_int vpr) { int i; for (i=0; i<vpr.ff; i++) printf("elemento %d: %d\n", i, vpr.vettore[i]); 14
15 Vettori parzialmente riempiti Funzione che determina se il vettore è pieno o se c è ancora spazio per inserire elementi: 0 N-1 ff int pieno(vpr_int vpr) { if (vpr.ff >= N) return 1; else return 0; Vettori parzialmente riempiti Inserimento di un elemento: vpr_int inserisci(vpr_int vpr, int n) { if (pieno(vpr)) return vpr; vpr.vettore[vpr.ff] = n; vpr.ff++; return vpr; 0 ff N-1 15
16 Vettori parzialmente riempiti Ricerca dell indice in cui è memorizzato un elemento: int cerca(vpr_int vpr, int n) { int i; for (i = 0; i < vpr.ff; i++) if (vpr.vettore[i] == n) return i; return -1; Vettori parzialmente riempiti Esempio di un main in cui testiamo il codice int main(void) { vpr_int miovettore; miovettore = init(miovettore); int i; for (i = 0; i <= N; i++) { printf("inserisco %d.\n", i); miovettore = inserisci(miovettore, i); stampa(miovettore); 16
17 Vettori parzialmente riempiti i = cerca(miovettore, N); if (i == -1) printf("%d non trovato.\n", N); else printf("%d trovato all'indice %d.\n", N, i); i = cerca(miovettore, 0); if (i == -1) printf("%d non trovato.\n", 0); else printf("%d trovato all'indice %d.\n", 0, i); return 0; Strutture come parametri Attenzione, quando si passa come parametro una struttura, questa viene copiata interamente Se la struttura contiene molti dati (ad esempio nel nostro caso la struttura vpr_int contiene un array), vengono tutti copiati Passare come parametro una struttura può quindi risultare inefficiente Usando i puntatori, si possono passare i parametri in modo più efficiente: per riferimento 17
18 Strutture come parametri Esempio di funzione stampa modificata con il passaggio per riferimento: void stampa(vpr_int *pv) { int i; for (i=0; i < pv->ff; i++) printf("elemento %d: %d\n", i, pv->vettore[i]); int main(void) { vpr_int miovettore; stampa(&miovettore); Conversione stringhe 18
19 Conversione di stringhe Per convertire gli argomenti da stringa a tipi primitivi si possono usare le funzioni di stdlib.h: int atoi(char *s): da stringa a intero long atol(char *s): da stringa a long double atof(char *s): da stringa a double Esempio: int ivalue = atoi(argv[1]); Conversione di stringhe Purtroppo atoi, atol e atod non effettuano controlli: se la stringa non può essere convertita, viene comunque restituito un valore senza segnalare errori Quindi queste funzioni dovrebbero essere usate solo quando si è certi che l argomento sia una stringa convertibile in intero In generale bisognerebbe invece usare le più complesse strtol e strtod (consultare il man per il loro uso) 19
20 Argomenti dalla linea di comando Argomenti dalla linea di comando Permettono di passare a un programma parametri da linea di comando. Ad esempio: $myprog par1 par2 Bisogna definire il main in questo modo: int main(int argc, char *argv[]) Il C mette a disposizione del programma un vettore di stringhe (cioè un vettore di vettori di char) in cui ogni stringa corrisponde a un parametro 20
21 Argomenti dalla linea di comando Più in dettaglio: argc è il numero di parametri, incluso l eseguibile stesso (quindi argc >= 1) argv è un vettore di stringhe: ogni suo elemento argv[i] è una stringa che corrisponde a un parametro (casi particolari: n argv[0] è il nome dell eseguibile stesso, n argv[argc] è NULL) Argomenti dalla linea di comando Ad esempio, invocando myprog in questo modo $myprog par1 par2: argc 3 argv NULL m y p r o g \0 p a r 1 \0 p a r 2 \0 21
22 Argomenti dalla linea di comando Esempio di un programma che stampa gli argomenti dalla linea di comando: #include <stdio.h> int main(int argc, char *argv[]) { int i; printf("argc = %d\n", argc); for (i=0; i<argc; i++) printf("argv[%d] = %s\n", i, argv[i]); return 0; Controllo degli argomenti Esempio di programma che calcola la somma dei suoi argomenti interi #include <stdio.h> #include <stdlib.h> int main (int argc, char* argv[]) { int sum = 0, i; if (argc < 3) { //controllo della cardinalità degli argomenti printf("sono richiesti almeno due parametri.\nuso: %s num1 num2... numn\n", argv[0]); exit(exit_failure); for (i=1; i<argc; i++) sum += atoi(argv[i]); printf("la somma totale è %d.\n", sum); return EXIT_SUCCESS; EXIT_FAILURE e EXIT_SUCCESSS sono costanti simboliche definite in stdlib.h 22
23 I/O v I/O su canali standard v I/O su file v I/O su stringhe Funzioni di I/O Abbiamo già visto l uso di scanf e printf per fare input/output sui canali standard Esistono altre funzioni che permettono di fare I/O Scrittura: con uso implicito di file (stdout) int putchar(int c); int puts(char *s); int printf(const char *format,...); con uso esplicito di file int fputc(int c, FILE *stream); int fputs(char *s, FILE *stream); int putc(int c, FILE *stream); Lettura: con uso implicitodi file (stdin) int getchar(void); int scanf(const char *format, ); con uso esplicito di file int fgetc(file *stream); char *fgets(char *s, int size, FILE *stream); int ungetc(int c, FILE *stream); 23
24 Scrivere sullo standard output Oltre alla printf ci sono: int putchar(int c); scrive un carattere sullo standard output (file speciale corrispondente al terminale) restituisce un numero intero corrispondente alla codifica ASCII del carattere scritto, EOF in caso di errore int puts(char *s); scrive una stringa sullo standard output restituisce un numero non negativo in caso di successo, EOF in caso di errore Leggere dallo standard input Oltre alla scanf ci sono: int getchar(void); legge un carattere dallo standard input (tastiera) e lo restituisce come carattere, EOF in caso di errore. 24
25 Esempi d uso #include <stdio.h> int main(void) { int c = getchar(); //legge un carattere da terminale (anche "a capo" è un carattere: è '\n') putchar(c); //stampa a video il carattere in c return 0; Molto spesso getchar è usata per sospendere l esecuzione di un programma in modo che l utente possa visionare risultati intermedi I/O su FILE Ogni funzione che opera su file utilizza una struttura chiamata FILE definita in stdio.h Senza entrare nei dettagli, è sufficiente sapere che FILE contiene informazioni riguardanti un file e che ci permette di operare su di esso. Per esempio, tiene traccia dell offset, cioè il punto del file a cui si è arrivati a leggere o scrivere. FILE viene allocata quando si apre un file e deallocata quando il file viene chiuso Prima di operare su un file, occorre aprirlo con la funzione fopen Si ottiene un puntatore alla struttura FILE che bisognerà poi passare come parametro alle funzioni di lettura/scrittura Quando si termina, occorre chiudere il file con fclose 25
26 Apertura di FILE FILE *fopen(const char *path, const char *mode); argomenti: n n il percorso (nome compreso) del file che si vuole aprire il modo: n "r" à lettura (il file deve esistere) [esistono anche "rb", "r+", "rb+"] n "w" à scrittura (crea un file vuoto ed elimina un eventuale file già esistente) [esistono anche "wb", "w+", "wb+"] n "a" à accoda (append; se il file esiste, scrive in coda al file; se non esiste lo crea vuoto) [esistono anche "ab", "a+", "ab+"] n valore di ritorno: n n Consultare il man per saperne di più se l istruzione va a buon fine, un puntatore a una struttura di tipo FILE. Lo stream è posizionato: n al primo byte del file (in caso di read/write) n all ultimo byte del file (in caso di append) se si verifica un errore, NULL (casi di errori possibili: non si hanno i diritti per leggere o scrivere il file oppure il file da leggere non esiste) I/O su FILE fscanf e fprintf sono le versioni relative ai file di scanf e printf int fscanf(file *fp, formato, argomenti) int fprintf(file *fp, formato, argomenti) I parametri e il funzionamento sono identici a quelli delle funzioni scanf e printf tranne per la presenza del parametro di tipo FILE* che identifica il file su cui le funzioni devono operare Abbiamo già visto fgets: char* fgets(char *str, int size, FILE *stream); Ricordate: In UNIX un file è un flusso (stream) di caratteri terminato dal carattere speciale EOF 26
27 Chiusura di FILE int fclose(file *fp); Richiede un puntatore a un file (precedentemente aperto) Restituisce 0 se la chiusura avviene con successo, EOF se con fallimento. In entrambi i casi, successivi tentativi di accedere al file chiuso falliranno È importante usare sempre fclose quando si è terminato di usare un file: l'accesso a un file (qualunque linguaggio di programmazione si usi) è gestito dal sistema operativo, che deve allocare apposite strutture per lo specifico processo richiedente fopen effettua una richiesta di allocazione al sistema operativo fclose rilascia al sistema operativo le strutture usate fino a quel momento; poiché le risorse di un computer sono sempre limitate, se non si dealloca mai si rischia di terminare le risorse Accesso ai FILE fscanf/fprintf successive fanno avanzare lo stream legato al file #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp = fopen("dati.txt", "r"); if (fp == NULL) { perror("errore nell apertura del file"); exit(exit_failure); int x; while (fscanf(fp, "%d", &x)!= EOF) printf("\n x= %d", x); fclose(fp); return EXIT_SUCCESS; void perror(char* s) è una funzione il cui prototipo è in stdio.h che, invocata dopo un errore in una system call, stampa la stringa passata come argomento seguita da un messaggio sulle cause dell errore In questo esempio si suppone che dati.txt sia un file di interi separati da spazi 27
28 Esempio alternativo #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp = fopen("dati.txt", "r"); if (fp == NULL) { //come nella slide precedente int x; while (!feof(fp)) { fscanf(fp, "%d", &x); printf("\n x=%d", x); fclose(fp); return EXIT_SUCCESS; int feof(file *f) è una funzione il cui prototipo è in stdio.h. Restituisce un numero diverso da zero (e quindi corrispondente a vero per il C) quando si è arrivati alla fine del file Flussi standard Ogni processo in esecuzione è associato a tre FILE* speciali, che risultano già aperti quando si lancia il programma: FILE *stdin //standard input, di solito la tastiera FILE *stdout //standard output, di solito lo schermo FILE *stderr //standard error, di solito lo schermo scanf è quindi un caso particolare di fscanf, in cui si usa stdin come parametro FILE * scanf(" ", ) equivale a fscanf(stdin, " ", ) Analogamente printf è un caso particolare di fprintf: printf(" ", ) equivale a fprintf(stdout, " ", ) 28
29 I/O su stringa Tramite le funzioni sscanf e sprintf è possibile operare (cioè leggere e scrivere dati) su una stringa anziché su file int sscanf(char *str, formato, argomenti); lettura da stringa; utile per parsificare dati con formato int sprintf(char *str, formato, argomenti); scrittura su stringa; utile per creare stringhe concatenando dati con formato I/O su stringa: sprintf char linea[128]; int x, y; float val; x = 25; y=7; val = 7.5F; sprintf(linea, "%d %d :: %f", x, y, val); Per effetto della sprintf linea corrisponde alla stringa "25 7 :: 7.5" che può essere mandata a video o scritta su file 29
30 I/O su stringa: sscanf char linea[128] = "25 7 :: 7.5"; int x,y; float val; sscanf(linea, "%d %d :: %f", &x, &y, &val); Per effetto della sscanf le variabili x, y e val saranno inizializzate come: X ß 25, y ß 7, val ß 7.5F Attenzione: affinché la sscanf abbia successo la sottostringa " :: " indicata nella stringa formato deve essere presente in linea Se i dati rispettano un certo formato in ingresso la sscanf è in grado di parsificare linea e compiere la conversione da stringa a tipo primitivo 30
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
DettagliOperazioni 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
DettagliFile 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
DettagliC: 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
DettagliGestione 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
DettagliLe 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
DettagliInput/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
DettagliL accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.
I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,
DettagliSuggerimenti, 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
DettagliIntroduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Input/Output Stream
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliLe 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
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
Dettaglifile 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
DettagliFILE: 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
DettagliI file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa. dischi nastri cd GESTIONE DEI FILE I file possono
DettagliLinguaggio 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
DettagliPrecedenza e associatività. Complementi sul C - 2. Esempi. Esempi
Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >
DettagliLe librerie standard. ! La libreria standard del C è in realtà un insieme di librerie
! La libreria standard del C è in realtà un insieme di librerie! Per usare una libreria, non occorre inse -rirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle! Ogni file sorgente
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA Corso di Linguaggi e Traduttori 1 AA stdio.h
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comuni di I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliGestione 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
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliInput/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari
Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Funzioni standard del C: Funzioni di I/O Allocazione dinamica della memoria Funzioni su stringhe di caratteri Testo di riferimento B.W. Kernighan & D.M. Ritchie
DettagliLibrerie C. Corso di Linguaggi e Traduttori 1 AA
Corso di Linguaggi e Traduttori 1 AA 2004-05 1 Corso di Linguaggi e Traduttori 1 AA 2004-05 stdio.h 2 Funzioni comunidi I/O? Le piu' comuni funzioni che permettono I/O sono getchar() e putchar():? int
DettagliIntroduzione 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 2016
DettagliIntroduzione. 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
DettagliSommario FONDAMENTI DI INFORMATICA 1. Il tipo FILE. Passaggio da standard I/O. LINGUAGGIO C Gestione dei file
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliI 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
DettagliEsercizi. 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
DettagliIl 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
DettagliStrutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
DettagliL'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
DettagliIntroduzione 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:
DettagliCompendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
DettagliFile e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliLinguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin
Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso
DettagliI File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliArray. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
DettagliUnità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.
Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una
DettagliDIPARTIMENTO 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
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliLaboratorio 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
DettagliLinguaggio C La libreria standard
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C La libreria standard 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliUso avanzato dei puntatori Allocazione dinamica della memoria
Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliPuntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
DettagliScrittura 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
DettagliGestione dei file. File di testo e binari
Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile
DettagliGESTIONE DEI FILE IN C
GESTIONE DEI FILE IN C Il concetto di file.. è una parte logicamente contigua del contenuto di un dispositivo! Deve essere capace di memorizzare grandi quantità di dati! I dati memorizzati devono sopravvivere
DettagliLinguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
DettagliEsercizio 1 (15 punti)
Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
DettagliUnità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliDOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII
Gestione dei files DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliI CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
DettagliGestione 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
DettagliEsercizio 1 (15 punti)
Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 30 giugno 2017 In un lontano paese da
DettagliGestione 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
DettagliMatrici, stringhe e I/O da file
Memory Leakage (I) Se si perde il valore di un puntatore di una zona di memoria allocata, quella memoria non e piu utilizzabile dal processo e non e piu liberabile : rimane quindi proprieta del processo
DettagliLezione 19 e Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe
Lezione 19 e 20 - Allocazione dinamica della memoria - Direttive al preprocessore - Libreria standard - Gestione delle stringhe Valentina Ciriani (2005-2008) Laboratorio di programmazione Valentina Ciriani
DettagliSulla libreria standard, III. Manipolare file con stdio.h
Sulla libreria standard, III Manipolare file con stdio.h 1 Libreria per input/output Con libreria si intende una collezione di sottoprogrammi che vengono utilizzati per lo sviluppo di software non eseguibili,
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliUn 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
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
DettagliAllocazione dinamica della memoria
Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
Dettagli18/01/16. Soluzione degli esercizi svolti in aula alla lavagna. Seconda lezione. Cast
Soluzione degli esercizi svolti in aula alla lavagna Seconda lezione Cast 1 Esempio Scriviamo un programma che converte temperature Fahrenheit in temperature Celsius La formula è cels = (fahr 32) * 5 *
DettagliStruct, enum, Puntatori e Array dinamici
Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente
DettagliSommario. Manipolazione sequenziale di file in C Funzioni di base per I/O di file
File Input/Output 1 Sommario Manipolazione sequenziale di file in C Funzioni di base per I/O di file 2 Manipolazione di file I file devono essere aperti prima dell uso Associa un puntatore a file a ogni
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
DettagliIntroduzione a. Funzioni di Ingresso e Uscita. Compilazione
Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si
DettagliLa gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
DettagliLa 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,
DettagliProgrammazione (imperativa)
Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
DettagliStruttura dati FILE. Concetto di FILE
Struttura dati FILE Concetto di FILE Per poter mantenere disponibili dei dati tra diverse esecuzioni di un programma (PERSISTENZA dei dati), è necessario poterli archiviare su memoria di massa. Un file
DettagliProgrammazione I (Classe 1)
Programmazione I (Classe 1) Appello 12 CFU 8 Settembre 2017 Docenti: Fuccella - Zizza Cognome: Nome: Matricola: Ritirato Riservato alla commissione d esame 1 2 3 4 5 6 7 8 TOT (/40) Da codice etico Unisa
DettagliIl blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio:
Variabili locali Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. void leggivettore(int v[], int dim) int i; /* i E UNA VARIABILE LOCALE */ for (i
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliIl linguaggio C Puntatori
Il linguaggio C Puntatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - puntatori 2 Ringraziamenti Questi
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliInput/Output di numeri
Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include
DettagliStruttura dati FILE. Motivazioni: memorie a confronto
Struttura dati FILE Motivazioni: memorie a confronto La memoria centrale (RAM) è tecnologia elettronica basata su Le memorie secondarie sono basate su tecnologie magnetiche (HD) o ottiche (CD, DVD) Conseguenze
DettagliLezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit
Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliEsercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
DettagliLezione 8. Sottoprogrammi
Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in
DettagliEsercizi File Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it
DettagliI 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
DettagliNon 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
DettagliRelativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.
Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 2 febbraio 2016 Esercizio 1 (16 punti) Un file di testo contiene
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
Dettagli