DECIMA ESERCITAZIONE
Obiettivo: esercizio d'esame sulle liste
Per lo svolgimento di un esame scritto di Fondamenti di Informatica, un
docente prepara una lista degli studenti iscritti. La lista è rappresentata
mediante una lista concatenata. Ogni nodo della lista contiene le seguenti
informazioni relative ad uno studente:
- cognome (stringa di al più 20 caratteri)
- nome (stringa di al più 20 caratteri)
- matricola (stringa di 8 caratteri)
- numero di fila (intero: la fila di banchi in cui lo studente si
siede)
- posizione fila (carattere indicante il posto della fila dove lo studente
si siede)
Gli studenti vengono fatti entrare nell'aula dello scritto seguendo la
lista. La lista viene modificata assegnando ad ogni studente presente una
posizione nell'aula (es. 2D = quarto posto della seconda fila). Se uno
studente iscritto e' assente, come numero di fila e posizione fila si assegna
0.
- Definire i tipi di dato adeguati a risolvere i problemi di cui ai
successivi punti 2) e 3).
- Scrivere una funzione EliminaAssenti che, ricevendo come parametro una
lista di studenti, trattata come sopra descritto, elimini da essa tutti
gli studenti che risultano assenti.
- Scrivere una funzione VerificaAdiacenti che, ricevendo come parametri una
lista di studenti, trattata come sopra descritto, e due numeri di
matricola, stampi un messaggio di warning se gli studenti
corrispondenti sono contigui.
Due studenti sono contigui se
- occupano posizioni vicine sulla medesima fila, oppure se
- occupano la medesima posizione su file adiacenti
Ad esempio, 2A e 2B sono contigui; 2A e 2C no; 4C e 3C sono contigui; 4C e
3D no
Il messaggio di warning è del tipo "ATTENZIONE: STUDENTI
CONTIGUI".
(Soluzione in liststud.c)