Compiti Vacanze

 PUNTO A) // ESEMPIO: accetta un numero solo se non e' nullo
         
                int n;
                do {
                         printf(“Valore <> da 0 ->”);
                         scanf(“%d”,&n”);
                } while(n == 0);

                printf("Valore accettato = %d\n",a);

            
CONTROLLI su INPUT (scrivi i seguenti controlli sull'input da tastiera)


1)    // accetta un numero solo se e' positivo

2)    // accetta un numero solo se e' negativo

3)    // accetta un numero se il valore e' compreso fra a e b (estremi esclusi)

4)    // accetta un numero se il valore e' compreso fra a e b (estremi inclusi)

5)    // accetta un numero se il valore e' esterno all'intervallo [a,b] (estremi esclusi)

____________________________________________________________________________________________________

PUNTO B)
Letto N da tastiera, calcolare il risultato della serie:
  
           1+2+3+...N

// Esecizio svolto:

                 double risultato=0;
                 while(N > 0)
                 {
                    risultato=risultato+N;
                    N--;
                 }
		 printf("%10.0lf",risultato);
          


// Da fare (codificare ognuno in una funzione che riceve N in ingresso come parametro)

1)           2 +  4 + 6 + 8 + … N      (accettare N solo pari)
2)           1 – 2 + 3 – 4 + 5 ...N
3)           1 + 4 + 9 + 16 + ….N^2
4)           1 + ½ + 3 +1/4 + 5 + 1/6 + ….... N
______________________________________________________________________________________________________
PUNTO C)
Vettori e funzioni: Svolgere almeno 7 esercizi fra i seguenti, codificando una funzione per ogni esercizio

// 1 (3)
// riempire v[] con N elementi  random fra 1 ed M ( M >= N)
// in modo che il vettore NON contenga valori ripetuti


//2 (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)


//3 (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,2.15,2.00]

//3.2 (2)
// come sopra ma con in piu' il vettore sconti[] che contiene la percentuale di sconto per quel prodotto
// es: se v[]= [1.10, 2.15, 0.50], sconto=[50, 0, 10] e q=[2,1,4] allora s[] = [1.10,2.15,1.80]


//4 (3)
// 
// 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


//5 (2)
// 
// Scrive 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]    vero
//     se v[]=[1,2,4,3,2,1,0]    falso


//6 (1)
// 
// 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:
// *
// ****
// *******
// **
//
// *




//7 (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]



//(8) (1) 
// Leggi una tabellina T da tastiera e riempi il vettore v[] con gli elementi della tabellina
// (es. se T=3, v=[0,3,6,9,12,...30]

//(9) (2)

   Leggi un vettore v[] di 11 elementi e poi scrivi:
   A) "Contiene la tabellina del X" (con X fra 1 e 10) se il vettore contiene
      perfettamente la tabellina (es. v=[0,2,4,6,8,10,12,14,16,18,20] allora X=2)
   B) "Non contiene nessuna tabellina", in caso contrario


//(10)(2) Dati 2 vettori v1 e v2, di N elementi (N da tastiera, fra 1 e 100)
// legge da v2 e copia in v1 solo i valori pari; scrive poi a video il numero 
// di elementi effettivamente copiati



//11 (1)
Dato un vettore v[] di N elementi (N fra 1 e 100)
// scrive a video il numero di elementi del vettore v[] 
// che sono divisibili per il valore num 

//12 (3)
somma dei precedenti: Dati 2 vettori V1 e V2 di identica dimensione N (N  fra 1 e 100)
// legge da v2 e copia in v1 la somma dei numeri precedenti;
// es: se v2=[1,2,2,3,5] v1 diventa [1,3,5,8,13]


//13 (2)
Conta gli impulsi:
Dato un vettore di N elementi (N da tastiera, fra 1 e 100) riempirlo casualmente
con valori binari (0 o 1).
Contare poi gli "impulsi" del vettore e scriverne il valore a video.
(esempio: se v[]="0111001011000" ci sono 3 impulsi )
                   xxx  x xx 


//14 (3)
Rotazione di un vettore (destra)
// ruotare a destra il vettore v[] di N elementi (N<=10), di pos (pos < N) posizioni  
// es se v=[1,2,3,4,5] e pos = 2,  v diventa [4,5,1,2,3]


//14.2 (3)
Rotazione di un vettore (sinistra)
// ruotare a sinistra il vettore v[] di N elementi (N<=10), di pos (pos < N) posizioni  






