autoguid5

QUINTA ESERCITAZIONE AUTOGUIDATA

Obiettivi dell'esercitazione:

  • scrivere una funzione funzione ricorsiva e seguirne l'esecuzione utilizzando il debugger
  • scrivere alcune semplici funzioni sui vettori, utilizzando il passaggio di parametri per indirizzoe i puntatori

  1. ESERCIZIO 1
  2. (soluzione nel file potenza.c)

    1. Scrivere una funzione ricorsiva potenza che
      1. prende due valori , numero e esponente, e
      2. restituisce il valore del numero elevato a esponente
      .
    2. Utilizzare la funzione in un programma che
      1. legge i due valori e
      2. stampa la potenza
      .

    Seguire l'evoluzione del programma quando si immettono i numeri 4 e 3 (eventualmente ispezionando le variabili di interesse).

    Per visualizzare la pila delle attivazioni delle funzioni scegliere il comando Call stack nel menù Debug (Ctrl-F3)
    questo comando, durante l'esecuzione di un programma, apre una finestra in cuiè mostrata la pila delle attivazioni nello stato corrente del programma e permette quindi di seguire le chiamate delle funzioni;
    per ogni attivazione di un sottoprogramma vengono mostrati nome del modulo e valore dei parametri attuali usati nella chiamata, dal basso verso l'alto, nell'ordine di attivazione.

  3. ESERCIZIO 2
  4. (soluzione nel file ordina3.c)

    Scrivere un programma che ordina in modo crescente un vettore di tre numeri reali.

    Il programma

    • legge i tre elementi del vettore dallo standard input
    • stampa il vettore ordinato
    • .

    Il programma deve essere composto dai seguenti moduli:

    1. LeggiVettore, a cui vengono passati gli argomenti vettore e dimensione e che riempie il vettore con i dati immessi da input;
    2. StampaVettore, a cui vengono passati gli argomenti vettore e dimensione e che stampa il vettore (nel formato elemento - valore)
    3. OrdinaVettore, a cui viene passato il vettore da ordinare , e che utilizza il modulo ScambiaElementi per effettuare líordinamento
    4. ScambiaElementi a cui vengono passati gli indirizzi dei due elementi da scambiare