Ciao ragazzi, vi sarei estremamente grato se mi deste una mano nella risoluzione dei seguenti esercizi da risolvere col C. Penso che per voi siano abbastanza facili!!!
Esercizio 1
Si consideri la seguente struttura dati utilizzata per memorizzare gli esami sostenuti da uno studente universitario:
typedef struct{
int Voto;
int Crediti;
}InfoEsame;
typedef struct{
InfoEsame *I;
int NumeroEsami;
}ElencoEsami;
Per ogni esame sostenuto si memorizza il voto e il relativo peso in crediti.
1. Si scriva una funzione che legga i dati dello studente da un file e li memorizzi in una variabile di tipo ElencoEsami. Allocare dinamicamente la memoria per l’array I.
2. Si scriva una funzione che, dati come parametri in ingresso un elenco di esami memorizzato in una variabile di tipo ElencoEsami, e un valore di soglia relativo alla votazione conseguita, stampi a video
- Il numero di esami sostenuti per i quali il voto è stato maggiore o al più uguale al valore di soglia
- Il numero totale di crediti acquisiti per gli esami il cui voto conseguito è stato maggiore o al più uguale al valore di soglia
- La media pesata dei voti degli esami
Esercizio 2
Definire una struttura dati per memorizzare un elenco di prodotti alimentari ciascuno caratterizzato da
- il codice alfanumerico
- la descrizione
- il peso
- il prezzo
Scrivere una funzione che, dati in ingresso l’elenco e un valore di prezzo, stampa a video:
- il numero di prodotti presenti nell’elenco con prezzo inferiore al valore del prezzo fornito in ingresso alla funzione
- il peso medio dei prodotti il cui prezzo è superiore al valore del prezzo fornito in ingresso alla funzione
Esercizio 3
Definire una struttura dati collegata mediante puntatori per memorizzare una sequenza di eventi. Ciascun evento è caratterizzato da:
- data di inizio;
- data di termine;
- descrizione.
Ciascun evento ha un puntatore all’evento che lo segue.
Ipotizzare che una funzione abbia creato una lista di eventi e si conosca il puntatore alla prima cella. Tutti gli eventi della lista sono stati ordinati in base alla data di inizio (dalla meno recente alla più recente). Si scriva una funzione che prende in ingresso due parametri, il puntatore all’inizio della lista di eventi e una data, e restituisca l’elenco di eventi che si svolgono in quella data e nelle data successive.
Esercizio 4
Si consideri la seguente struttura dati utilizzata per memorizzare un elenco di dati riferita a persone:
typedef char stringa [50];
typedef struct {
stringa Nome;
stringa Cognome;
int AnnoNascita;
int NumeroFigli;
} Persona;
typedef struct {
Persona *P;
int NumeroPersone;
} ElencoPersone;
1) Si scriva una funzione che legga i dati di un elenco di persone da un file di testo e li memorizzi in una variabile di tipo ElencoPersone. Nel file sono riportati in ciascuna riga: dati di una persona con i valori dei 4 campi: Nome, Cognome, AnnoNascita e NumeroFigli. Per semplicità ipotizzare che la prima riga contenga il numero di elementi presenti nel file. Allocare dinamicamente la memoria per l’array P.
2) Si scriva una funzione con due parametri di ingresso rappresentati rispettivamente un elenco di persone memorizzato in una variabile di tipo ElencoPersone e un valore intero che rappresenta un anno, che stampi a video:
- Il numero di persone nate successivamente all’anno indicato come soglia e il valor medio del numero dei figli;
- Il numero di persone nate successivamente all’anno indicato come soglia che non hanno figli;
- Il numero max di figli delle persone nate nell’anno dato come parametro di ingresso.
Grazie in anticipo a chi vorrà darmi una mano!