informatica:sol:laboratorio:esercitazioni:esercitazione1bis
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
informatica:sol:laboratorio:esercitazioni:esercitazione1bis [25/02/2010 alle 10:08 (15 anni fa)] – creata Susanna Pelagatti | informatica:sol:laboratorio:esercitazioni:esercitazione1bis [25/02/2010 alle 10:22 (15 anni fa)] (versione attuale) – Susanna Pelagatti | ||
---|---|---|---|
Linea 2: | Linea 2: | ||
- | Dove si approfondiscono alcune caratteristiche del C sequenziale. | + | Dove si approfondiscono alcune caratteristiche del C sequenziale: puntatori, puntatori a funzione, librerie e macro con parametri. |
Linea 20: | Linea 20: | ||
<code c> | <code c> | ||
/** crea una lista vuota | /** crea una lista vuota | ||
- | |||
| | ||
lista newList (void); | lista newList (void); | ||
- | /** dealloca la lista */ | + | /** dealloca la lista |
+ | \param l la lista | ||
+ | */ | ||
void freeList (lista l); | void freeList (lista l); | ||
Linea 31: | Linea 32: | ||
| | ||
- | | ||
| | ||
*/ | */ | ||
Linea 45: | Linea 45: | ||
</ | </ | ||
- | Testare il funzionamento delle funzioni implementate con un opportuno main(). | + | Testare il funzionamento delle funzioni implementate con un opportuno |
===== Esercizio 2: map e reduce su liste ===== | ===== Esercizio 2: map e reduce su liste ===== | ||
Linea 72: | Linea 72: | ||
Realizzare una libreria che fornisce le operazioni su liste implementate negli esercizi 1 e 2. | Realizzare una libreria che fornisce le operazioni su liste implementate negli esercizi 1 e 2. | ||
- | In C tipicamente per realizzare una libreria si difinisce un file .h con i prototipi ed i tipi messi a disposizione dalla libreria e si fornisce il codice in un opportuno file di libreria .a. | + | In C tipicamente per realizzare una libreria si difinisce un file '' |
- | Nel nostro caso l' | + | Nel nostro caso l' |
Procedere nel modo seguente: | Procedere nel modo seguente: | ||
Linea 95: | Linea 95: | ||
$ gcc -Wall -pedantic main.c -lList -L. | $ gcc -Wall -pedantic main.c -lList -L. | ||
</ | </ | ||
- | dove l' | + | dove l' |
- | Definire due opportuni file lista.h e lista.c e testarli con il file mainListe.c usando il seguente Makefile. | + | . |
- | ===== Esercizio 4: Marco con parametri, macro di somma ===== | + | ===== Esercizio 4: Macro con parametri, macro di somma ===== |
- | Esercizio 3 Usare la perror() per stampare | + | Usare le macro con parametri per definire una macro che somma (operatore +) i propri argomenti |
+ | <code c> | ||
+ | #define SOMMA(X,Y,Z) ...... | ||
+ | </ | ||
+ | e testarla in un opportuno main. Valutare le differenze con una funzione di prototipo | ||
+ | <code c> | ||
+ | int SOMMA(int X,int Y, int Z); | ||
+ | </ | ||
- | un tipo di dato astratto che realizza liste concatenate di interi. Tipicamente in C un TDA e' costituito da un file xxx.h che contiene la specifica del tipo e delle funzioni disponibili per operare su quel tipo e da una corrispondente file xxx.c che implementa la funzioni stesse. | ||
- | Chi deve usare il tipo include il file .h e linka | ||
+ | ===== Esercizio 5: Macro con parametri, macro fattoriale ===== | ||
- | + | Scrivere una macro con parametri che calcoli il fattoriale di un numero N, passato come parametro e ne stampi il risultato. | |
- | + | <code c> | |
- | ===== Esercizio 1: =====Esercizio 2.(macro con parametri) | + | |
- | + | ||
- | Scrivere una macro con parametri che calcoli il fattoriale di un numero N, passato come parametro e ne stampi il risultato. | + | |
FATTORIALE(4+1) | FATTORIALE(4+1) | ||
+ | </ | ||
La macro non deve fare assunzioni su come verranno passati i parametri. | La macro non deve fare assunzioni su come verranno passati i parametri. | ||
- | Che accade annidando due chiamate della macro? | + | Che accade annidando due chiamate della macro? |
+ | <code c> | ||
FATTORIALE(FATTORIALE(4+1)) | FATTORIALE(FATTORIALE(4+1)) | ||
+ | </ |
informatica/sol/laboratorio/esercitazioni/esercitazione1bis.1267092528.txt.gz · Ultima modifica: 25/02/2010 alle 10:08 (15 anni fa) da Susanna Pelagatti