PROVA PRATICA DEL 14 LUGLIO 2005 - n.42

Indicazioni per la consegna

Nella consegna della prova pratica e' importante che gli studenti rispettino le seguenti indicazioni. Se tali indicazioni non vengono rispettate, c'e' il rischio che un esercizio, pur essendo stato svolto correttamente, venga valutato come errato.

E' importante che il codice consegnato includa solamente lo svolgimento della procedura richiesta. A tale codice infatti vengono automaticamente attaccati la definizione delle strutture dati e una procedura main per testare quanto consegnato.

Ad esempio, prendiamo un esercizio che utilizza le seguenti strutture dati:

typedef enum Uno {a,b,c} Uno;

typedef struct Due{
int a[3];
int b[3];
} Due;

Se a partire da queste strutture dati l'esercizio chiede di consegnare una procedura int proc (Uno u, Due d), lo studente dovra' consegnare SOLAMENTE il seguente codice:

/*Eventuali procedure di supporto e variabili globali
utilizzate per lo svolgimento dell'esercizio*/
int proc (Uno u, Due d){
bla bla bla /* codice della procedura */
}

E' importante che NON vengano inseriti nella consegna dell'esercizio le istruzioni #include <...>, la procedura main e la definizione delle strutture dati.

 

Tema d'esame n. 42: NUMERI ABBONDANTI

Un numero k si dice abbondante, se la somma dei suoi divisori, escluso k, è maggiore di k.
Ad esempio 12 è un numero abbondante, perché i divisori di 12 sono 1, 2, 3, 4, 6 la cui somma dà 16. E 16 è maggiore di 12.
I primi numeri della sequenza dei numeri abbondanti sono 12, 18, 20, 24, 30, ...

Si considerino i seguenti tipi per rappresentare liste semplici di interi.

typdef struct ListaElem{
int valore;
struct ListaElem* next;
} ListaElem;

typedef ListaElem* ListaInt;

Funzioni da implementare

  1. ListaInt divisori(int n);
    Restituisce una lista i cui elementi sono tutti i divisori di n (escluso n).

  2. int abbondante (int n);
    Restituisce 1 se il numero n è abbondante e 0 altrimenti.

  3. void togli_abbondanti(ListaInt* l);
    Modifica la lista semplice l togliendo da essa gli elementi abbondanti.