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