Concetti Chiave

  • La struttura dati memorizza informazioni su una collezione di foglie secche, inclusi specie botanica e quantità.
  • È prevista una funzione di inserimento che gestisce sia l'aggiunta di nuove foglie che l'incremento della quantità di foglie già presenti.
  • Se una foglia è già nell'elenco, il quantitativo viene incrementato di 1; altrimenti, viene aggiunta come nuovo elemento.
  • La funzione insert Foglia() richiede l'implementazione di una funzione di ricerca per verificare la presenza della foglia nell'elenco.
  • È importante gestire gli errori durante il processo di inserimento per garantire l'integrità dei dati.

Esercizio C - Funzioni e struct

Data le seguenti dichiarazioni che descrivono una struttura dati per memorizzare una collezione di foglie secche:

#define MAX_DATI 50

typedef char string [40];

typedef struct {

string specie; //specie botanica

int quant; } //quantità

tFoglia;

typedef struct {

tFoglia dati [MAX_DATI];

int numEff;

}tElencoFoglie;

Definizione delle funzioni

Con riferimento alla struttura di cui sopra, scrivete un pgm C che esegue l’inserimento di una foglia nell’elenco. Attenzione, però: non vogliamo che i doppioni occupino posti diversi, ma vogliamo comunque contare accuratamente tutte le foglie. I casi sono quindi due: se la foglia è già presente nell’elenco si deve incrementare il corrispondente quantitativo di 1 unità; se invece non è presente va inserita come nuovo elemento (e in questo caso il relativo quantitativo deve essere posto a 1).

Implementazione della funzione insert

La funzione insert Foglia() utilizza la funzione ricercaFoglia() anch’essa da codificare.

Gestire opportunamente le situazioni di errore.

Domande da interrogazione

  1. Come si gestisce l'inserimento di una foglia nell'elenco per evitare duplicati?
  2. Durante l'inserimento di una foglia, se la foglia è già presente nell'elenco, si incrementa il quantitativo di 1 unità; altrimenti, si inserisce come nuovo elemento con un quantitativo iniziale di 1.

  3. Qual è la struttura dati utilizzata per memorizzare le foglie secche?
  4. La struttura dati utilizzata è `tElencoFoglie`, che contiene un array di `tFoglia` per memorizzare le foglie e un intero `numEff` per tenere traccia del numero effettivo di foglie nell'elenco.

  5. Quali funzioni sono necessarie per gestire l'inserimento delle foglie?
  6. Sono necessarie due funzioni: `insertFoglia()` per gestire l'inserimento e `ricercaFoglia()` per verificare se una foglia è già presente nell'elenco.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community