C.d.L. in SCIENZE AMBIENTALI
Teoria e Applicazioni delle Macchine Calcolatrici
Prova scritta del 18/9/2001

1)	(a) Scrivere in linguaggio C una funzione di nome DOPPIE che, presi come suoi parametri un array di caratteri T e la sua dimensione n, conta il numero di doppie (ovvero, due caratteri identici consecutivi) presenti in T e lo restituisce come suo risultato. 
(b) Descrivere la funzione DOPPIE mediante un diagramma di flusso.

2)	Scrivere un programma in linguaggio C che, ottenuto dall'utente il nome di un file di caratteri F (dimensione max. 1000 caratteri), determina e stampa il numero di doppie presenti in F. Si richiede di utilizzare (obbligatoriamente) la funzione DOPPIE realizzata al punto (1). Si richiede anche di controllare che il file specificato esista ed in caso contrario di dare opportuna segnalazione di errore. 

3) (a) Scrivere in linguaggio C una funzione booleana di nome TROVA che, presi come suoi parametri un array V di terne <A,B,C>, con A e C interi e B stringa (max. 16 caratteri), la dimensione n di V, ed una stringa X, determina se X appartiene o meno all'array V. 
(b) Qual è la complessita' computazionale dell'algoritmo utilizzato nella funzione TROVA?