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]:=
Testiranje
In[2]:=
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]:=
Testiranje
In[4]:=
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]:=
Testiranje
In[6]:=
Out[6]=
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]:=
Testiranje
In[12]:=
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]:=
Testiranje
In[10]:=
Notebook izradili: Vladimir Benić i Sonja Gorjanc
Created by Wolfram Mathematica 6.0 (19 May 2008) |