Programmazione 1 (P-Z) a.a. 2007-08
Homework 3
Termine di consegna 26 novembre 2007, Ore 23:59
E' molto importante che prima di inviare le soluzioni leggiate le Indicazioni di consegna.
Esercizio 1
Scrivere un programma che prende in input un testo T
e stampa le 10 parole piu' frequenti in ordine decrescente di frequenza. Affianco ad ogni
parola si deve stampare anche la rispettiva frequenza nella frase. In caso di frequenze uguali
si deve stampare prima la parola che e' apparsa per prima nel testo, leggendolo dall'inizio.
Esempio
Input:
C'era una volta un gatto e una volpe che camminavano per una strada
di campagna. Il gatto aveva addosso un paio di stivali neri e un cappello
da cowboy mentre la volpe una giacca marrone e un paio di sandali. I due
canticchiavano mentre camminavano felici e contenti. Ad un certo punto
videro aprirsi davanti alla loro strada una grande muraglia. Che ne pensi?
Chiese il gatto! Di cosa si tratta secondo te? Non lo so!
Rispose la volpe. Magari e' la muraglia cinese? Chi lo sa?
Output:
un 5
una 5
di 4
e 3
gatto 3
volpe 3
camminavano 2
il 2
la 2
muraglia 2
- Attenzione: Il programma prende in input un testo, il che significa che il testo in questione puo' essere composto da piu' righe. Il vostro programma deve considerarlo "terminato" se nel leggerlo incontra il carattere '-' (meno).
Esercizio 2
Scrivere una funzione che prende in input una stringa T
ed un puntatore ad un long, e restituisce un vettore di stringhe contenente le parole distinte in T.
Invece np deve alla fine puntare al numero delle parole distinte.
L'intestazione della funzione deve essere:
char** Parole (const char T[], long* np)
Esempio
Input:
T = "Questa e' una stringa di cui ne dovete contare le parole distinte.
Le parole sono considerate uguali anche nel caso in cui cominciano
con maiuscolo oppure minuscolo"
Output:
La funzione deve restituire un vettore che contiene le stringhe:
"Questa" "e'" "una" "stringa" "di" "cui" "ne" "dovete" "contare" "le"
"parole" "distinte" "sono" "considerate" "uguali" "anche" "nel" "caso"
"in" "cominciano" "con" "maiuscolo" "oppure" "minuscolo"
Mentre
np[0] = 24
- Attenzione: Dovete scrivere SOLO una funzione, insomma niente main.
Esercizio 3
Scrivere una funzione che prende in input una matrice M ed un numero k.
La matrice rappresenta una mappa semplificata di un territorio suddiviso in n x n caselle. L'elemento (i,j) di M
corrisponde alla casella (i,j) del territorio.
M[i,j] = 0 se nella casella (i,j) del territorio c'e' acqua.
M[i,j] = 1 se nella casella (i,j) del territorio c'e' terra.
Le distanze tra' terra e acqua sono definite come segue:
Se M[i,j] = 0, allora la sua distanza dall'acqua e' 0.
Se M[i,j] = 1, e una delle sue caselle adiacenti (comprese quelle adiacenti in diagonale :
ad esempio M[i+1,j+1]) ha il valore 0, la sua distanza dall'acqua e' 1.
In generale, se una casella di valore 1 circondata da 8 caselle tutte di valore uno che hanno
rispettivamente distanza k1, k2, .. ,k8 dall'acqua, la sua distanza dall'acqua e' di distanza
1 + min{k1, .., k8} dall'acqua.
La funzione, prende in input una matrice M quadrata di dimensione n x n fatta come sopra, il numero n
ed un intero k , e ritorna il numero di caselle della matrice che stanno a distanza k dall'acqua.
L'intestazione della funzione deve essere la seguente:
int terre_distanti (int ** M, int n, int k)
--
JulindaStefa - 11 Nov 2007
This topic: Programmazione1
> WebHome >
Prog1PZ >
HomeworksPZ0708 > Homework3PZ0708
Topic revision: r3 - 2007-11-23 - JulindaStefa