
1. Il programma somma_log2.c, riportato su questa directory,
   è stato scritto con l'intenzione di calcolare la
   somma dei logaritmi in base 2 dei primi N interi positivi.

   Ma il programma ha un certo numero di errori.
   -> Renderlo funzionante affinché faccia quanto richiesto.

2. In corrispondenza dei valori della variabile x 
      2, 3, 4, 5, 6, 7, 8, 9, 10
   la variabile y assume i valori
     1.111, 0.907, 0.785, 0.702, 0.641, 0.594, 0.555, 0.524, 0.497

   Mediante una opportuna analisi fatta con R
    - dire come y dipende da x;
    - trovare i coefficienti dell'andamento

   [ nome dello script: andamento.R ]

3. L'ordinamento cosiddetto 'a bolle' ('bubble sorting') si basa
   sul seguente algoritmo:
     - si scorrono gli elementi di un vettore finché
       non si trova che un valore (diciamo v[i]) è maggiore
       del successivo (v[i+1]):
        -> in tal caso si effettua lo swap dei due valori;
     - si prosegue la ricerca da dove si era rimasti, eseguendo
       eventuali swap di valori che soddisfino una simile condizione,
       fino a raggiungere l'ultimo elemento del vettore;
     - si ricomincia da capo e si termina quando in un 'scansione'
       dei valori non si trova nessuna condizione del genere,
       segno che tutti i valori sono ordinati in ordine crescenti.

   - Scrivere una function che implementi tale algoritmo, su un vettore
     di float lungo n, da passare come argomento della funzione.
   - Nel main
     - si generino 10 numeri casuali float 'uniformi' nell'intervallo [0, 1],
       usando come seed della random la propria matricola;
     - si stampino i valori con 3 cifre decimali su una sola riga;
     - si effettui il riordinamento invocando la funzione creata;
     - si stampino i valori ordinati, con lo stesso formato di prima. 

  [nome del programma: prova_bubble.c ]

4. Si scriva un programma C che 
   - legga da riga di comando una sequenza di lettere dell'alfabeto,
     senza spazi;
   - conti il numero totale di caratteri;
   - trasformi le lettere minuscole in maiuscole
     e le maiuscole in minuscole.
     
   Note: i)  si può fare tutto nel main, senza scrivere funzioni ad hoc;
         ii) è proibito usare librerie di sistema che hanno
	     apposite funzioni che operano su caratteri e vettori
	     (questa nota è per chi le conosce per altra via, visto
	     che a lezione non ne abbiamo parlato).

   [nome del programma: prova_string.c]

5. Si scriva una funzione per assegnare a tutti gli elementi
   di un 'array' (sia unidimensionali che bidimensionali)
   lo stesso valore di tipo int. Quindi avrà tre argomenti:
   il numero totale dell'array, il puntatore all'array stesso
   e il valore da mettere in tutti gli elementi.

   Per testarla
   - si definisca nel main una matrice di interi di 3 righe
     e 4 colonne, con tutti gli elementi inizializzati a 0.
   - si stampi la matrice;
   - si chiami quindi la funzione al fine di porre tutti
     gli elementi a 7.
   - si stampi nuovamente la matrice.

   Dire poi se tale function è in grado di assegnare lo stesso
   valore a tutti gli elementi di una riga o di una colonna,
   spiegando in modo molto conciso perché è possibile
   o perché è impossibile. Dare la risposta come commento
   alla fine del main. 

   [nome del programma: set_arrays.c]


6. Assumendo che le orbite della Terra e di Giove intorno
   al Sole siano perfettamente circolari e fra di loro coplanari,
   completando lo script TerraGiove_ossatura.R 
   - si plottino con R entrambe le orbite completando lo script;
   - si plotti il moto di Giove come è visto dalla Terra
     (sì, Tolomeo aveva ragione... almeno dal suo punto di vista).
 
    [nome dello script: Terra_Giove.R]

   
