Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio16:esercitazionia: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:laboratorio16:esercitazionia:esercitazione4 [14/03/2016 alle 09:23 (9 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio16:esercitazionia:esercitazione4 [16/03/2016 alle 15:56 (9 anni fa)] (versione attuale) Massimo Torquati
Linea 3: Linea 3:
 Macros, libreria standard di IO, Makefile primi script Bash. \\ Macros, libreria standard di IO, Makefile primi script Bash. \\
  
 +===== Esercizio 1: macro =====
 +Dato il seguente codice main C:
 +<code>
 +#define dimN 16
 +#define dimM  8
 +int main() {
 +    long *M = (long*)malloc(dimN*dimM*sizeof(long));
 +    assert(M);
 +    for(size_t i=0;i<dimN;++i)
 + for(size_t j=0;j<dimM;++j) {
 +     ELEM(M,i,j) = i+j;
 +        }
 +    
 +    PRINTMAT(M);
 +    free(M);
 +    return 0;
 +}
 +</code>
 +scrivere le 2 macros ''ELEM'' e ''PRINTMAT''. Al suo interno ''PRINTMAT'' usa la macro ''ELEM'' per accedere agli elementi della matrice. Esempio di output richiesto:
 +<code>
 +Stampo la matrice M:
 +      1    2    3    4    5    6    7 
 +      2    3    4    5    6    7    8 
 +      3 ....
 +</code>
 +
 +===== Esercizio 2: Makefile minimale =====
 +
 +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.
 +
 +**OPZIONALE (homework)**: provare a scrivere un Makefile generico in grado di compilare tutti i sorgenti ''.c'' che si trovano nella directory del Makefile. Il target phony clean cancella gli eseguibili. 
 +
 +===== Esercizio 3: matdump testuale =====
 +
 +Riscrivere l'Esercizio 2 dell'[[esercitazione3|Assegnamento3]] considerando matrici NxM facendo il dump  della matrice in un file testuale invece che binario. Scrivere nelle prime due righe del file il numero di righe (N) e di colonne (M), rispettivamente. Ogni riga del file contiene 1 solo valore. Scrivere il Makefile per compilare il programma.
 +
 +===== Esercizio 4: script1 ==========
 +
 +Estrarre dal file ''/etc/passwd'' la lista di tutti gli utenti della macchina utilizzando il comando ''cut'' (vedere man 1 cut). Ordinare alfabeticamente la lista ottenuta utilizzando il comando ''sort'' (vedere man 1 sort).\\
 +NB: fare attenzione al seguente messaggio di warning contenuto nel manuale del comando sort:\\
 +"The locale specified by the environment affects sort order. Set LC_ALL=C to get the traditional sort order that uses native byte values."
 +
 +===== Esercizio 5: script2 ==========
 +
 +Scrivere uno script Bash che genera N numeri casuali compresi tra 0 ed M. N ed M sono due argomenti dello script (M è minore di 32767). Per generare numeri casuali, utilizzare la funzione ''$RANDOM'':\\
 +''$RANDOM'' è una funzione interna di Bash che restituisce un intero pseudocasuale nell'intervallo 0 - 32767.
  
informatica/sol/laboratorio16/esercitazionia/esercitazione4.1457947384.txt.gz · Ultima modifica: 14/03/2016 alle 09:23 (9 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki