Salta ai contenuti. | Salta alla navigazione

Strumenti personali

22 settembre 2006

Fondamenti di Informatica 1 - Compito A

Prof. Marco Gavanelli

22 Settembre 2006

Esercizio (16 punti)

Lo stabilimento balneare Aringa usa fare credito ai propri clienti. Ogni volta che un cliente compra a credito, viene memorizzato il suo cognome ed il costo dell'acquisto in un file di testo  CREDITI.TXT . I dati presenti nel file sono i seguenti

  • cognome (stringa di 20 caratteri, senza spazi)
  • costo (int)

Per ogni cliente possono esserci più acquisti. Il file contiene al più 100 elementi.

Si desidera visualizzare a video il debito totale di ciascuno dei clienti, usando il seguente algoritmo:

  1. Si definisca una funzione ricerca (che verrà invocata nel punto 2) che prende in ingresso
    • un cliente
    • un array di clienti (cioè array di strutture cognome, costo)
    (ed, eventualmente, altri parametri) e cerca se il cliente è nell'array. In particolare,
    • se il cliente è presente, la funzione restituisce la posizione (l'indice) del cliente nell'array
    • altrimenti, la funzione restituisce -1;
  2. Si definisca una procedura inserimento (che verrà invocata nel punto 3) che prende in ingresso
    • un cliente
    • un array di clienti
    (ed eventualmente altri parametri) e ricerca (tramite la funzione definita al punto 1) se il cliente è nell'array. Successivamente,
    • se il cliente non è presente nell'array, lo inserisce in fondo all'array;
    • altrimenti (se il cliente è già presente nell'array), sostituisce il costo riportato nell'array con la somma dei due costi (quello nella variabile cliente e quello riportato nell'array per quel cliente).
    Esempio: Se l'array contiene
    ROSSI 10
    BIANCHI 20
    (dati non significativi) ...
    (dati non significativi) ...
    ... ...
    inserendo {BIANCHI, 5} si otterrà:
    ROSSI 10
    BIANCHI 25
    (dati non significativi) ...
    (dati non significativi) ...
    ... ...
    Inserendo ora {VERDI,8} si otterrà:
    ROSSI 10
    BIANCHI 25
    VERDI 8
    (dati non significativi) ...
    ... ...
  3. Nel main, si leggano gli elementi del file e li si inseriscano nell'array, invocando la procedura inserimento definita al punto 2 per ciascun elemento del file.
  4. Si stampi a video il contenuto dell'array.

Ad esempio, se il file CREDITI.TXT contiene i seguenti dati

ROSSI 10
BIANCHI 20
BIANCHI 5
VERDI 8
ROSSI 3

il programma dovrà visualizzare:

 ROSSI 13 
BIANCHI 25
VERDI 8