Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio19:esercitazionib:esercitazione4

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:laboratorio19:esercitazionib:esercitazione4 [11/03/2019 alle 08:15 (6 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio19:esercitazionib:esercitazione4 [13/03/2019 alle 05:46 (6 anni fa)] (versione attuale) Massimo Torquati
Linea 1: Linea 1:
 ====== Esercitazione 4 ====== ====== Esercitazione 4 ======
  
-===== Esercizio 1: matdump =====+===== Esercizio 1: =====
  
 Scrivere un programma che prende in ingresso un intero 'N' ('N' e' piccolo, es. <html><=512</html>), alloca in memoria una matrice di NxN elementi ''float'' in modo che siano contigui in memoria.  Scrivere un programma che prende in ingresso un intero 'N' ('N' e' piccolo, es. <html><=512</html>), alloca in memoria una matrice di NxN elementi ''float'' in modo che siano contigui in memoria. 
-Inizializzare tale matrice (chiamata M1) in modo arbitrario (ad esempio M1(i,j) = (i+j)/2.0).  +Inizializzare tale matrice (chiamata ad esempio M1) in modo arbitrario (ad esempio M1(i,j) = (i+j)/2.0).  
-Fare quindi il salvataggio in un file della matrice sia in formato **binario** che in formato **testuale** in modo da ottenere 'mat_dump.dat' per il formato binario e 'mat_dump.txt' per quello testuale. Chiudere i file creati. +Fare quindi il salvataggio in un file della matrice sia in formato **binario** che in formato **testuale** in modo da ottenere due file separati 'mat_dump.dat' per il formato binario e 'mat_dump.txt' per quello testuale. Chiudere i file creati. 
-Rileggere quindi la matrice dal file 'mat_dump.dat' memorizzando il contenuto in una matrice differente  + 
-da quella di partenza (chiamata M2). Al termine dell'operazione di lettura effettuare il confronto delle due matrici con la funzione 'confronta'. Tale funzione deve essere implementata in modo "generico" cioe' prende come argomenti un puntatore a funzione con tipo opportuno, il puntatore alle due matrici da confrontare e la size. Testare il programma passando alla funzione 'confronta' la funzione di libreria ''memcmp'' (man 3 'memcmp'). Notare la differenza di size tra 'mat_dump.dat' e 'mat_dump.txt'.+Scrivere un secondo programma (oppure estendere quello precedente) che prende in ingresso i nomi dei due file creati in precedenza e l'intero 'N', legge la matrice sia dal file 'mat_dump.dat' che dal file 'mat_dump.txt' memorizzandone il contenuto in due matrici distinte. Al termine dell'operazione di lettura, effettua il confronto delle due matrici con la funzione 'confronta' che deve essere implementata in modo "generico" cioe' deve prendere come argomenti un puntatore a funzione con tipo opportuno, i puntatori alle due matrici da confrontare e la size delle matriciIl programma deve stampare l'esito del confronto.  
 +Testare il programma passando alla funzione 'confronta' la funzione di libreria ''memcmp'' (man 3 'memcmp'). 
 + 
 +Notare la differenza di size tra 'mat_dump.dat' e 'mat_dump.txt'.
  
 ===== Esercizio 2: ===== ===== Esercizio 2: =====
  
 Scrivere un ''Makefile'' minimale per compilare l'esercizio precedente. Utilizzare il compilatore ''g++'' ed i flags ''-g -O3 -Wall''. Il ''Makefile'' deve avere anche il target "phony" clean. Scrivere un ''Makefile'' minimale per compilare l'esercizio precedente. Utilizzare il compilatore ''g++'' ed i flags ''-g -O3 -Wall''. Il ''Makefile'' deve avere anche il target "phony" clean.
- 
  
 ===== Esercizio 3: ===== ===== Esercizio 3: =====
- 
-Scrivere un programma che implementa una versione semplificata del comando Unix ''wc''  
-limitatamente alle opzioni -l e -w (''man 1 wc''). Usare ''getopt'' per il parsing degli argomenti (''man 3 getopt''). 
-Se non vengono passate opzioni, il programma stampa sia il numero 
-di linee che il numero di parole del/dei file i cui nomi sono passati come argomento  
-(mywc [-l -w] file1 [file2 file3 ....]). 
- 
-===== Esercizio 4: ===== 
  
 Scrivere un programma C che dato un file testuale come argomento, inserisca tutte le parole del file in una lista ordinando le parole alfabeticamente. Ogni linea del file testuale puo' contenere piu' parole. Implementare la seguente interfaccia:  Scrivere un programma C che dato un file testuale come argomento, inserisca tutte le parole del file in una lista ordinando le parole alfabeticamente. Ogni linea del file testuale puo' contenere piu' parole. Implementare la seguente interfaccia: 
Linea 33: Linea 27:
  
 Fornire i metodi di creazione e gestione della lista in una libreria statica (libList.a). Scrivere il Makefile per creare la libreria e generare l'eseguibile. Fornire i metodi di creazione e gestione della lista in una libreria statica (libList.a). Scrivere il Makefile per creare la libreria e generare l'eseguibile.
 +
 +===== Esercizio 4: =====
 +
 +Scrivere un programma che implementa una versione semplificata del comando Unix ''wc'' 
 +limitatamente alle opzioni -l e -w (''man 1 wc''). Usare ''getopt'' per il parsing degli argomenti (''man 3 getopt'').
 +Se non vengono passate opzioni, il programma stampa sia il numero
 +di linee che il numero di parole del/dei file i cui nomi sono passati come argomento 
 +(mywc [-l -w] file1 [file2 file3 ....]).
  
informatica/sol/laboratorio19/esercitazionib/esercitazione4.1552292131.txt.gz · Ultima modifica: 11/03/2019 alle 08:15 (6 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki