C.d.L. in SCIENZE AMBIENTALI
Teoria e Applicazioni delle Macchine Calcolatrici
Prova scritta del 18/12/2000
(riservata a studenti fuori corso)

1)	Scrivere una funzione C di nome INVERTI che, presi come suoi parametri di ingresso, un vettore di caratteri A e la sua dimensionn n, inverta l’ordine dei caratteri in A (es., dato A = ('c','i','a','o') il nuovo valore di A sarà ('a','o','i','c')).

2)	(a) Scrivere un programma C che legge da standard input una sequenza di caratteri S terminata da due caratteri '.' (punto) consecutivi ed, utilizzando la funzione INVERTI realizzata al punto (1), determina e stampa su standard output la corrispondente sequenza con l'ordine dei caratteri invertito (N.B. i due punti terminali non fanno parte della sequenza da invertire). Si assuma che la sequenza di caratteri letti sia costituita al massimo da 32 caratteri (gli eventuali caratteri in più vengono ignorati).
	(b) Descrivere lo stesso programma del punto (a) utilizzando un diagramma di flusso.
 
3)	Si consideri un file di nome dati.txt contenente numeri interi. Scrivere un programma C che legge dal file dati.txt uno alla volta i numeri in esso contenuti e costruisce una lista concatenata semplice L memorizzando ciascun numero letto dal file in un nuovo elemento della lista. Si assuma che l'ordine degli elementi nella lista (rispetto all'ordine degli stessi elementi nel file) sia irrilevante.  Si realizzi, se ritenuto opportuno, l'inserimento di un nuovo elemento nella lista L come una funzione, di nome INSERISCI, da richiamare opportunamente all'interno del programma principale.

4)	Dire qual'è la complessità computazionale dell'algoritmo utilizzato nella funzione INVERTI realizzata al punto (1).