C.d.L. in SCIENZE AMBIENTALI
Teoria e Applicazioni delle Macchine Calcolatrici
Prova scritta del 24/2/2000

1)	 (a) Scrivere un sottoprogramma C/Pascal di nome INTERSEZIONE che, presi come suoi parametri di ingresso due vettori di interi A e B di dimensioni rispettivamente m ed n (m, n ≤ 100), restituisce un nuovo vettore C di dimensione k costituito dall’insieme degli elementi appartenenti all’intersezione degli insiemi degli elementi di A e di B. Si richiede di utilizzare per la realizzazione del sottoprogramma INTERSEZIONE una funzione APPARTIENE(x,s,n) che determina se un intero x appartiene all’insieme degli n elementi di s. N.B.: l’ordine degli elementi in A, B e C non conta.
	(b) Dire qual è la complessità computazionale dell’algoritmo realizzato in (a). Giustificare la risposta.
2)	(a) Scrivere un programma C/Pascal che legge da standard input una sequenza di parole terminata dalla parola ‘.’ e determina quante delle parole lette iniziano con vocale (minuscola o maiuscola), stampando il risultato su standard output. Per parola si intende una qualsiasi sequenza di caratteri non contenente il carattere spazio; due parole sono separate da uno o più spazi consecutivi. 
	(b) Descrivere un algoritmo per risolvere il problema del punto (a) anche mediante diagramma di flusso. 
3)	Si consideri una lista concatenata in cui ciascun elemento ha un campo puntatore PUNT e una parte informazione INFO costituita a sua volta da tre campi: 
	    -	F: numero reale
	    -	SELF: puntatore a un elemento della stessa lista concatenata
	    -	C: carattere.
	(a)	Dare la definizione C/Pascal dei tipi di dato necessari a realizzare la lista concatenata sopra descritta. 
	(b) Supponendo che L sia il puntatore di inizio di una lista concatenata del tipo definito in (a), inizialmente vuota, scrivere la sequenza di istruzioni C/Pascal necessarie a creare dinamicamente un nuovo elemento, aggiungerlo in testa ad L, ed inizializzare i campi F, C e SELF del nuovo elemento, rispettivamente, con 0, il carattere spazio, l’indirizzo dell’elemento stesso.