2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica.
|
|
- Olimpia Patti
- 7 anni fa
- Visualizzazioni
Transcript
1 FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Le trappole del linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 1 Nota di Copyright Questo insieme di trasparenze ( detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori prof. Pier Luca Montessoro e ing. Davide Pierattoni, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. Gli autori non assumono alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione ). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 2 Le insidie del C "=" e "==" #include <stdio.h> main() printf ("Hello world"); if (x = y) /* */ Il codice viene eseguito se il valore di y, che viene assegnato alla variabile x, è diverso da 0. > cc -o hello.exe hello.c > hello Hello world> _ if (x == y) /* */ Il codice viene eseguito se il valore di y è uguale a quello di x Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 4 Analisi lessicale del programma Costanti intere Il compilatore C cerca sempre di costruire dei token di lunghezza massima. Esempi: a/*b è interpretato come a /* b, cioè come un commento aperto prima di b, e non come a / (*b), cioè come a diviso il dato indirizzato da b. a---b è interpretato come a-- - b, e non come a - --b. struct int code; char *description; code_table [] = 023, "book", 072, "pencil", 112, "rubber" ; Se una costante inizia per 0 è interpretata come ottale Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 6 1
2 La dichiarazione delle funzioni Attenzione alla precedenza degli operatori! float g; variabile floating point g float f(); funzione che restituisce un valore float float *g; puntatore a float float *f(); funzione che restituisce un puntatore a float float (*f)(); puntatore a funzione che restituisce un valore float float *(*f)(); puntatore a funzione che restituisce un puntatore a float 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 7 Operatore di cast Si mette tra parentesi la stessa espressione che si usa per la dichiarazione, ma senza l'identificatore della variabile. float g; g = (float) x; float *g; g = (float *) x; float (*h)(); h = (float (*)()) x; 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 8 I tipi nei prototipi delle funzioni Per usare i puntatori Nel prototipo delle funzioni (ANSI C) si indicano i tipi degli argomenti esattamente come per il cast, ma senza le parentesi intorno. Esempio: la funzione di libreria signal void (*signal (int, void (*) (int))) (int); puntatore a funzione che riceve un int come parametro e non restituisce nulla (void) Se puntatori a variabile: float *g, f; Se puntatori a strutture: list_element *lep; lep = lep->next; x = (*lep).data; Se puntatori a funzioni: float (*f)(), g; f = *g; g = (*f)(); 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 10 Non sempre sono quelle che ci si aspetta! Esempio: if (flags & FLAGMASK!= 0) non è equivalente a: if (flags & FLAGMASK) in quanto!= ha la precedenza su &, e quindi risulta: if (flags & (FLAGMASK!= 0)) ovviamente sbagliato. L'operatore di shift è ancora più subdolo: r = hi<<4 + low; è interpretato come: r = hi << (4 + low); Due possibili versioni corrette sono: r = (hi << 4) + low; r = hi << 4 low; 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 12 2
3 Due osservazioni importanti: - ogni operatore logico (es. &&) ha precedenza inferiore a qualsiasi operatore relazionale (es. >=) - gli operatori di shift hanno precedenza minore degli operatori aritmetici, ma maggiore di quelli logici. Attenzione: "==" e "!=" hanno precedenza inferiore degli operatori relazionali ">", "<" ecc. Pertanto: a < b == b < c significa (a < b) == (b < c) L'assegnazione viene raggruppata da destra verso sinistra: home_score = visitor_score = 0; è equivalente a: visitor_score = 0; home_score = visitor_score; L'assegnazione ha anche minor precedenza degli operatori di relazione, e quindi nel caso seguente sono necessarie le parentesi: while ((c = getc(file_ptr))!= EOF) 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 14 if (x[i] > big); E il punto e virgola? Il compilatore accetta il ";" alla fine dell'if, e ignora l'indentazione. Quindi quanto scritto è equivalente a: if (x[i] > big) e non a: if (x[i] > big) 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 15!!! E il punto e virgola? Anche dimenticare un punto e virgola può essere pernicioso: if (n < 3) return a[0] = p; a[1] = q; è interpretato come: if (n < 3) return a[0] = p; a[1] = q; 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 16 Chiamata di funzione Else Il C richiede che la chiamata di una funzione abbia sempre una lista di argomenti, eventualmente vuota: f(); Tuttavia viene compilato senza errori anche: f; Questa espressione non chiama la funzione f, bensì ne calcola l'indirizzo, e poi lo butta via if (a) if (b) f(); else g(); else si riferisce sempre al più vicino if all'interno dello stesso blocco. Al solito, l'indentazione non è significativa! 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 18 3
4 Vettori Possono essere solo unidimensionali. Su un vettore si possono fare solo due cose: - definirne la dimensione - ottenere il puntatore all'elemento 0. Tutte le altre operazioni sono realizzate mediante puntatori, anche se tramite una sintassi speciale: v[5] è equivalente a *(v + 5) 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 19 Vettori bidimensionali int calendar[12][31]; int *month; int day; Se si omette l'ultima dimensione si ottiene un vettore (il puntatore al primo elemento): month = calendar[2]; day = month[30]; oppure day = calendar[2][30]; o, ancora, day = *(*(calendar + 2) +30); 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 20 I puntatori non sono vettori! Conversione automatica di tipo NO! char *r; char r[100]; OK int strlen (char s[]) è equivalente a scrivere int strlen (char *s) char *r; r = (char *) malloc (strlen(s) + strlen(t) + 1); /* later */ free (r); Ancora meglio 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 21 Tuttavia questo non si applica in altri contesti: extern char *str; non è equivalente a scrivere extern char str[]; come char *str = "hello\n"; non è equivalente a char str[] = "hello\n"; 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 22 Attenzione ai limiti dei vettori int a[10], i; for (i = 1; i <= 10; i++) a[i] = 0; Se la variabile i viene allocata dopo l'ultimo elemento del vettore, il programma entra in un loop infinito! 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 23 Ordine di valutazione Il C garantisce l'ordine di valutazione delle espressioni (a differenza, per esempio, del Pascal). Quindi si può scrivere: if (count!= 0 && sum/count < low_awg) printf ("average < %g\n", low_avg); senza ottenere un errore per divisione per zero se count == 0. Uso tipico: if (i < DIM && v[i]!= 0) non viene valutata se si è raggiunta la fine del vettore 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 24 4
5 Ordine di valutazione Attenzione: non è definito l'ordine di valutazione per qualsiasi operatore. Per esempio, in if (f() < g()) può essere chiamata prima la funzione f o la funzione g indifferentemente. I soli operatori per i quali è garantito l'ordine di valutazione sono: &&?:, 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 25 Variabili locali char r[size]; Quando la funzione termina, l'indirizzo della stringa r viene copiato come valore di ritorno, ma la stringa stessa è deallocata. (Questo bug molto spesso non è individuabile durante l'esecuzione del programma) 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 26 char *concatena (char str1[], char str2[]) int i, j; char tmp[maxsize]; for (i = 0; str1[i]!= '\0'; i++) tmp[i] = str1[i]; for (j = i, i = 0; str2[i]!= '\0'; i++, j++) tmp[j] = str2[i]; return tmp; Esempio viene restituito il puntatore alla stringa, ma essa non esiste più 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 27 Variabili locali static char r[size]; Due tra le soluzioni possibili: char r[size]; 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a pag. 2) 28 5
Linguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliLinguaggio C Struct e union
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struct e union 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliCodifica dei numeri interi positivi e negativi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei numeri interi positivi e negativi 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliLinguaggio C e sistema operativo
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C e sistema operativo 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliLinguaggio C Debugging
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota
DettagliProgramma sorgente, compilatore, file oggetto, file eseguibile. Traduzione effettuata dal compilatore. Dichiarazione di variabili (esempi)
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright alla
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliRETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica del video 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliCodifica dei segnali audio
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei segnali audio 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliControllo e correzione degli errori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Controllo e correzione degli errori 2000 Pier Luca Montessoro si veda la nota di copyright alla
DettagliLa programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliArchitettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architettura e funzionamento del calcolatore 20 Pier Luca Montessoro (si veda la nota di copyright
DettagliTecniche di compressione senza perdita
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliLinguaggio C Struttura dei programmi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide
DettagliIl cablaggio strutturato degli edifici: cosa c e` ` di nuovo?
Il cablaggio strutturato degli edifici: cosa c e` ` di nuovo? Pier Luca Montessoro Università degli Studi di Udine Dip. di Ing. Elettrica, Gestionale e Meccanica e-mail: montessoro@uniud.it www: http://www.uniud.it/montessoro
DettagliGestione della memoria di massa e file system
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria di massa e file system 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliIL CABLAGGIO STRUTTURATO DI CATEGORIA 6
IL CABLAGGIO STRUTTURATO DI CATEGORIA 6 21 maggio 2002 PIER LUCA MONTESSORO Dip. di Ingegneria Elettrica Gestionale e Meccanica Università degli Studi di Udine in collaborazione con 2002 Pier Luca Montessoro
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Compressione audio
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Compressione audio 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
DettagliMetro VLAN Switch e standard 802.1ad
Metro VLAN Switch e standard 802.1ad Pietro Nicoletti piero[]studioreti.it VLAN-Metro-802.1ad - 1 P. Nicoletti: si veda nota a pag. 2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito
DettagliLa voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C
La voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C l ingegneria elettronica nella musica moderna Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università
DettagliLinguaggio C Espressioni e operatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori 2001 Pier Luca Montessoro - Davide
DettagliTrasmissione bilanciata e amplificatore differenziale
E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato Trasmissione bilanciata e amplificatore differenziale Pier Luca Montessoro pierluca.montessoro@diegm.uniud.it DIFFAMP -
DettagliMemoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliArgomenti della lezione
Nota di Copyright RETI DI CALCOLATORI II Prof. PIER LUCA MONTESSORO acoltà di Ingegneria Università degli Studi di Udine Prof. MARIO BALDI acoltà di Ingegneria Politecnico di Torino Questo insieme di trasparenze
DettagliRETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine
RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 2001-2007 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright Questo insieme di trasparenze
DettagliRETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
DettagliNota di Copyright. Interfaccia audio. Libreria portaudio. Callback function. Un piccolo problema. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Libreria in linguaggio C per elaborazione audio in real time 2010 Pier Luca Montessoro (si veda
DettagliShielding. E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato. Pier Luca Montessoro.
E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato Shielding Pier Luca Montessoro pierluca.montessoro@diegm.uniud.it SHIELD - 1 Copyright: si veda nota a pag. 2 Nota di Copyright
DettagliGestione della memoria per sistemi multiprogrammati. Obiettivi. Partizioni fisse. Partizioni fisse. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliLibreria in linguaggio C per elaborazione audio in real time
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Libreria in linguaggio C per elaborazione audio in real time 2010 Pier Luca Montessoro (si veda
DettagliLinguaggio C Variabili e tipi di dato
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Variabili e tipi di dato 2001 Pier Luca Montessoro - Davide
DettagliProgettazione delle dorsali in fibra ottica
Progettazione delle dorsali in fibra ottica Mario Baldi Politecnico di Torino mario.baldi@polito.it staff.polito.it/mario.baldi Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide)
DettagliRETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
DettagliElementi 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
DettagliMobile IP Mobilità nelle reti IP Mario Baldi Politecnico di Torino
Mobile IP Mobilità nelle reti IP Mario Baldi Politecnico di Torino http://staff.polito.it/mario.baldi Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul
DettagliCenni sull architettura protocollare TCP/IP
Nota di Copyright Cenni sull architettura protocollare TCP/IP Mario Baldi mario.baldi@polito.it staff.polito.it/mario.baldi cenni - 1 M. Baldi: si veda pagina 2 Questo insieme di trasparenze (detto nel
DettagliCenni sull architettura protocollare TCP/IP
Cenni sull architettura protocollare TCP/IP Mario Baldi mbaldi@polito.it www.polito.it/~baldi cenni - 1 M. Baldi: si veda pagina 2 Nota di Copyright! Questo insieme di trasparenze (detto nel seguito slides)
Dettagli1999 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro ( si veda la nota a pagina 2) 1 Nota di Copyright
DettagliMemoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliRETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
DettagliInterconnessione di reti IP
Interconnessione di reti IP Mario Baldi mario.baldi@polito.it staff.polito.it/mario.baldi Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright
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
DettagliInternet and Intranet Access
and Intranet Access Mario Baldi Synchrodyne Networks, Inc. baldi@synchrodyne.com access - 1 M. Baldi: see page 2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle
DettagliEsercizi di Addressing. Fulvio Risso Guido Marchetto
Esercizi di Addressing Fulvio Risso Guido Marchetto 1 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali.
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Reti logiche 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1 Nota di
DettagliGestione dei processi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione dei processi 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
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
DettagliProgettazione di reti locali con switch di livello 3
Progettazione di reti locali con switch di livello 3 Mario Baldi Politecnico di Torino http://www.mario-baldi.net Pietro Nicoletti Studio Reti http://www.studioreti.it Basato sul capitolo 10 di: M. Baldi,
DettagliAssociazione Variabile-Indirizzo
I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include
DettagliLinguaggio C Compilazione, linking e preprocessor
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Compilazione, linking e preprocessor 2001 Pier Luca Montessoro
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
DettagliRETI DI CALCOLATORI. Nota di Copyright. Passi progettuali necessari. Esercitazione 1. Progetto di un sistema di cablaggio strutturato
Nota di Copyright RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 2009 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Questo insieme di trasparenze
DettagliFurto Identità Digitale
Furto Identità Digitale Alcune tecniche di attacco Giuseppe Augiero Agenda Identità digitale Tecniche di furto Identità Digitale Digital Identity Identità è definita come l insieme dei caratteri peculiari,
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
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
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;
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
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Puntatori a funzioni 1 Funzioni che restituiscono puntatori Il valore di ritorno restituito da una funzione può essere di qualsiasi tipo, compreso il tipo puntatore.
DettagliLinguaggio C: Espressioni
Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università
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
DettagliIl linguaggio C funzioni e puntatori
Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliProgettazione di reti locali basate su switch - Switched LAN
Progettazione di reti locali basate su switch - Switched LAN Mario Baldi Politecnico di Torino http://staff.polito.it/mario.baldi Basato sul capitolo 5 di: M. Baldi, P. Nicoletti, Switched LAN, McGraw-Hill,
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
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;
DettagliOgni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono
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
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliFondamenti di Informatica T. Linguaggio C: i puntatori
Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme
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
DettagliLinguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
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
DettagliScrittura dei programmi applicativi di rete
Nota di Copyright RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è protetto
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi
Dettagli$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 =
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
DettagliPOINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria.
POINTERS Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. Es. Sia y una variabile intera di valore e sia yptr una variabile pointer avente come valore l indirizzo di y.
DettagliTipi di dato, Alessandra Giordani Lunedì 7 maggio 2011
Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
Dettagli2001 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 2001 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright Questo insieme di trasparenze
DettagliStringhe 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 Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
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
DettagliBreve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN
Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...
DettagliLinguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi
DettagliLaboratorio di linguaggi
lezioni: lunedi 9-11, aula A al corso Laboratorio di linguaggi laboratorio in tre turni: martedi 11-13 () giovedi 9-11 () venerdi 11-13 (Andrea Grosso) laboratorio: iscriversi all esame Corso A LABORATORIO
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliIndirizzi e tipi puntatore a
Linguaggio C Indirizzi e tipi puntatore a Università degli Studi di Brescia Prof. Massimiliano Giacomin Indirizzo e tipo puntatore a TIPO Indirizzo NOME Valore Indirizzo 0101011110011001 1101011110011111
Dettagli! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente
! Per quanto sappiamo finora, in C le variabili sono sempre definite staticamente!!la loro esistenza deve essere prevista e dichiarata a priori! Questo può rappresentare un problema soprattutto per variabili
DettagliGestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.
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
DettagliIntroduzione ai puntatori in C Definizione
Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il
DettagliCONTENUTI della I parte
CONTENUTI della I parte In questa prima parte ci proponiamo un ripasso di argomenti sicuramente svolti nelle scuole superiori e quindi noti a tutti DISEQUAZIONI I grado II grado intere fratte intere fratte
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
Dettagli