algebra lineare esercizi assegnati. l algortimi e codici c per: –prodotto scalare - vettore...
TRANSCRIPT
![Page 1: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/1.jpg)
Algebra LineareAlgebra Lineare
Esercizi assegnati
![Page 2: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/2.jpg)
Esercizi assegnatiEsercizi assegnati
Algortimi e codici C per:– Prodotto scalare - vettore– Prodotto scalare - matrice– Prodotto matrice - vettore– Prodotto matrice - matrice
![Page 3: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/3.jpg)
Prodotto scalare - vettoreProdotto scalare - vettore
Moltiplicando uno scalare a per un vettore B si ottiene un nuovo vettore i cui elementi sono il prodotto dello scalare per tutti gli elementi del vettore iniziale.
read (a)for i = 1, n B(i) = a * B(i)endfor
![Page 4: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/4.jpg)
Prodotto scalare - matriceProdotto scalare - matrice
Moltiplicando uno scalare a per una matrice B si ottiene una nuova matrice i cui elementi sono il prodotto dello scalare per tutti gli elementi della matrice iniziale.
read (a)for i = 1, n for j = 1, m B(i,j) = a * B(i,j) endforendfor
![Page 5: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/5.jpg)
Prodotto matrice - vettoreProdotto matrice - vettore
Moltiplicando una matrice A per un vettore B si ottiene un vettore C i cui elementi sono determi-nati dal prodotto della corrispondente riga di A per il vettore B.
for i = 1, n C(i) = 0 for j = 1, m C(i) = C(i) + A(i,j) * B(j) endforendfor
![Page 6: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/6.jpg)
Prodotto matrice - matriceProdotto matrice - matriceMoltiplicando una matrice A per una matrice B si ottiene una matrice C i cui elementi sono determinati dal prodotto della corrispondente riga di A per la corrispondente colonna di B.
for i = 1, n for k = 1, p C(i,k) = 0 for j = 1, m C(i,k) = C(i,k) + A(i,j) * B(j,k) endfor endforendfor
![Page 7: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/7.jpg)
Uso delle functions in CUso delle functions in C
![Page 8: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/8.jpg)
Uso delle functionsUso delle functions
Riduzione delle linee di codice– sequenze di istruzioni identiche da ripetere più
volte in punti diversi del programma Semplificazione della scrittura del codice Trsportabilità (riutilizzazione) in altri
programmi
![Page 9: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/9.jpg)
Definizione di functionDefinizione di function
Definizione del Tipo– int, float, char, etc.
Attribuzione di un nome – p.e. main
Dichiarazione degli argomenti– p.e. main è priva di argomenti, per cui ( )
Corpo della funzione– racchiuso tra { }
![Page 10: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/10.jpg)
Dichiarazione di functionDichiarazione di function
Nessaria se:– il codice della function segue il codice della
main– il codice della function è in un file separato
(opzione -c del compilatore) Non necessaria se il codice della function
precede il codice della main
![Page 11: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/11.jpg)
Scambio dati function/mainScambio dati function/main
Function riceve dati da main attraverso gli argomenti formali (tipizzati)
Main riceve un valore dello stesso tipo della function attraverso l’istruzione return
La function NON restituisce risultati mediante gli argomenti
Per restituire risultati attraverso gli argomenti si DEVONO usare i puntatori
![Page 12: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/12.jpg)
Scoping (portata) delle variabiliScoping (portata) delle variabili Le variabili della function possono essere:
– gli argomenti (parametri) con valori ricevuti da function chiamante
– variabili locali, ossia variabili dichiarate ed utilizzate all’interno della function
In caso di omonimia con variabili esterne la function riconosce ed usa solo le definizioni locali
Le variabili locali sono sconosciute esternamente
![Page 13: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/13.jpg)
Esempio di function 1 (1/4)Esempio di function 1 (1/4)#include <stdio.h>
main (){float epsis, rmins, epsilons (), rminsi ();double epsid, rmind, epsilond (), rmindo ();
rmins = rminsi ();rmind = rmindo();epsis = epsilons ();epsid = epsilond ();
printf ("\nL'r-min s.p.: %e \n", rmins); printf ("L'r-min d.p.: %e \n", rmind);printf ("\nL'eps.ma. s.p.: %e \n", epsis);printf ("L'eps.ma. D.p.: %e \n\n", epsid);}/* continua */
![Page 14: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/14.jpg)
float rminsi ()
{float e, rmin;e = 1.;while (e != 0.) { rmin = e; e = rmin/2; }return rmin;}
double rmindo (){double f, rmin;f = 1.;while (f != 0.) { rmin = f; f = rmin/2; }return rmin;}/* continua */
(2/4)
![Page 15: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/15.jpg)
(3/4)float epsilons (){float a, b, epsi;a = 1.;do { b = 1.; epsi = a; a = epsi/2; b = b + a; }while (b != 1.);return epsi;}/* continua */
![Page 16: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/16.jpg)
double epsilond (){double c, d, epsi;d = 1.;do { c = 1.; epsi = d; d = epsi/2; c = c + d; }while (c != 1.);return epsi;}
(4/4)
![Page 17: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/17.jpg)
Esempio di function 2 (main) Esempio di function 2 (main) #include <stdio.h>
main (){float epsis, rmins, epsilons (), rminsi ();double epsid, rmind, epsilond (), rmindo ();
rmins = rminsi ();rmind = rmindo();epsis = epsilons ();epsid = epsilond ();
printf ("\nL'r-min s.p.: %e \n", rmins); printf ("L'r-min d.p.: %e \n", rmind);printf ("\nL'eps.ma. s.p.: %e \n", epsis);printf ("L'eps.ma. D.p.: %e \n\n", epsid);}
![Page 18: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/18.jpg)
Esempio di function 2 (sub 1/3) Esempio di function 2 (sub 1/3) #include <stdio.h>float rminsi (){float e, rmin;e = 1.;while (e != 0.) { rmin = e; e = rmin/2; }return rmin;}
double rmindo (){double f, rmin;f = 1.;while (f != 0.) { rmin = f; f = rmin/2; }return rmin;}/* continua */
![Page 19: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/19.jpg)
Esempio di function 2 (sub 2/3) Esempio di function 2 (sub 2/3) float epsilons (){float a, b, epsi;a = 1.;do { b = 1.; epsi = a; a = epsi/2; b = b + a; }while (b != 1.);return epsi;}/* continua */
![Page 20: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/20.jpg)
Esempio di function 2 (sub 3/3) Esempio di function 2 (sub 3/3) double epsilond (){double c, d, epsi;d = 1.;do { c = 1.; epsi = d; d = epsi/2; c = c + d; }while (c != 1.);return epsi;}
![Page 21: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/21.jpg)
Esempio di function 3 (1/4)Esempio di function 3 (1/4)#include <stdio.h>void rminsi (float *rmin){float e;e = 1.;while (e != 0.) { *rmin = e; e = *rmin/2; }}
void rmindo (double *rmin){double f;f = 1.;while (f != 0.) { *rmin = f; f = *rmin/2; }} /*continua */
![Page 22: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/22.jpg)
Esempio di function 3 (2/4)Esempio di function 3 (2/4)void epsilons (float *epsi){float a, b;a = 1.;do { b = 1.; *epsi = a; a = *epsi/2; b = b + a; } while (b != 1.);} /*continua */
![Page 23: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/23.jpg)
Esempio di function 3 (3/4)Esempio di function 3 (3/4)void epsilond (double *epsi){double c, d;d = 1.;do { c = 1.; *epsi = d; d = *epsi/2; c = c + d; }while (c != 1.);} /*continua */
![Page 24: Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto](https://reader035.vdocumenti.com/reader035/viewer/2022062701/5542eb59497959361e8c4c11/html5/thumbnails/24.jpg)
Esempio di function 3 (4/4)Esempio di function 3 (4/4)main (){float epsis, rmins;double epsid, rmind;
rminsi (&rmins);rmindo (&rmind);epsilons (&epsis);epsilond (&epsid);
printf ("\nL'r-min s.p.: %e \n", rmins); printf ("L'r-min d.p.: %e \n", rmind);printf ("\nL'eps.ma. s.p.: %e \n", epsis);printf ("L'eps.ma. D.p.: %e \n\n", epsid);}