Ciao a tutti! Sto affrontando un difficile esame all'università in cui mi viene richiesto di fare un progetto in c, ma io non so da che parte mettere le mani. mi potete dare una mano??
Il testo dell'esercizio è questo:
scrivere e provare un programma che visualizzi all'utente un menù di scelta con le seguenti 4 opzioni:
a) creazione di una nuova lista di interi (si crea dinamicamente una lista doppiamente concatenata di interi inseriti dall'utente; il nome della lista verrà assegnato automaticamente nel formato List-i.)
b) split k di una lista List-i (si richiede all'utente di inserire un valore intero positivo k >1 e il nome di una lista già creata precedentemente a cui applicare lo split.) Per la lista selezionata si effettuano le seguenti operazioni:
1.Sia n il numero di elementi di cui è composta la lista, tale lista verrà modificata e dovrà contenere solo i primi x=?n/k? (ovvero n div k) valori interi.
2.Gli interi rimossi dalla lista al punto precedente andranno a costituire gli elementi di k-1 nuove liste (sempre doppiamente concatenate) i cui nomi saranno assegnati automaticamente nel formato List-i. Alle prime k-2 nuove liste saranno assegnati ognuna x (calcolato al punto 1.) valori interi fra quelli rimossi dalla lista al punto 1. I primi x valori interi rimossi dalla lista al punto 1. saranno inseriti nella prima nuova lista, i secondi x valori rimossi dalla lista al punto 1. saranno inseriti nella seconda nuova lista, e così via fino alla penultima nuova lista. All'ultima nuova lista saranno invece assegnati tutti gli interi rimanenti.
Lo split non ha alcun effetto se applicato ad una lista vuota ("Nil"), ovvero ad una lista non contenente alcun valore intero.
c) split di tutte le liste (Si richiede all'utente di inserire un valore intero positivo k>1. Per ogni lista precedentemente creata (partendo da List-1, quindi List-2, List-3, ... etc.) si effettuano le seguenti operazioni:
1.Sia n il numero di elementi di cui è composta la lista, tale lista verrà modificata e dovrà contenere solo i primi x=?n/k? (ovvero n div k) valori interi.
2. Gli interi rimossi dalla lista al punto 1. precedente andranno a costituire gli elementi di k-1 nuove liste (sempre doppiamente concatenate) i cui nomi saranno assegnati automaticamente nel formato List-i. Alle prime k-2 nuove liste saranno assegnati ognuna x (calcolato al punto 1.) valori interi fra quelli rimossi dalla lista al punto 1. I primi x valori interi rimossi dalla lista al punto 1. saranno inseriti nella prima nuova lista, i secondi x valori rimossi dalla lista al punto 1. saranno inseriti nella seconda nuova lista, e così via fino alla penultima nuova lista. All'ultima nuova lista saranno invece assegnati tutti gli interi rimanenti.
d) stampa un messaggio di uscita e esce dal programma. si gestiscano anche le situazioni di errore.
Grazie a tutti i volenterosi di cuore.... non so veramente come fare!!!