Esercitazione Excel
Inizializzazioni e dati di sintesi
Inizializzazioni e dati di sintesi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 |
#include <iostream> #include <cmath> #define NUM1 3 //definisco la costante NUM1=3 using namespace std; void seme(){ srand((unsigned)time(NULL)); } float casuale(int MIN, int MAX, int n_decimal){ MIN=MIN*pow(2, n_decimal); MAX=MAX*pow(2, n_decimal); return(rand()%(MAX-MIN+1)+MIN)/pow(2, n_decimal); } int main(){ /************* ESEMPIO 1 *****************************/ //NUM1 è stata definita nella riga 4 string nomi[NUM1]; cout<<"INPUT DATI\n"; for(int i=0; i<NUM1; i++){ cout<<"Nome: "; getline(cin, nomi[i]); } cout<<"\nOUTPUT DATI\n"; for(int i=0; i<NUM1; i++){ cout<<nomi[i]<<endl; } /************* ESEMPIO 2 *****************************/ const int NUM2=5; //definisco la costante NUM2 int numeri[NUM2]; seme(); for(int i=0; i<NUM2; i++){ numeri[i]=casuale(1, 90, 0); } cout<<"\nNumeri estratti\n"; for(int i=0; i<NUM2; i++){ cout<<numeri[i]<<"\t"; } cout<<endl; /************* ESEMPIO 3 *****************************/ /* DICHIARAZIONE ARRAY multe e inizializzazione di tutti i suoi elementi a 0 */ const int NUM_MULTE=10; int multe[NUM_MULTE]={0}; //ATTENZIONE multe[NUM_MULTE]=36; //errore perchè sto salvando 36 nella cella NUM_MULTE+1 esima /* stiamo tentando di inserire il valore 36 nella casella dell'array di posizione NUM_MULTE inesistente ricordate infatti che l'ultimo elemento ha posizione NUM_MULTE-1, dato che il primo ha posizione 0 (e non 1) */ /************* ESEMPIO 4 *****************************/ const int DIM=10; //DICHIARAZIONE ARRAY temperature di DIM interi e inizializzazione int umidita[DIM]={90, 80, 70, 65, 70, 66, 68, 70, 72, 74}; /************* ESEMPIO 5 *****************************/ /* DICHIARAZIONE ARRAY pressioni, senza specificarne le dimensioni e inizializzazione */ int pressioni[]={100, 110, 120, 90, 100, 80, 85, 90, 95, 100}; //ricavo la sua dimensione utilizzando un trucco (da non studiare) int DIMpressioni=sizeof(pressioni)/sizeof(pressioni[0]); /************* ESERCIZIO 1 *****************************/ //Per 10 giorni consecutivi viene registrata la temperatura alle ore 12.00 const int N=10; //assegno a ogni elemento dell'array dei dati DEMO //DICHIARAZIONE ARRAY temperature di DIM interi e inizializzazione int temperature[N]={20, 19, 18, 17, 16, 18, 20, 22, 23, 24}; /* visualizzare in quali giorni si è registrata la temperatura di 18° e quanti sono questi giorni */ int conta=0; cout<<"Giorni con 18 gradi\n"; for(int i=0; i<N; i++){ if(temperature[i]==18){ conta++; cout<<i+1<<endl; } } cout<<"Frequenza: "<<conta<<endl; /************* ESERCIZIO 2 *****************************/ /* il vettore utenti contiene la serie tv preferita da ogni utente trovare quanti sono gli utenti che hanno come serie tv preferita riverdale */ string utenti[]={"riverdale", "chicago fire", "riverdale", "new york pd", "chicago fire", "chicago fire", "Friday Night Lights", "riverdale", "Friday Night Lights"}; int NUMutenti=sizeof(utenti)/sizeof(utenti[0]); int quanti_utenti=0; for(int i=0; i<NUMutenti; i++) if(utenti[i]=="riverdale") quanti_utenti++; cout<<"\nUtenti che guardano Riverdale: "<<quanti_utenti<<endl; /*per tutti coloro che guardano chicago fire sostituire il nome della serie con "annullato" */ for(int i=0; i<NUMutenti; i++) if(utenti[i]=="chicago fire") utenti[i]="annullato"; cout<<"\nVettore aggiornato\n"; for(int i=0; i<NUMutenti; i++) cout<<utenti[i]<<endl; /************* ESERCIZIO 3 DIFFICOLTA' ELEVATA *****************************/ //generare un array di M interi CASUALI const int M=10; int miei_numeri[M]; seme(); for(int i=0; i<M; i++) miei_numeri[i]=casuale(1, 100, 0); //contare i pari int pari=0; for(int i=0; i<M; i++) if(miei_numeri[i]%2==0) pari++; cout<<"\nNumeri interi pari: "<<pari<<endl; //quanti sono i multipli del 2 e del 3 contemporaneamente int conta_multipli2e3=0; for(int i=0; i<M; i++) if(miei_numeri[i]%2==0 && miei_numeri[i]%3==0) conta_multipli2e3++; cout<<"\nNumero interi multipli di 2 e 3: "<<conta_multipli2e3<<endl; //contare i numeri non multipli di 3 int nonmultipli3=0; for(int i=0; i<M; i++) if(miei_numeri[i]%3!=0) nonmultipli3++; cout<<"\nNumeri interi non multipli di 3: "<<nonmultipli3<<endl; //salvare nell'array solo numeri pari seme(); for(int i=0; i<M; i++){ do{ miei_numeri[i]=casuale(1, 100, 0); }while(miei_numeri[i]%2!=0); } for(int i=0; i<M; i++) cout<<miei_numeri[i]<<endl; /* Azzerare l'array ovvero inserire tutti zeri; sovrascrivere uno zero a caso con un uno; visualizzare tutti gli zeri prima di trovare l'uno. es: 0 0 0 0 1 0 0 0 --> 0 0 0 0 */ //azzerro l'array for(int i=0; i<M; i++) miei_numeri[i]=0; //metto un 1 in una posizione casuale dell'array seme(); int pos=casuale(0, M-1, 0); miei_numeri[pos]=1; //conto il numero di 0 prima di trovare il primo 1 int k=0; do{ cout<<miei_numeri[k]<<endl; k++; }while(miei_numeri[k]==0); /*inserire nell'aray solo zeri e uno casualmente il numero in questo modo è un numero binario es: 1 0 1 0 0 0 1 0 decodificarlo in decimale */ seme(); for(int i=0; i<M; i++) miei_numeri[i]=casuale(0, 1, 0); //genero un numero binario (zeri e uno) int dec=0; for(int i=0; i<M; i++) dec=dec+pow(2, M-i-1)*miei_numeri[i]; for(int i=0; i<M; i++) cout<<miei_numeri[i]<<" "; cout<<"\n"<<dec<<endl; } |