Esercizi

  • Scrivere un programma composto da due moduli: modulo1.c e modulo2.c. Si scriva anche l'header file modulo2.h relativo al modulo due. Il modulo 1 conterrà:
    • una variabile globale intera di nome 'variabile' inizializzata ad 1
    • La funzione 'funzione' nella quale è dichiarata la variabile intera locale 'variabile', inizializzata al valore 2. Questa funzione stamperà il suo nome ed il valore della variabile 'variabile'
    • La funzione 'main' che richiamerà la funzione 'funzione' e la funzione 'esterna', che verrà definita in 'modulo2', della quale otterrà il prototipo dal file 'modulo2.h'
    Nel modulo2 invece troveremo:
    • la variabile statica intera 'variabile' inizializzata a 10
    • La funzione statica 'funzione' che contiene un ciclo che usa la variabile 'variabile' come indice, facendolo giungere a 20. All'interno del ciclo avremo un 'if' che, se 'variabile' supera 15, esegue il blocco che definisce una nuova 'variabile' inizializzata a 100 e la stampa; dopo l'if verra' di nuovo stampata 'variabile'.
    • La funzione 'esterna' che richiamerà 'funzione'
    Si potrà anche provare a definire nel file header 'modulo2.h' la variabile intera 'doppia' e vedere che cosa succede.
  • Scrivere un programma che definisca un albero binario il cui nodo contiene, come dati, due interi. Il primo intero sarà la chiave, mentre il secondo indicherà l'ordine di creazione. Usando una variabile globale come puntatore alla radice dell'albero, scrivere:
    • Una funzione ricorsiva che inserisca un nodo nell'albero
    • Una funzione che crei (allochi) un nodo e lo inserisca nell'albero, usando al bisogno la funzione ricorsiva di cui sopra.
    • Una funzione ricorsiva che 'traversi' l'albero, stampando il contenuto di ogni nodo, nell'ordine
    • Una funzione ricorsiva che liberi la memoria occupata dall'albero
    • Un programma principale che, utilizzando le funzioni scritte:
      1. Crei un'albero di venti numeri casuali
      2. Li stampi in maniera ordinata, secondo il valore casuale
      3. Liberi la memoria occupata dall'alabero
nota il compilatore sotto Linux si chiama cc, un semplice editor, alternativo a vi e' joe, oppure l'editor del midnight commander (mc); per compilare i due file del progetto, si userà il programma make, che legge le regole dal file Makefile (con l'iniziale maiuscola)
I file da scaricare sono: modulo1.c, modulo2.c, modulo2.h, albero.c e Makefile

© Ing. Stefano Salvi - All rights reserved