Programiranje

3. predavanje

Ponavljanje naredbi, petlja Do

Pojam petlje

Petlja je takva  naredba (funkcije) koja omogućava da se neke druge naredbe jednom napišu a izvedu više puta.

Opći oblik funkcije Do

Do[izrazi, lista].

Znači funkcija Do ima dva argumenta :
prvi argument je niz izraza čije izvođenje se ponavlja (svaki izraz završava s točka zarezom ;),
drugi argument je lista pomoću koje se kontrolira koliko puta će se ponavljati izvođenje prvog argumenta.

3predavanje_1.gif    |    3predavanje_2.gif

Ponavaljanje naredbi u petlji Do

Sintaksa naredbe Do

Do[izrazi, {i, imin, imax, istep}]

Određivanje postupka ponavljanja

Na početku brojač  i poprima startnu vrijednost imin; ukoliko i nije veći od imax izrazi iz prvog argumenta se izvedu,

vrijednost brojača i poveća se za korak istep; ukoliko nova vrijednost nije veća od imax izrazi iz prvog argumenta se opet izvedu,

vrijednost brojača i se ponovo poveća za korak istep; ukoliko nova vrijednost nije veća od imax izrazi iz prvog argumenta se opet izvedu,

···

Na svakom koraku se vrijednsot brojača i promjeni tako da se staroj vrijednosti doda korak istep; kada vrijednost brojača i premaši imax funkcija Do završava  i program se nastavlja na prvoj slijedećoj naredbi iza Do.

Ako se brojač istep ne navede tada se  podrazumjeva da je jedank 1.

brojač se, naravno, ne mora zvati i; brojač, kako god ga zvali, je lokalna varijabla funkcije Do.

3predavanje_3.gif    |    3predavanje_4.gif

1. primjer petlje Do

Zadatak

Napišite program koji će učitati  prirodni broj  n i ispisati kvadrate svih brojeva od 1 do n.

Da bi osigurali pozitivnost argumenta koristiti ćemo izraz /; koji se koristi na slijedeći način.
      uzorak /; uvjet
Ovakav predložak zadovoljavaju svi izrazi koji zadovoljavaju i navedeni uzorak i navedeni uvjet.
Npr.  predložak
        n_Integer /; n >0
zadovoljavju svi izrazi koji imaju cjelobrojnu vrijednost uz uvjet da su pozitivni. U daljnjem se takvi izrazi zovu n.

Izrada

In[1]:=

3predavanje_5.gif

Testiranje

In[2]:=

3predavanje_6.gif

3predavanje_7.gif

3predavanje_8.gif

3predavanje_9.gif

3predavanje_10.gif

3predavanje_11.gif

3predavanje_12.gif

3predavanje_13.gif

In[3]:=

3predavanje_14.gif

Out[3]=

3predavanje_15.gif

3predavanje_16.gif    |    3predavanje_17.gif

2. primjer petlje Do

Zadatak

Napišite program koji prima kao argument vektor (listu) i vraća zbroj njenih elemenata.

U programu ćemo lokalnu varijablu zbroj postaviti na početnu vrijednost 0.

Izrada

In[4]:=

3predavanje_18.gif

Testiranje

In[5]:=

3predavanje_19.gif

Out[5]=

3predavanje_20.gif

3predavanje_21.gif    |    3predavanje_22.gif

3. primjer petlje Do

Zadatak

Napišite program koji prima kao argument vektor (listu) i vraća njezin minimalni elemenat.

U programu ćemo lokalnu varijablu min postaviti na početnu vrijednost Infinity.

izrada

In[6]:=

3predavanje_23.gif

Testiranje

In[7]:=

3predavanje_24.gif

Out[7]=

3predavanje_25.gif

3predavanje_26.gif    |    3predavanje_27.gif

Daljnje ideje

1. najveći sinus
2. najmanji kosinus
3. sinus najvećeg
4. kosinus najvećeg
5. aritmetička sredina negativnih
6. aritmetička sredina pozitivnih
7. gemoetrijska sredina pozitivnih

Notebook izradili: Vladimir Benić i Sonja Gorjanc

Spikey Created with Wolfram Mathematica 8.0