Programiranje

5. predavanje

Petlja While

Uvod

Petlja  je, kao što znamo, programska konstrukcija koja omogućava da se neke naredbe jednom napišu a izvrše više puta. Do sada smo upoznali samo petlju Do.  Ona ima slijedeće svosjstvo: ako su poznati svi podaci u kontrolnoj liste petlje tada je poznat i broj ponavljanja te petlje.

Postoji i druga vrsta petlji kod kojih se broj ponavljanja može, dinamički, tokom izvođenja mijenjati. Takva je i petlja While.

Sintaksa i semantika petlja While

Sintaksa je
            While[logički izraz,  izrazi].
Petlja se izvodi na slijedeći način:
• testira se istinitost logičkog izraza i ako je istinit tada se izvedu navedeni izrazi;
• testira se istinitost logičkog izraza i ako je istinit tada se izvedu navedeni izrazi;
• testira se istinitost logičkog izraza i ako je istinit tada se izvedu navedeni izrazi;
:
• testira se istinitost logičkog izraza i ako logički izraz nije istinit prekida se izvođenje naredbe While i prelazi se na prvu naredbu iza nje.

Napomena: u logičkom izrazu se mogu nalaziti varijable koje tokom ponavljanja izvođenja možemo mijenjati pa se istinitost tog izraza može promijeniti tokom izvođenja petlje.

1. primjer petlje While

Zadatak

Koristeći petlju While napišite program koji ima kao argument prirodan broj n  i ispisuje sve neparene brojeve manje od  n.

Izrada

In[1]:=

"5predavanje_1.gif"

Testiranje

In[2]:=

"5predavanje_2.gif"

"5predavanje_3.gif"

"5predavanje_4.gif"

"5predavanje_5.gif"

"5predavanje_6.gif"

"5predavanje_7.gif"

"5predavanje_8.gif"

"5predavanje_9.gif"

"5predavanje_10.gif"

2. primjer petlje While

Zadatak

Koristeći petlju While napišite program koji ima kao argument prirodan broj n  i ispisuje sve parne brojeve manje od  n. Promjene u odnosu na predhodni primjer napisane su ovom bojom.

Izrada

In[3]:=

"5predavanje_11.gif"

Testiranje

In[4]:=

"5predavanje_12.gif"

"5predavanje_13.gif"

"5predavanje_14.gif"

"5predavanje_15.gif"

"5predavanje_16.gif"

"5predavanje_17.gif"

"5predavanje_18.gif"

"5predavanje_19.gif"

3. primjer petlje While

Zadatak

Napišite program koji će učitavati brojeve, jedan po jedan koristeći naredbu Input i odrediti najveći učitani. Postupak učitavanja brojeva se prekida kada se učita broj 0.

Izrada

In[5]:=

"5predavanje_20.gif"

Testiranje

In[6]:=

"5predavanje_21.gif"

Out[6]=

"5predavanje_22.gif"

4. primjer petlje While, pogodi broj

Zadatak

Napišite program koji će na slučajan način zamisliti cijeli broj između 1 i 100 i tražiti da ga pogodimo. Program završava s radom kada pogodimo zamišljeni broj.

Da bi računalo slučajno zamislilo broj koristiti ćemo funkciju RandomInteger[{m, n}] koja generira slučajan cijeli broj između cijelih brojeva m i n. Točnije funkcija generira "pseudoslučajan broj".

Izrada

In[7]:=

"5predavanje_23.gif"

Testiranje

In[12]:=

"5predavanje_24.gif"

"5predavanje_25.gif"

"5predavanje_26.gif"

"5predavanje_27.gif"

"5predavanje_28.gif"

"5predavanje_29.gif"

"5predavanje_30.gif"

"5predavanje_31.gif"

5. primjer petlje While, pogodi broj ali malo lažem

Zadatak

Napišite program koji će na slučajan način zamisliti cijeli broj između 1 i 100 i tražiti da ga pogodimo. Pri davanju odgovora
1. ako nismo pogodili broj program laže u 25% slučajeva,
2. ako smo pogodili broj tada program ne laže.

Program završava s radom kada pogodimo zamišljeni broj.

Da bi računalo slučajno zamislilo broj koristiti ćemo funkciju RandomInteger[{m, n}] koja generira slučajan cijeli broj između cijelih brojeva m i n. Točnije funkcija generira "pseudoslučajan broj".
Za generiranje realnog broja između 0 i 1 koristiti ćemo funkciju RandomReal[].

Izrada

In[9]:=

"5predavanje_32.gif"

Testiranje

In[10]:=

"5predavanje_33.gif"

Notebook izradili: Vladimir Benić i Sonja Gorjanc


Created by Wolfram Mathematica 6.0  (19 May 2008) Valid XHTML 1.1!