Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio:esercitazioni:esercitazione1bis

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio:esercitazioni:esercitazione1bis [25/02/2010 alle 10:08 (15 anni fa)] – creata Susanna Pelagattiinformatica: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
- 
    \returns il puntatore alla lista */    \returns il puntatore alla lista */
 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:
    \param n  elemento da inserire    \param n  elemento da inserire
        
-       
    \returns puntatore alla nuova lista    \returns puntatore alla nuova lista
     */     */
Linea 45: Linea 45:
  
 </code> </code>
-Testare il funzionamento delle funzioni implementate con un opportuno main().+Testare il funzionamento delle funzioni implementate con un opportuno ''main()''.
  
 ===== 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 ''.h'' con i prototipi ed i tipi messi a disposizione dalla libreria e si fornisce il codice in un opportuno file di libreria ''.a''.
  
-Nel nostro caso l'header si chiamera' ''lista.h' e la libreria si chiamera' ''libList.a''.+Nel nostro caso l'header si chiamera' ''lista.h'' e la libreria si chiamera' ''libList.a''.
  
 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.
 </code> </code>
-dove l'pzione ''-l'' indica il nome della libreria da usare in fase di linking e l'opzione ''-L'' specifica la directory dove cercarla (oltre alle directory standard tipo ''/usr/lib'' +dove l'pzione ''-l'' indica il nome della libreria da usare in fase di linking e l'opzione ''-L'' specifica la directory dove cercarla (oltre alle directory standard tipo ''/usr/lib''). 
-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 messaggi di errore relativi a ENOENTEIO ed EPERM.+Usare le macro con parametri per definire una macro che somma (operatore +) i propri argomenti 
 +<code c> 
 +#define SOMMA(X,Y,Z) ...... 
 +</code> 
 +e testarla in un opportuno main. Valutare le differenze con una funzione di prototipo 
 +<code c> 
 +int SOMMA(int X,int Y, int Z); 
 +</code>
  
-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. Ad esempio, posso utilizzare la macro per calcolare il fattoriale di 4+1 con 
- +<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. Es. +
 FATTORIALE(4+1) FATTORIALE(4+1)
 +</code>
 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? Es. +Che accade annidando due chiamate della macro? Ad esempio 
 +<code c>
 FATTORIALE(FATTORIALE(4+1))  FATTORIALE(FATTORIALE(4+1)) 
 +</code>
informatica/sol/laboratorio/esercitazioni/esercitazione1bis.1267092528.txt.gz · Ultima modifica: 25/02/2010 alle 10:08 (15 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki