=== Esercizio 1 --- Progettare due metodi statici in un programma Java, siano i loro nomi "raddoppiaArrayIterativo" e "raddoppiaArrayRicorsivo". Entrambi devono ricevere due array di interi, siano "a" e "b". I metodi presuppone che i due array siano stati gia' creati nel main, e che "a" sia stato anche inizializzato attraverso una lettura da input. Entrambi i metodi devono semplicemente riempire "b" con gli elementi di "a" moltiplicati per 2; come suggeriscono i nomi, il primo metodo deve essere iterativo, mentre il secondo ricorsivo. *** ESEMPIO: se l'arrai "a" fosse 3 5 6 3 2 6 4 3 5 2 allora l'array "b" dovrebbe essere creato come 6 10 12 6 4 12 8 6 10 4. === Esercizio 2 --- Scrivere un programma Java che preveda un metodo statico chiamato "minimiLocali". Questo metodo deve ricevere un array di interi ed uno di booleani. Siano questi array chiamati "v" e "minimo", e siano le loro lunghezze "v.length" e "minimo.length". Il metodo presuppone che i due array siano stati gia' creati e inizializzati nel main; "v" deve essere letto da input, "minimo", invece, deve essere inizializzato con elementi tutti pari a "false". Gli array devono essere tali che si abbia "v.length==minimo.length". Il metodo "minimiLocali" deve semplicemente far si' che, dopo la sua invocazione, l'array "minimo" contenga "true" in una posizione "i" se e solo se nella posizione "i" dell'array "v" e' presente un minimo locale, cioe' un numero minore sia del suo precedente che del suo successivo. *** ESEMPIO: se l'array "v" fosse --------------- v |1|3|6|2|6|7|1|8| --------------- 0 1 2 3 4 5 6 7 allora l'array "minimo" dovrebbe contenere "true" solo nelle posizioni "3" e "6", e "false" in tutte le altre: infatti 2 e 1 sono minimi locali, e si trovano rispettivamente nelle posizioni "3" e "6". === Esercizio 3 --- Una piccola compagnia aerea ha appena acquistato un computer da dedicare al sistema di prenotazione automatica dei voli. La compagnia vi ha chiesto di programmare il sistema. Il vostro compito è scrivere un programma che assegna i posti di ogni volo dell’unico aereo posseduto dalla compagnia (10 posti in tutto). Il vostro programma dovrebbe visualizzare questo menù di opzioni: Digitare 1 per fumatori o 2 per non fumatori: Se la persona digita 1, il programma le assegna un posto nel reparto fumatori (posti 1-5). Se invece digita 2, il posto si troverà nel reparto non fumatori (posti 6-10). Il programma deve visualizzare una carta di imbarco che indica il numero del posto della persona e se si trova nel reparto non fumatori o fumatori, del tipo Reparto fumatori, posto 3 Utilizzate un array per rappresentare i posti dell’aereo. Inizializzate tutti gli elementi dell’array a 0, per indicare che all’inizio tutti i posti sono vuoti. Man mano che vengono assegnati, impostate i posti occupati a 1. Il programma, ovviamente, non deve riassegnare i posti già occupati. Se il reparto richiesto e' completamente occupato, il programma dovra' segnalare: Reparto completo. Il prossimo volo parte tra 3 ore. *** POSSIBILE MODIFICA: Quando il reparto richiesto si è riempito, chiedere al passeggero se è accettabile andare nell'altro reparto. Se il passeggero accetta, gli si assegna un posto nell’altro reparto (ammesso che ci sia un posto disponibile). Se il passeggero rifiuta, o anche se accetta ma anche l'altro reparto è pieno, visualizzate Il prossimo volo parte tra 3 ore.