// Esercizio 1 /* * File: main.cpp * Author: maurizio * * Created on 14 aprile 2010, 21.54 */ #include #include #include using namespace std; /* * */ const int MAX=20; void carica(double v[], int n); void stampa(double v[], int n); double media(double v[], int n); void media2(double v[], int n, double& m); void carica2(double v[], int n, double a[], int& m, double b[], int& p); int main(int argc, char** argv) { // dimensione dell'array v int n=11; double v[n]; // caricamento degli elementi di v carica(v,n); // creo a e b double a[n]; double b[n]; // dimensione di a e b int m=0; int p=0; // carico gli elementi di a e b carica2(v,n,a,m,b,p); stampa(a,m); stampa(b,p); return (EXIT_SUCCESS); } // caricamento dell'array v di dimensione n void carica(double v[], int n) { if (n>MAX) return; for (int i=0; i> v[i]; } } // stampa dell'array v void stampa(double v[], int n) { if (n>MAX) return; for (int i=0; iMAX) return; double s=0.0; for (int i=0; iMAX) return; m=0; p=0; //double avg = media(v,n); double avg=0.0; media2(v,n,avg); cout << "Media: " << avg << endl; for (int i=0; iavg) { // caricamento dell'array a a[m]=v[i]; m++; } else { // caricamento dell'array b b[p]=v[i]; p++; } } //Esercizio 2 /* * File: main.cpp * Author: maurizio * * Created on 14 aprile 2010, 13.48 */ #include #include using namespace std; /* * */ void eliminaCar(string, char, string&, int&); int main(int argc, char** argv) { char c ='a'; string t=""; int k=0; eliminaCar("ciao come stai? io sto una meraviglia",c,t,k); cout << "Nuova stringa: " < #include using namespace std; /* * */ const int MAX=5; int genera(int, int); int indovina(int,int); int main(int argc, char** argv) { // numero introdotto dall'utente int x=0; // genera il numero int a=genera(1,100); // conta i tentativi int t=0; do { cout << "Introduci un numero: "; cin >> x; // cerco di indovinare il numero t=indovina(a,x); // parte facoltativa if (t>MAX) { cout << "Hai superato il massimo dei tentativi: " << MAX << ". Il numero era " << a << "." << endl; break; } } while(x!=a); // controllo facoltativo if (t<=MAX) cout << "Numero indovinato in " << t << " tentativo/i" << endl; return (EXIT_SUCCESS); } int genera(int min, int max) { // genera sequenze di valori differenti srand(time(NULL)); return (rand() % (max-min+1)) + min; } int indovina(int a, int x) { // se non voglio perdere i valori devo rendere statica la var. t static int t=1; // se ho indovinato il numero if (a==x) return t; else if(x>a) { cout << "Il numero introdotto è troppo grande " << endl; t++; } else { cout << "Il numero introdotto è troppo piccolo " << endl; t++; } } // Versione alternativa esercizio 3 /* * File: main.cpp * Author: maurizio * * Created on 14 aprile 2010, 13.19 */ #include #include using namespace std; /* * */ const int MAX=5; int genera(int, int); bool indovina(int,int); int main(int argc, char** argv) { // numero introdotto dall'utente int x=0; // pongo b=false il che vuol dire che non ho ancora indovinato il numero bool b=false; // il calcolatore genera un numero casuale int a=genera(1,100); // a scopo di debug, visualizzo il valore generato //cout << "Valore generato " << a << endl; // t questa volta va dichiarato fuori dal ciclo for perchè il suo valore // serve al di fuori del ciclo int t; // ho a disposizione MAX tentativi for (t=1; t<=MAX; t++) { cout << "Introduci un numero: "; cin >> x; // cerco di indovinare il numero b = indovina(a,x); // se l'ho indovinato interrompo il ciclo // il valore di t mi dice dopo quanti tentativi ho indovinato il numero if (b) break; }; if (b) cout << "Hai indovinato il numero in " << t << " tentativo/i." << endl; else cout << "Non hai indovinato. Il numero era " << a << "." << endl; return (EXIT_SUCCESS); } int genera(int min, int max) { // genera sequenze di valori differenti srand(time(NULL)); // restituisce un valore intero casuale compreso tra min e max (con mina) cout << "Il numero introdotto è troppo grande." << endl; else cout << "Il numero introdotto è troppo piccolo." << endl; // se il numero è troppo grande o troppo piccolo, ritorno false (cioè non l'ho ancora in dovinato) return false; } // Fine