Strumenti Utente

Strumenti Sito


fisica:informatica:201718:esercitazioni:esercitazione4

Differenze

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

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
fisica:informatica:201718:esercitazioni:esercitazione4 [22/01/2018 alle 09:24 (6 anni fa)]
Susanna Pelagatti creata
fisica:informatica:201718:esercitazioni:esercitazione4 [30/01/2020 alle 13:33 (4 anni fa)] (versione attuale)
Alessio Conte [Esercizio 2: Somma e prodotto di matrici]
Linea 3: Linea 3:
 Dove si sviluppano semplici programmi C che utilizzano i costrutti di controllo e gli array e si comincia a parlare di tempo impiegato per risolvere un problema. Dove si sviluppano semplici programmi C che utilizzano i costrutti di controllo e gli array e si comincia a parlare di tempo impiegato per risolvere un problema.
  
-===== Esercizio 1: Massimo Comun Divisore con divisioni successive ====== +===== Esercizio 1: Filtrare un array ===== 
-Scrivere un programma C che  + 
-  * legge da standard input //x// ed //y// +Scrivere un programma C che legge da tastiera una array di 20 valori reali, trova la media e stampa sullo standard output solo i valori maggiori della media. 
-  * calcola MCD(x,y) utilizzando il metodo delle divisioni successive (pag 80 lucidi sui costrutti di controllo) + 
-  * stampa il risultato sullo standard output+===== Esercizio 2: Somma e prodotto di matrici ====== 
 +Scrivere un programma C costituito da un ''main()'' che legge da standard input due matrici quadrate 10 x 10 di reali, calcola somma e  prodotto e stampa i risultati sullo standard output. 
 + 
 +Dopo aver testato il programma inserendo numeri da tastiera (con matrici piccole, ad es, 2 x 2), possiamo testare il programma su matrici piu' grandi in questo modo: 
 + 
 +E' possibile scrivere le matrici (come quelle qui sotto) in un file di testo 'matrici.txt', e indirizzarlo nello standard input del programma scrivendo 
 + 
 +<code> 
 +./programma < matrici.txt 
 +</code> 
 + 
 +Questo vuol dire che il contenuto del file ''matrici.txt'' potra' essere letto come se fosse stato digitato da tastiera, i.e., potremo leggere i numeri uno ad uno tramite la funzione ''scanf("%d", &variabile)'' (gli spazi e gli a capo vengono ignorati in questo caso). 
 +Sara' quindi necessario utilizzare i numeri letti tramite la funzione ''scanf()'' per inizializzare le matrici. 
 + 
 +possibili matrici per il file matrici.txt: 
 +<code> 
 +1 2 3 4 5 6 7 8 9 0 
 +2 3 4 5 6 7 8 9 0 1 
 +3 4 5 6 7 8 9 0 1 2 
 +4 5 6 7 8 9 0 1 2 3 
 +5 6 7 8 9 0 1 2 3 4 
 +6 7 8 9 0 1 2 3 4 5 
 +7 8 9 0 1 2 3 4 5 6 
 +8 9 0 1 2 3 4 5 6 7 
 +9 0 1 2 3 4 5 6 7 8 
 +0 1 2 3 4 5 6 7 8 9  
 + 
 +1 0 0 0 0 0 0 0 0 0 
 +0 1 0 0 0 0 0 0 0 0 
 +0 0 1 0 0 0 0 0 0 0 
 +0 0 0 1 0 0 0 0 0 0 
 +0 0 0 0 1 0 0 0 0 0 
 +0 0 0 0 0 1 0 0 0 0 
 +0 0 0 0 0 0 1 0 0 0 
 +0 0 0 0 0 0 0 1 0 0 
 +0 0 0 0 0 0 0 0 1 0 
 +0 0 0 0 0 0 0 0 0 1 
 +</code> 
 +===== Esercizio 3: Massimo Comun Divisore  ====== 
 +(1) 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 2: Massimo Comun Divisore con il metodo di Euclide con i resti ====== +(2Scrivere un programma C che  
-Scrivere un programma C che  +   * legge da standard input //x// ed //y// 
-  * 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) 
-  * 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
-  * 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 1+Utilizzare il comando ''time'' per valutare il tempo impiegato per calcolare ''MCD(m,n)'' con ''m=10000000,n=9457831'' con i due algoritmi
 Per evitare di misurare i tempi di attesa dell'input dallo schermo assegnare direttamente i valori alle variabili all'inizio del main e compilare.  Per evitare di misurare i tempi di attesa dell'input dallo schermo assegnare direttamente i valori alle variabili all'inizio del main e compilare. 
  
Linea 35: Linea 76:
  
  
-===== Esercizio 3: Filtrare un array ===== 
  
-Scrivere un programma C che legge da tastiera una array di 20 valori realitrova la media e stampa sullo standard output solo i valori maggiori della media.+ 
 +===== Esercizio 4: MSS, Maximum Segment Sum ===== 
 + 
 +Dato un array di interi positivi e negativi, il segmento di somma massima e' la porzione contigua dell'array in cui la somma deigli elementi ha valore piu' alto. 
 +Ad esempio l'array  
 +<code c> 
 +[2,-4,2,-1,6-3]  
 +</code> 
 +ha come SSM il segmento [2,-1,6] di valore 7. Si chiede di realizzare in programma C che legge dallo standard input N interi, li inserisce in un array lungo Ncalcola il segmento di somma massima lo stampa sullo standard output
 +N deve essere definito con una opportuna MACRO.
  
  
  
fisica/informatica/201718/esercitazioni/esercitazione4.1516613048.txt.gz · Ultima modifica: 22/01/2018 alle 09:24 (6 anni fa) da Susanna Pelagatti