
//--------------------------------------------------------------------------------------
//Esercizi sui vettori Febbario 2026
//--------------------------------------------------------------------------------------

// A1 (3)
// riempire v[] con N elementi (N letto da tastiera) random fra 1 ed M (M letto da tastiera, M >= N)
// in modo che il vettore NON contenga numeri primi.


//A2 (3)
// Dati due vettori ordinati di N elementi v1[] e v2[] mettere in
// un terzo vettore (di dimensione 2*N) i valori di v1 e v2, mantenendo l'ordinamento in V3
// (non ordinare v3 dopo averlo riempito - usare un solo ciclo)


//A3 (1)
// dato v[] vettore di prezzi di N prodotti, q[] vettore di quantita' di N prodotti
// produrre in s[] i totali ottenuto moltiplicando ciascun prezzo di prodotto per la sua quantita'
// es: v[]= [1.10, 2.15, 0.50] , q=[2,1,4]  allora in s ci viene messo: s[]=[2.20,1.15,2.00]

//A3.2 (2)
// come sopra ma con vettore sconti[] che contiene la percentuale di sconto per quel prodotto
// es se sconto=[50, 0, 10] allora s[] = [1.10,1.15,1.80]


//A4 (3)
// void sequenze(int v[],int n)
// visualizza sullo schermo quelle parti di vettore con sequenze consecutive
// esempio:
// se v=[1,2,5,3,4,5,-2,-1,0,7,4,5,6]
// visualizza:
// 1,2
// 3,4,5
// -2,-1,0
// 4,5,6


//A5 (2)
// void differenzeuno(int v[], int n)
// Ritorna vero se, per ogni numero il successivo e' uno in piu' o uno in meno 
// es: se v[]=[1,2,3,2,1,0,1]   ritorna vero
//     se v[]=[1,2,4,3,2,1,0]   ritorna falso


//A6 (1)
// void asterischi(int v[], int n)
// il vettore v[] contiene numeri fra zero e 50
// Si produca il disegno a schermo che rappresenta, per ogni numero del vettore, la sua
// quantita', in orizzontale, in asterischi
// es: v=[1,4,7,2,0,1]
// Ottengo il disegno:
// *
// ****
// *******
// **
//
// *



//A7 (3)
// disordina...
// dato un vettore v[] di n elementi ordinato
// renderlo "ben disordinato" con gli stessi elementi
// esempio: se v[] e' [1,4,5,6,12,32], puo' diventare [4,32,1,5,12,6] oppure [6,32,4,12,5,1]





//Gruppo denominato C
//---------------------------------------------------------------------------
// Esercizi su vettori di interi 
// Fare le funzioni richieste rispettando il prototipo
// e le specifiche
// (n e' la dimensione dei vettori)
//---------------------------------------------------------------------------


//C1 (1)
int vettpari(int v1[], int v2[], int n) 
// legge da v2 e copia in v1 solo i valori pari; ritorna il numero 
// di elementi copiati


//C2 (1)
int numzeri(int v[], int n) 
// ritorna il numero di valori a zero nel vettore v


//C3 (1)
int vett_tabellina(int v[11], int tab)
// ritorna nel vettore v[] la tabellina tab
// es se tab=3 in v[] ci mette [0,3,6,9,...30]

//C3 (1)
int vett_tabellina(int v[11])
// ritorna la tabellina (es 7) se nel vettore c'e' esattamente la tabellina del 7
// es ritorna 3 se in v[] c'e' [0,3,6,9,...30], ritorna 0 se in v[] non c'e' una tabellina

//C4 (1)
int numdivis(int v[], int num, int n)
// ritorna il numero di elementi del vettore v[] 
// che sono divisibili per il valore num


//C5 (2)
int numchar(int v[], int n)
// ritorna il numero di valori di v[] che corrispondono al codice ASCII
// di una lettera (maiuscola o minuscola)
// es: se v=[0,-2,345,97,98,65,66] ritorna 4
// perche' 97, 98 sono codici ascii di minuscole; 65 e 66 di maiuscole


//C6 (1)
int numcifre(int v[], int n)
// ritorna il numero di valori di v[] che corrispondono al codice ASCII
// di una cifra
// es: se v=[0,-2,48,50,97] ritorna 2
// perche' 48, 50 sono codici ascii di cifre


//C7 (1)
int numcompresi(int v[], int min, int max, int n)
// ritorna il numero di valori di v[] compresi fra min e max 


//C8 (2)
int numdiversi(int v1[], int v2[], int num, int n)
// legge da v2 e copia in v1 i valori, se diversi da num; 
// ritorna il numero di valori copiati



//C10 (2)
void sommaprecedenti(int v1[], int v2[], int n)
// legge da v2 e copia in v1 la somma dei precedenti;
// es: se v2=[1,2,2,3,5] v1 diventa [1,3,5,8,13]

