La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto.

Presentazioni simili


Presentazione sul tema: "Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto."— Transcript della presentazione:

1 Algebra Lineare Esercizi assegnati

2 l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto matrice - matrice

3 Prodotto 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

4 Prodotto 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) endfor

5 Prodotto 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) endfor

6 Prodotto matrice - matrice Moltiplicando 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

7 Uso delle functions in C

8 Uso delle functions l Riduzione delle linee di codice –sequenze di istruzioni identiche da ripetere più volte in punti diversi del programma l Semplificazione della scrittura del codice l Trsportabilità (riutilizzazione) in altri programmi

9 Definizione di function l Definizione del Tipo –int, float, char, etc. l Attribuzione di un nome –p.e. main l Dichiarazione degli argomenti –p.e. main è priva di argomenti, per cui ( ) l Corpo della funzione –racchiuso tra { }

10 Dichiarazione di function l Nessaria se: –il codice della function segue il codice della main –il codice della function è in un file separato (opzione -c del compilatore) l Non necessaria se il codice della function precede il codice della main

11 Scambio dati function/main l Function riceve dati da main attraverso gli argomenti formali (tipizzati) l Main riceve un valore dello stesso tipo della function attraverso listruzione return l La function NON restituisce risultati mediante gli argomenti l Per restituire risultati attraverso gli argomenti si DEVONO usare i puntatori

12 Scoping (portata) delle variabili l Le variabili della function possono essere: –gli argomenti (parametri) con valori ricevuti da function chiamante –variabili locali, ossia variabili dichiarate ed utilizzate allinterno della function l In caso di omonimia con variabili esterne la function riconosce ed usa solo le definizioni locali l Le variabili locali sono sconosciute esternamente

13 Esempio di function 1 (1/4) #include 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 */

14 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)

15 (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 */

16 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)

17 Esempio di function 2 (main) #include 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); }

18 Esempio di function 2 (sub 1/3) #include 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 */

19 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 */

20 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; }

21 Esempio di function 3 (1/4) #include 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 */

22 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 */

23 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 */

24 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); }


Scaricare ppt "Algebra Lineare Esercizi assegnati. l Algortimi e codici C per: –Prodotto scalare - vettore –Prodotto scalare - matrice –Prodotto matrice - vettore –Prodotto."

Presentazioni simili


Annunci Google