MPZI_vj13

2455 days ago by fresl

Dvostruka petlja for


1. zadatak

Napišite programsku funkciju  umnozak()  koja ima dva parametra, realan broj $r$ i matricu $\mathbf{A}$ s realnim komponentama, a vraća novu matricu koja je umnožak broja $r$ i matrice $\mathbf{A}$. Program izvedite s argumentima  $r=3$  i  $\mathbf{A} = \left[\begin{array}{rr} -1,\!1 & 2 \\ 3  & 1,\!3 \end{array}\right]$.  Trebate dobiti matricu  $\left[\begin{array}{rr} -3,\!3 & 6 \\ 9  & 3,\!9 \end{array}\right]$.

Podsjećamo:

  • ako je  $\mathbf{B} = r\cdot\mathbf{A}$,  onda je  $b_{i,j} = r\cdot a_{i,j}$ ;
  • broj redaka i broj stupaca matrice A dobivaju se pomoću funkcija .nrows() i .ncols();
  • nul–matrica koja ima m redaka i n stupaca, a komponente su joj nule kao realni brojevi, dobiva se pozivom funkcije  zero_matrix (RR, m, n);
  • komponenti u i-tom retku i j-tom stupcu matrice A pristupa se izrazom A[i,j];
  • indeksi komponenata počinju od 0;
  • niz cijelih brojeva  $0,\,1,\,\ldots,\, m\!-\!1$  dobiva se pozivom funkcije srange(m).
       
       


1. zadatak za zadaću

Napišite programsku funkciju  minus_jedan()  koja ima jedan parametar, i to matricu, a vraća novu matricu dobivenu množenjem parametra sa $-1$. Program izvedite s argumentom $\mathbf{A} = \left[\begin{array}{rr} -1,\!1 & 2 \\ 3  & 1,\!3 \end{array}\right]$.  Trebate dobiti matricu $\mathbf{B} = \left[\begin{array}{rr} 1,\!1 & -2 \\ -3  & -1,\!3 \end{array}\right]$.

       

 

2. zadatak za zadaću

Napišite programsku funkciju  zbroj_matrica()  koja će zbrojiti dvije matrice.  Ako je $\mathbf{C} = \mathbf{A} + \mathbf{B}$,  onda je  $c_{i,j} = a_{i,j} + b_{i,j}$.  Stoga se matrice mogu zbrajati samo ako imaju isti broj redaka i isti broj stupaca, ali u funkciji ne trebate provjeravati tu činjenicu, jer ćemo smatrati da ćemo je upotrebljavati samo u tom slučaju.  Program izvedite s argumentima  $\mathbf{A} = \left[\begin{array}{rr} -1,\!1 & 2 \\ 3  & 1,\!3 \end{array}\right]$  i  $\mathbf{B} = \left[\begin{array}{rr} 1 & 2,\!1 \\ -3  & -1,\!2 \end{array}\right]$;  rezultat je matrica  $\left[\begin{array}{rr} -0,\!1 & 4,\!1 \\ 0  & 0,\!1 \end{array}\right]$.

       

 

2. zadatak

Napišite programsku funkciju  zbroj_pn()  koja će zbrojiti posebno pozitivne, a posebno negativne komponente matrice.  Program izvedite s argumentom  $\mathbf{A} = \left[\begin{array}{rrr} -1 & 2 & 0\\ 3  & 1 & -2 \\ 0,\!5 & 0 & -0,\!1 \end{array}\right]$;  rezultat je par $(6,\!5; -3,\!1)$.

       
       


3. zadatak za zadaću

Modificirajte funkciju  zbroj_pn()  iz 2. zadatka tako da dobijete funkciju  umnozak_pn()  koja vraća umnoške pozitivnih i negativnih komponenata matrice.  Za argument $\mathbf{A}$ iz 2. zadatka trebate dobiti par $(3; -0,\!2)$

       

 

4. zadatak za zadaću

Napišite programsku funkciju  najveci()  koje će pronaći najveću komponentu matrice.  Program izvedite za argument  $\mathbf{A} = \left[\begin{array}{rr} -1,\!1 & 2 \\ 3  & 1,\!3 \end{array}\right]$.  Trebate dobiti broj 3.

Provedite potrebne promjene u programskoj funkciji  najveci()  tako da nova funkcija vraća najmanju komponentu matrice; novu funkciju nazovite  najmanji().  Za argument $\mathbf{A}$ trebate kao rezultat dobiti $-1,\!1$.

       

 

5. zadatak za zadaću

Promijenite funkciju  najveci()  iz 4. zadatka za zadaću tako da umjesto najveće komponente vraća indekse retka i stupca u kojima se ta komponenta nalazi; funkciju nazovite  indeksi_najvecega().  Ako program izvedete za argument  $\mathbf{A} = \left[\begin{array}{rr} -1,\!1 & 2 \\ 3  & 1,\!3 \end{array}\right]$,  trebate kao rezultat dobiti par brojeva $(1, 0)$.

Provedite promjene analogne promjenama iz drugoga dijela 4. zadatka za zadaću.