Strumenti Utente

Strumenti Sito


fisica:informatica:201415:esercitazioni:esercitazione2

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
fisica:informatica:201415:esercitazioni:esercitazione2 [16/01/2015 alle 16:14 (10 anni fa)] – [Esercizio 2: Verifica ordinamento] Susanna Pelagattifisica:informatica:201415:esercitazioni:esercitazione2 [28/02/2015 alle 07:55 (10 anni fa)] (versione attuale) – [Esercizio 5: Massimo Comun Divisore con il metodo di Euclide con i resti] Susanna Pelagatti
Linea 2: Linea 2:
  
 Dove si sviluppano semplici programmi C che utilizzano i costrutti di controllo. Dove si sviluppano semplici programmi C che utilizzano i costrutti di controllo.
 +
 +===== Esercizio 0: Asterischi =====
 +  * Leggere un numero N da standard input e stampare su standard output N caratteri asterisco (''*'') seguiti da newline (''\n'').
  
 ===== Esercizio 1: Max, min e somma ===== ===== Esercizio 1: Max, min e somma =====
Linea 7: Linea 10:
  
   * Leggere da standard input una serie di reali terminata dal valore 0.0. Calcolare massimo, minimo e somma totale dei reali nella serie e stamparlo su standard output.   * Leggere da standard input una serie di reali terminata dal valore 0.0. Calcolare massimo, minimo e somma totale dei reali nella serie e stamparlo su standard output.
 +
 +
 +
  
 ===== Esercizio 2: Verifica ordinamento ===== ===== Esercizio 2: Verifica ordinamento =====
Linea 14: Linea 20:
 Estendere il programma in modo da riconoscere se la sequenza e' ordinata in modo crescente o descrescente e stamparle ''Ordinata crescente'' o ''Ordinata decrescente'' sullo standard output. Estendere il programma in modo da riconoscere se la sequenza e' ordinata in modo crescente o descrescente e stamparle ''Ordinata crescente'' o ''Ordinata decrescente'' sullo standard output.
  
-===== Esercizio 3: Fattoriale ===== +===== Esercizio 3: La successione di Fibonacci ===== 
-Scrivere un programma C che legge in ingresso un numero intero positivo X e ne calcola il fattoriale stampando il risultato sullo standard output.+La successione di Fibonacci, in sintesi risolve il seguente problema: 
 +Immaginiamo di chiudere una coppia di conigli in un recinto. 
 +Sappiamo che ogni coppia di conigli: 
 +  -  inizia a generare dal secondo mese di età; 
 +  -  genera una nuova coppia ogni mese; 
 +  -  non muore mai. 
 +Quanti conigli ci saranno nel recinto dopo un anno? 
 + 
 +La successione di Fibonacci fornisce il numero di conigli al tempo ''n'' in funzione del numero di conigli nei due mesi precedenti ''n-1'' ed ''n-2'',  
 +<code> 
 +Fib(0) = 1 
 +Fib(1) = 1 
 +Fib (n) = Fib(n-1) + Fib(n-2)   se n > 1 
 +</code> 
 +Visivamente 
 +{{:fisica:informatica:201415:esercitazioni:image008.jpg?200}}. 
 + 
 +Scrivere un programma C che legge in ingresso un numero intero positivo X e calcola i numeri di Fibonacci da 1 ad X stampandoli sullo standard output. 
 + 
 +Elaborazione: Provate ad utilizzare la funzione //sleep(1)// per attendere un secondo fra la generazione di un numero e del successivo. Per ottenere informazioni sulla funzione utilizzate 
 +<code> 
 +man 3 sleep 
 +</code> 
 +visto che la sezione 3 dei manuali in linea contiene informazioni su tutte le funzioni di libreria standard C. 
 +===== Esercizio 4: Massimo Comun Divisore con divisioni successive ====== 
 +Scrivere un programma C che  
 +  * legge da standard input //x// ed //y// 
 +  * calcola MCD(x,y) utilizzando il metodo delle divisioni successive (pag 80 lucidi sui costrutti di controllo) 
 +  * stampa il risultato sullo standard output 
 +  
 +===== Esercizio 5: Massimo Comun Divisore con il metodo di Euclide con i resti ====== 
 +Scrivere un programma C che  
 +  * legge da standard input //x// ed //y// 
 +  * calcola MCD(x,y) utilizzando il metodo delle divisioni successive (pag 94 e seguenti lucidi sui costrutti di controllo) 
 +  * stampa il risultato sullo standard output 
 + 
 +Utilizzare il comando ''time'' per valutare il tempo impiegato per calcolare ''MCD(m,n)'' con ''m=10000000,n=9457831'' con l'algoritmo di Euclide e con l'algoritmo implementato nell'Esercizio 4.  
 +Per evitare di misurare i tempi di attesa dell'input dallo schermo assegnare direttamente i valori alle variabili all'inizio del main e compilare.  
 + 
 +Supponendo il nome degli eseguibili sia ''euclide1'' ed ''euclide2'' basta invocare 
 +<code> 
 +shell$ time ./euclide1 
 +</code> 
 +
 +<code> 
 +shell$ time ./euclide2 
 +</code> 
 +per ottenere il tempo impiegato effettuando operazioni dentro il sistema operativo e fuori. 
 +Confrontare i tempi ottenuti con le due implementazioni ed analizzare i risultati. 
 + 
 +===== Esercizio 6: Stampa della data ====== 
 +Si scriva un programma C che legge dallo standard output tre interi positivi che rappresentano ''giorno'', ''mese'' ed ''anno'' di una data e la stampa sullo standard output 
 +  * sostituendo al mese la stringa corrispondente (es. ''gennaio'', ''febbraio'' etc)  
 +  * specificando se l'anno e' bisestile (un anno e' //bisestile// se è identificato da un intero maggiore di 1584 che sia divisibile per 4 ma non per 100 oppure che sia divisibile per 400)
  
-==== Esercizio 4Due tipi di media (Luca=====+Ad esempio: 
 +<code> 
 +12 12 2003 
 +</code> 
 +provoca la stampa di 
 +<code> 
 +12 Dicembre 2003 (Non bisestile) 
 +</code>
fisica/informatica/201415/esercitazioni/esercitazione2.1421424872.txt.gz · Ultima modifica: 16/01/2015 alle 16:14 (10 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki