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

1)	(a) Scrivere in linguaggio C una funzione di nome CONTA_CAR che, presi come suoi parametri un array di caratteri V, la sua dimensione n, ed un carattere C conta quante volte C ricorre in V e lo restituisce come suo risultato. 
(b) Descrivere la funzione CONTA_CAR mediante un diagramma di flusso.

2)	Scrivere in linguaggio C una funzione di nome LEGGI_FILE che legge un file di caratteri di nome (prefissato) "sorgente.txt" e lo memorizza in un array di nome TESTO, di dimensione max. 10000 caratteri, contando il numero di caratteri letti (memorizzato nella variabile DIM_TESTO). Si supponga che TESTO e DIM_TESTO siano variabili globali (dichiarate nella parte di "Dichiarazioni globali" del programma). 

3) Scrivere un programma in linguaggio C che determina e stampa per ogni carattere l dell'alfabeto quante volte l ricorre nel testo memorizzato nel file "sorgente.txt". Si richiede di: definire un array di nome FREQ e dimensione 26 i cui elementi sono strutture con un campo carattere L ed un campo intero N, utilizzare le funzioni LEGGI_FILE per leggere il file nell'array TESTO, inizializzare opportunamente FREQ in modo che il campo L di ciascun elemento di FREQ contenga uno dei 26 caratteri dell'alfabeto ed il campo N il numero di presenze di quel carattere in TESTO, utilizzando la funzione CONTA_CAR per determinare il valore di N, e quindi stampare in modo opportuno l'array FREQ. N.B. Si noti che tutti i caratteri dell'alfabeto possono essere elencati valutando l'espressione 'a'+i, per tutti gli i da 0 a 25. Come gia' specificato per l'esercizio 2, si assuma che TESTO e DIM_TESTO siano variabili globali.