// Esercizi vol2p060 // Progetta e realizza completamente il codice che risolva i problemi proposti. Risolvi gli esercizi utilizzando la tecnica delle costanti manifeste // es01: genera casualmente N numeri e visualizza il loro quadrato // es02: genera casualmente 10 numeri, memorizzali in un array ed effettua lo scambio tra il massimo ed il minimo elemento (supponendo che i valori dell'array siano tutti distinti tra di loro). // es03: leggi 10 numeri interi da tastiera, e visualizzali in sequenza senza stampare uno stesso numero due volte. Per esempio: 15, 3, 5, 3, 11, 5, 15, 5, 15, 11 -> 15, 3, 5, 11. // es04: leggi N numeri e visualizzali a rovescio. // es05: genera casualmente N numeri, scegli casualmente un elemento del vettore e quindi effettua la partizione dell'array rispetto a quell'elemento (cioe` elabora il vettore in modo tale che tutti gli elementi a sinistra dell'elemento scelto siano minori o, al limite, uguali, mentre tutti gli elementi a destra siano sempre maggiori). // es06: dato un vettore vet1 di N interi, costruisci altri due vettori vet2, vet3 di dimensioni opportune, contenenti rispettivamente gli elementi di vet1 non maggiori e maggiori di un intero dato X. // es07: leggi N numeri, inseriscili in un vettore e individua gli elementi duplicati visualizzandoli sullo schermo. // es08: l'utente inserisce in un array un certo numero N di interi e successivamente un numero NUM: l'elaboratore controlla se esso e` presente nell'array e se il numero e` presente si visualizza la posizione in cui e` stato trovato. // es09: l'utente inserisce due array composti da numeri interi e ordinati in senso crescente. Le lunghezze dei due array possono essere differenti. L'elaboratore crea un terzo array ordinato, utilizzando i due array inseriti dall'utente. Infine quest'ultimo array viene visualizzato. // es10: riordina gli elementi di un vettore di N numeri interi generati casualmente con range (-20, 20) in modo che tutti i valori negativi stiano nella parte sinistra del vettore e tutti i valori non negativi stiano nella parte destra del vettore, senza utilizzara un array di supporto. // es11: l'utente inserisce in un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento). L'elaboratore calcola la seguente formula: v[i]=(v[i-1]+v[i]+v[i+1])/3 e visualizza l'array cosi` filtrato. [Attenzione: la media di cui sopra si puo` sempre calcolare? O in alcuni punti e` necessario modificarla?] // es12: Scrivi un programma che acquisiti due vettori di N numeri interi da input, vet1 e vet2, stampi in output la differenza vet1-vet2, cioe` gli elementi di vet1 che non sono in vet2. [differenza tra insiemi] // es13: in un array di 10 elementi sono memorizzati, ordinati, i 10 migliori tempi ottenuti dagli atleti in una gara di discesa libera. Si riceve poi come dato di ingresso il tempo ottenuto da un nuovo concorrente: verifica la sua appartenenza tra i 10 migliori risultati e, in caso affermativo, inseriscilo nella corretta posizione all'interno del vettore. // es14: si ricevono come dati di ingresso due valori interi positivi minori di 100. Memorizza in due array le rappresentazioni dei numeri in base 2. Effettua poi la somma dei due numeri mediante la rappresentazione binaria e memorizza il risultato (sempre rappresentato in binario) in un terzo array. // es15: progetta un programma che prende in ingresso N numeri interi e ne calcola la media e la varianza. Le formule per il calcolo di media e varianza sono: xm=somma(a[i])/n ; var=somma(a[i]-xm)^2/(n-1). [Ad essere precisi si chiamerebbe la varianza campionaria corretta] // es16: in un array vengono memorizzati i numeri di gara dei piloti che hanno portato a termine la prima prova di una gara di rally e, successivamente, in un secondo array vengono memorizzati i numeri di gara dei piloti che hanno portato a termine la seconda prova della stessa gara. Il programma deve ricevere in input i valori da inserire nei due array e in un secondo tempo inserire in tre nuovi array i numeri di gara dei piloti che: // - hanno portato a termine entrambe le prove // - hanno portato a termine la prima prova ma non la seconda // - hanno portato a termine la seconda prova ma non la prima // es17: la serie "buffa" di interi e` cosi` definita: gli elementi di posizione 1,2,3 valgono tutti e tre 1, e in generale l'elemento di posizione i (con i>=4) e` uguale alla somma degli elementi di posizione (i-1) e (i-3). // A partire da questa definizione si ricava, per esempio, che i numeri della serie buffa di posizione da 1 a 9 sono 1,1,1,2,3,4,6,9,13. // Scrivi un programma che generando casualmente un numero N, generi l'N-esimo numero della serie buffa. // es18: nell'array Ore_Studio sono memorizzate le ore passate a studiare da uno studente per ogni giorno del mese (generate casualmente con valori 0-4). Calcola e visualizza il numero totale di ore passate a studiare nel corso del mese, il giorno (o i giorni) in cui lo studente ha studiato per un numero maggiore di ore e il numero di giorni in cui non ha aperto libro. // es19: in un array di 12 elementi sono memorizzate le presenze mensili in un albergo nel corso dell'anno. Calcola: // - la media di presenze nel corso dell'intero anno // - il numero totale di presenze nei mesi estivi (6,7,8) // - il mese in cui si e` registrato il numero massimo di presenze // - il mese in cui si e` registrato il numero minimo di presenze // - la media delle presenze escludendo i mesi estivi // es20: scrivi un programma che riceva in ingresso una sequenza di N numeri interi con il valore N inserito dall'utente e li memorizzi in un vettore vetA. Terminato l'inserimento della sequenza di numeri, il programma deve visualizzare una riga di asterischi per ogni numero inserito in modo che il numero di asterischi nella riga sia pari al valore del numero inserito. Per esempio, dato il vettore 9,4,6 il programma deve visualizzare: // vetA[0]: 9 ********* // vetA[1]: 4 **** // vetA[2]: 6 ****** // es21: scrivi un programma che riceva in ingresso una sequenza di N numeri interi con il valore N inserito dall'utente e li memorizzi in un vettore vetA. Il programma esegue le seguenti operazioni: esegue uno spostamento (shift) a sinistra di una posizione del contenuto del vettore e lo visualizza sullo schermo. L'elemento di indice N-1 viene posto uguale a zero, in modo che dopo N esecuzioni nel vettore siano presenti tutti 0. // es22: in un concorso di intelligenza, N giudici esprimono il loro giudizio su K candidati. Il giudizio e` un valore numerico tra 0 e 5. Si scriva un programma per determinare il candidato piu` intelligente e il giudice piu` severo.