CERCA
26-11-2019 16:04

Esercizi settimana 5

da consegnare entro: 08/12/2019

 

 

ESERCIZIO 1

Si scriva un programma C, adeguatamente commentato, che gestisca un certo numero di studenti iscritti ad un corso di laurea. Il programma utilizza un vettore di strutture, ognuna delle quali memorizza le informazioni di uno studente (numero matricola, nome e cognome, anno di immatricolazione, piano di studi, …). Il programma utilizza inoltre un vettore di strutture, ognuna delle quali memorizza le informazioni di un insegnamento (codice, descrizione, anno di somministrazione, crediti, …). Il programma deve fornire la possibilità di:

  • aggiungere un nuovo studente, stampando un messaggio di errore se lo studente è già presente (individuato dalla matricola) o se il vettore è pieno; la funzione deve inoltre assegnargli un piano di studi scegliendo fra gli insegnamenti disponibili.
  • dato il numero di matricola, stampare le informazioni dello studente oppure un messaggio di errore se la matricola non è presente nel vettore
  • dato un numero di matricola, modificare le informazioni del piano di studi aggiungendo un voto oppure stampando un messaggio di errore se la matricola non è presente nel vettore.
  • Calcolare la media dei voti di tutti gli studenti che hanno completato il piano di studi pesata sul numero di crediti di ogni insegnamento.

Il piano di studi all’interno della struttura studente è un vettore di NUM_ESAMI elementi ognuno di tipo struttura contenete il codice dell'insegnamento e il voto corrispondente (0 se non sostenuto).

Modificare il programma dell'esercizio 1 in modo che il vettore di studenti venga allocato dinamicamente e successivamente riallocato al suo riempimento. Inizialmente usare la funzione malloc() per allocare lo spazio sufficiente per un vettore di 10 strutture studente, Quando il vettore non ha più spazio per contenere nuovi studenti, utilizzare la funzione realloc() per raddoppiare la sua dimensione. Ripetere il raddoppio delle dimensioni ogni volta che il vettore si riempie.


 

 

ESERCIZIO 2

Realizzare un programma che calcoli il valore del fattoriale di un numero inserito da utente tramite una funzione ricorsiva; il programma deve stampare le variabili locali e i parametri di ogni chiamata alla funzione ricorsiva. In particolare, per ogni chiamata ricorsiva, visualizzare l’output su una riga separata e aggiungere un livello di rientro. Fate del vostro meglio per rendere l’output chiaro, interessante e significativo. L’obiettivo è quello di progettare e implementare un formato dell’output che aiuti l'utente a comprendere il meccanismo della ricorsione.

 

 

PROCEDI CON LA CONSEGNA DEGLI ESERCIZI