Esercizio 1
Scrivere un programma che letti da tastiera 10 valori li memorizzi in un vettore V e dica se V contiene almeno un sottovettore palindromo di lunghezza maggiore di 1.
Note:
Il main del programma deve leggere da tastiera gli interi su una singola riga separati da spazi, premendo invio solo dopo l'ultimo valore.
Cio' puo' essere ottenuto attraverso il seguente codice:
scanf("%d %d %d %d %d %d %d %d %d %d",&(V[0]),&(V[1]),&(V[2]),&(V[3]),&(V[4]),&(V[5]),&(V[6]),&(V[7]),&(V[8]),&(V[9]));
Il programma deve stampare 1 se V contiene un sottovettore palindromo di lunghezza maggiore di 1, 0 altrimenti.
E' possibile e consigliato fare uso di funzioni ausiliarie iterative e/o ricorsive.
Esempio
Si vuole inserire il vettore V[1,2,3,4,5,6,7,8,9,0], quindi si inserisce:
1 2 3 4 5 6 7 8 9 0
si preme invio SOLO dopo l'ultimo valore, gli altri valori sono separati da spazi.
Il vettore non contiene un sottovettore palindromo di lunghezza maggiore di 1, il programma deve quindi stampare:
0
L'esecuzione corretta e' quindi:
1 2 3 4 5 6 7 8 9 0
0
Esempio
Si vuole inserire il vettore V[1,2,3,4,3,2,7,8,9,0], quindi si inserisce:
1 2 3 4 3 2 7 8 9 0
Il vettore contiene il sottovettore palindromo [2,3,4,3,2], il programma deve quindi stampare:
1
L'esecuzione corretta e' quindi:
1 2 3 4 3 2 7 8 9 0
1
Esercizio 2
Scrivere un programma che presa in input una matrice M di dimensione 10x10 tale che:
M[i,i] = 2, per ogni i = 0,..,9
M[i,j] = 1 se i conosce j, 0 altrimenti, per i ! = j
Il programma deve stampare gli indici delle 5 persone più conosciute, dal più conosciuto al meno conosciuto.
Note:
Il main del programma deve leggere da tastiera la matrice per righe. Si deve inserire quindi una riga alla volta, i cui elementi sono separati da spazi, premendo invio solo dopo l'ultimo elemento della riga. Cio' puo' essere ottenuto attraverso il seguente codice:
for (i = 0; i < 10; i++)
scanf("%d %d %d %d %d %d %d %d %d %d",&(M[0]),&(M[1]),&(M[2]),&(M[3]),
&(M[4]),&(M[5]),&(M[6]),&(M[7]),
&(M[8]),&(M[9]));
Il programma deve stampare gli indici delle 5 persone piu' conosciute su una singola riga, separati da spazi.
Si puo' assumere che non vi siano due persone (indici) che siano conosciute dallo stesso numero di persone.
E' consigliato fare uso dell'indirizzamento dell'input di un programma. Si pue' fare nel modo seguente:
$./my_program < fileinput
Dove my_program e' il nome del file eseguibile e fileinput e' il nome del file (comprensivo di eventuale estensione) del file che contiene l'input.
Esempio 1
Si inserisce la seguente matrice:
2 1 1 0 1 1 1 1 0 0
1 2 1 1 0 1 1 1 0 0
0 0 2 0 0 0 0 1 0 0
0 0 1 2 0 0 1 1 0 1
0 0 1 0 2 1 1 1 0 0
0 0 1 1 1 2 1 0 0 0
1 1 1 1 1 0 2 1 0 0
0 0 1 1 0 1 0 2 0 0
0 0 1 0 1 1 1 1 2 0
0 1 1 0 1 1 1 1 0 2
Il numero di persone da cui si e' conosciuti e' il seguente:
Persona Nr. persone che la conoscono
0 2
1 3
2 9
3 4
4 5
5 6
6 7
7 8
8 0
9 1
Le cinque persone più conosciute sono quindi, in ordine dal piu' conosciuto al meno conosciuto: 2, 7, 6, 5 e 4. Il programma deve quindi stampare:
2 7 6 5 4
L'esecuzione corretta e' quindi:
2 1 1 0 1 1 1 1 0 0
1 2 1 1 0 1 1 1 0 0
0 0 2 0 0 0 0 1 0 0
0 0 1 2 0 0 1 1 0 1
0 0 1 0 2 1 1 1 0 0
0 0 1 1 1 2 1 0 0 0
1 1 1 1 1 0 2 1 0 0
0 0 1 1 0 1 0 2 0 0
0 0 1 0 1 1 1 1 2 0
0 1 1 0 1 1 1 1 0 2
2 7 6 5 4
grazie a chiunque risponda!! =)