3. vježbe

Primjer 3-1

Zadatak

Napišite program koji će imati jedan realan argument x i jedan argument n koji je prirodan broj. Program će, koristeći petlju Do, ispisati sve potencije od x s eksponentom od 1 do n, tj. program treba ispisati (x^1)  (x^2)  (x^3) … (x^n).

Ponovima s predavanja:
predložak ("šprancu")
            uzorak /; uvjet
zadovoljavaju svi izrazi koji zadovoljavaju navedni uzorak uz zahtjev da zadovoljavaju i navedani uvjet.

Izrada

pot[x_Real, n_Integer/;n>0] := Module[{},
Do[Print[x^i];, {i, 1, n}];
];

Testiranje

pot[3., 5]

pot[3., -5]

Varijante

a) promijenite program tako da ispisuje neparne potencije baze x.
b) promijenite program tako da ispisuje parne potencije baze x.

Do[Print[x^i];, {i, 1, n, 2}];
Do[Print[x^i];, {i, 2, n, 2}];

Primjer 3-2

Zadatak

Napišite program koji ima za argument jednodimenzionalnu listu i računa umnožak pozitivnih elemenata te liste.

a) Za određivanje broja elemenata liste koristiti ćemo funkciju Length[].
b) i-ti element liste dobijemo sa  lista[[i]].

Izrada

umnozak[x_List] := Module[{m, u=1},
(* 
   m = broj elemenata liste
u = umnožak elementa
*)
m=Length[x];
Do[
If[ x[[i]]  > 0, u = u*x[[i]]; ];
,
{i,1, m }
];
Return[u];
];

Testiranje

umnozak[ { 2, -5, -3, 4, 5} ]

Varijacije

Navedite što treba promijeniti da program računa
a) umnožak negativnih elemenata liste
b) umnožak elemenata liste koji su veći od 3
c) sumu elemenata liste koji su veći od 3

If[ x[[i]]  < 0, u = u*x[[i]]; ];
If[ x[[i]]  > 3, u = u*x[[i]]; ];
(* u=0 *)  If[ x[[i]]  > 3 , u = u+x[[i]]; ];