Esercizi programmazione C

maninthebox

Nuovo Utente
1
0
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
joyous.png


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!
 

1nd33d

Utente Attivo
653
279
CPU
Intel i5 3570K @ 4,5Ghz
Dissipatore
Scythe Mugen 2
Scheda Madre
Gigabyte Z77X-UD3H
HDD
Samsung 840 PRO 256GB + Sandisk Ultra 250GB + Sandisk Plus 960GB
RAM
2x8GB Crucial Ballistix Tactical @2000Mhz CL9
GPU
XFX RX480 GTR Black Edition
Audio
Auzentech X-Fi Forte
Monitor
AOC i2369VW
PSU
Seasonic P660
Case
eh?
Periferiche
Razer Naga HEX v2
OS
Windows 10 64bit - Linux Mint 18
Hai provato a fare qualcosa? C'è qualche punto che non ti è chiaro o non riesci proprio a iniziare (sarebbe un po' problematico...)?
 
Ultima modifica:

Optimizer

Bannato a Vita
2
0
Attenzione ad usare array usando la semplice dicitura: tipo *elemento come con
Codice:
InfoEsame *I;
Se non si sta più che attenti al numero degli elementi nella lista e non si usa un indice di posizione (o si usano "tappi") non si sa dove si è all'interno dell'array e quindi il metodo di navigazione diventa inusabile (si sfora l'array con il 100% di probabilità).
 
Ultima modifica:

Entra

oppure Accedi utilizzando

Hot: E3 2021, chi ti è piaciuto di più?

  • Ubisoft

    Voti: 17 18.3%
  • Gearbox

    Voti: 1 1.1%
  • Xbox & Bethesda

    Voti: 66 71.0%
  • Square Enix

    Voti: 3 3.2%
  • Capcom

    Voti: 5 5.4%
  • Nintendo

    Voti: 14 15.1%
  • Altro (Specificare)

    Voti: 8 8.6%

Discussioni Simili