Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
informatica:sol:laboratorio19:esercitazionib:esercitazione2 [25/02/2019 alle 17:28 (6 anni fa)] – Massimo Torquati | informatica:sol:laboratorio19:esercitazionib:esercitazione2 [04/03/2019 alle 14:22 (6 anni fa)] (versione attuale) – Massimo Torquati |
---|
===== Esercizio 2: numeri random ===== | ===== Esercizio 2: numeri random ===== |
| |
Generare ''N'' numeri casuali interi nell'intervallo ''[0,K['' utilizzando le funzioni ''rand_r()'' ed ''srand()''. N e K sono definiti con delle opportune ''#define'' (es. N=1000 K=10). Calcolare il numero di occorrenze di ciascun intero ''i'' nell'intervallo ''[0,K[''e stamparle sullo standard output. Un esempio di output e': | Generare ''N'' numeri casuali interi nell'intervallo ''[0,K['' utilizzando la funzione ''rand_r()''. N e K sono definiti con delle opportune ''#define'' (es. N=1000 K=10). Calcolare il numero di occorrenze di ciascun intero ''i'' nell'intervallo ''[0,K[''e stamparle sullo standard output. Un esempio di output e': |
<code> | <code> |
Occorrenze di: | Occorrenze di: |
| |
Suggerimento: per leggere righe del file di input utilizzare ''fgets'' (''man 3 fgets''), per scrivere righe sul file di output utilizzare ''fprintf''. | Suggerimento: per leggere righe del file di input utilizzare ''fgets'' (''man 3 fgets''), per scrivere righe sul file di output utilizzare ''fprintf''. |
| |
| |
---- | |
**Homeworks** | |
| |
Vedere le {{:informatica:sol:laboratorio15:esercitazionia:librerieC.pdf| slides }} per la creazione di librerie statiche e/o dinamiche. | |
| |
===== Esercizio 5: libtokenizer.a ===== | |
| |
Inserire nel file 'tokenizer.h' l'interfaccia di due funzioni 'tokenizer' e 'tokenizer_r' (quest'ultima e' quella implementata nell'esercizio 1 mentre tokenizer ha la stessa interfaccia di tokenizer_r ma usa strtok invece di strtok_r). Inserire nel file 'tokenizer.c' l'implementazione delle due funzioni. Creare quindi una librerie statica 'libtokenizer.a' e riscrivere il programma dell'esercizio 2 in modo che il programma main includa il file 'tokenizer.h' e faccia il linking la libreria 'libtokenizer.a'. | |
| |
===== Esercizio 6: libtokenizer.so ===== | |
| |
Rifare l'esercizio 5 creando invece che una libreria statica una libreria dinamica ('libtokenizer.so'). | |
| |
| |