Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio15:esercitazionia:esercitazione3

Differenze

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

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:sol:laboratorio15:esercitazionia:esercitazione3 [17/03/2015 alle 11:43 (10 anni fa)] – [Esercizio 0: macro] Massimo Torquatiinformatica:sol:laboratorio15:esercitazionia:esercitazione3 [17/03/2015 alle 12:32 (10 anni fa)] (versione attuale) – [Esercizio 3: creazione di una libreria statica] Massimo Torquati
Linea 30: Linea 30:
  
 ===== Esercizio 2: macro ===== ===== Esercizio 2: macro =====
-Scrivere 2 macros ''CHECK_EQ'' e ''CHECK_NEQ'' che controllano che il primo argomento passato sia uguale (_EQ) o diverso (_NEQ) al secondo argomento passato alla macro, qualora la condizione sia vera allora deve essere stampa utilizzando la chiamata di libreria ''perror'' la stringa passata come 3 argomento, il numero di riga dove la macro è stata chiamata ed il nome del file contenente la chiamata stessa.  +Scrivere 2 macros ''CHECK_EQ'' e ''CHECK_NEQ'' che controllano che il primo argomento passato (una 
-E. supponiamo che miofile.c contenga riga 10 il seguente codice+chiamata di libreria tipo malloc, fopen, ....) sia uguale (_EQ) o diverso (_NEQ) al secondo argomento passato alla macro. Qualora la condizione è verificata allora deve essere stampata, utilizzando la chiamata di libreria ''perror''la stringa passata come 3 argomento 
 +alla macro, il numero di riga dove la macro è stata invocata ed il nome del file contenente la chiamata stessa.  
 +Es. supponiamo che ''miofile.c'' contenga alla riga 10 il seguente codice
 <code> <code>
  CHECK_EQ(p=malloc(N*sizeof(long)), NULL, "malloc");   CHECK_EQ(p=malloc(N*sizeof(long)), NULL, "malloc"); 
 </code> </code>
-l'output dovrà essere (supponendo in questo caso che la malloc vada a buon fine):+l'output dovrà essere (supponendo in questo caso specifico che la malloc vada a buon fine):
 <code> <code>
 "malloc": Success  "malloc": Success 
 ERRORE ALLA LINEA 10 DEL FILE miofile.c ERRORE ALLA LINEA 10 DEL FILE miofile.c
 </code> </code>
 +
 +===== Esercizio 3: creazione di una libreria statica =====
 +
 +Riconsiderare l'esercizio 6 (dell'[[esercitazione2|Assegnamento2]]). Implementare tutte le funzioni che operano sull'albero in una libreria statica chiamata ''libBTree.a''. Linkare quindi la libreria al programma main per ottenere l'eseguibile.
 +Creare quindi un ''Makefile'' che crei la libreria e l'eseguibile.
 +
 +===== Esercizio 4: lista ordinata di parole =====
 +
 +Scrivere un programma che dato un file testuale come argomento, inserisca tutte le parole del file in una lista ordinando le parole alfabeticamente. Fornire inoltre una libreria statica che implementi le seguenti funzioni (libList.a):
 +<code>
 +list_t *createList();                         // crea una lista vuota   
 +int     destroyList(list_t *L);               // libera tutta la memoria allocata dalla lista
 +int     insertList(list_t *L, const char *);  // inserisce una parola nella lista
 +void    printList(list_t *L);                 // stampa tutta la lista
 +</code>
 +ed il Makefile che permette di generare sia la libreria che l'eseguibile.
 +
 + 
informatica/sol/laboratorio15/esercitazionia/esercitazione3.1426592598.txt.gz · Ultima modifica: 17/03/2015 alle 11:43 (10 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki