Strukture ponavljanja
Uvod u strukture ponavljanja
Uvod u strukture ponavljanja
- Često potrebno pisati kod koji izvršava isti zadatak više puta
- Ponovno pisanje istog koda nedostatak
- Čini program dugačkim
- Zahtijeva dosta vremena
- Može zahtijevati izmjene na mnogo mjesta
- Ponovno pisanje istog koda nedostatak
-
Strukture ponavljanja: kompjuter ponavlja izdvojeni kod po potrebi
- Uključuje petlje kontrolisane uslovom i petlje kontrolisane brojačem
while petlja
while petlja - eksperiment
import threading
a = 0
# svake sekunde ispisuje vrijednost
# varijable a
def work ():
threading.Timer(1, work).start()
print(a)
work ()
while True:
a += 1
>>> 0
>>> 24590458
>>> 46859024
while petlja
-
while petlja: dok je uslov tačan, izvršavaj
- Dva dijela:
- Provjeravanje uslova: tačan ili netačan
- Naredbe se ponavljaju sve dok je uslov tačan
- Dva dijela:
- U dijagramu toka linija se vraća na prethodni dio
while uslov:
naredba
naredba
while petlja
while petlja
- Da bi petlja završila sa izvršavanjem, nešto se mora desiti unutar same petlje što će rezultirati netačnim uslovom
- Iteracija/ponavljanje: jedno izvršavanje tijela petlje
-
while petlja je poznata kao pre-test petlja
- Testira uslov prije izvršavanja ponavljanja
- Neće se nikada izvršiti ukoliko je na samom startu uslov netačan
- Zahtijeva izvršavanje određenih koraka prije same petlje koji će izvršavati barem jedno izvršavanje tijela petlje
- Testira uslov prije izvršavanja ponavljanja
Beskonačne petlje
-
Petlje moraju unutar sebe sadržavati komande koje će prouzrokovati prekid
- Nešto unutar while petlje mora na kraju prouzrokovati netačan uslov
-
Beskonačna petlja: petlja koja nema način zaustavljanja
- Ponavlja se do prekida programa
- Javlja se kada programer zaboravi uključiti kod za zaustavljanje petlje
for petlja
for petlja
-
Petlja kontrolisana brojačem: ponavlja se predodređeni broj puta
- Naredba for se koristi za pisanje petlje kontrolisane brojačem
- Dizajnirana za rad sa sekvencom podataka
- Ponavlja se jednom za svaki element u sekvenci
- Ciljna varijabla: varijabla koj je meta dodjele na početku svakog ponavljanja
for varijabla in [vri1, vri2, itd]:
naredba
naredba
for petlja
Upotreba range funkcije sa for petljom
-
range funkcija pojednostavljuje proces pisanja for petlje
- range vraća ponavljajući objekat
- Ponavljajući objekat: sadrži sekvencu vrijednosti preko kojih se može ponavljati
- Primjer:
-
for broj in range(1, 5):
-
- range vraća ponavljajući objekat
-
Karakteristike range funkcije:
- Jedan argument: krajnje ograničenje
- Dva argumenta: početno i krajnje ograničenje
- Tri argumenta: treći argument vrijednost koraka
Upotreba ciljne varijable unutar petlje
- Svrha ciljne varijable je referenciranje svakog elementa u sekvenci prilikom ponavljanja petlje
-
Ciljna varijabla može biti upotrebljena u računanju ili zadacima u tijelu petlje
- Primjer: računanje kvadratnog korijena za svaki broj u rasponu
Dopuštanje korisniku da kontroliše broj ponavljanja petlje
- Nekada programer ne zna tačno koliko će se puta petlja izvršiti
-
Moguće dobiti ulazne podatke raspona od korisnika, pohraniti ih u varijable, i pozvati range funkcije u for odredbi koristeći ove varijable
- range ne uključuje krajnje ograničenje
Generisanje ponavljajuće sekvence od većih ka manjim vrijednostima
-
Moguće upotrijebiti funkciju range za generisanje sekvence sa opadajućim redoslijedom
- Osigurati da je početna vrijednost veća od krajnjeg ograničenja, te da je vrijednost koraka negativna
Računanje kumulativnog zbira
Računanje kumulativnog zbira
Računanje kumulativnog zbira
-
Programi često trebaju izračunati sumu serije brojeva
- Tipično uključuje dva elementa:
- Petlja koja čita svaki broj u seriji
- Varijablu koja akumulira vrijednost
- Na kraju petlje varijabla akumulator će sadržavati ukupni zbir vrijednosti
- Tipično uključuje dva elementa:
Računanje kumulativnog zbira
Prošireni operator dodjele
- Prilikom naredbi dodjele, često se desi da se varijabla koja se nalazi na lijevoj strani operatora = također pojavljuje i na desnoj strani ovog operatora
-
Prošireni operatori dodjele: poseban skup operatora dizajniranih za ovaj zadatak
- Operatori skraćenice
Indikatori
Indikatori
-
Indikator: specijalna vrijednost koja označava kraj niza elemenata
- Kada program naiđe na indikator, zna da je došao do kraja sekvence i prekida petlju
- Mora biti dovoljno karakteristična da se ne bi protumačila kao regularna vrijednost u sekvenci
- Primjer: prilikom čitanja ulaznog dokumenta, prazan red se može koristiti kao indikator
Umetnute petlje
for hours in range(24):
for minutes in range(60):
for seconds in range(60):
print(hours, ':', minutes, ':', seconds)
Umetnute petlje
Umetnute petlje
Umetnute petlje
Umetnute petlje
Umetnute petlje
- Ključne osobine umetnutih petlji:
- Unutrašnja petlja prolazi kroz sva svoja ponavljanja za svako ponavljanje vanjske petlje
- Unutrašnje petlje završe svoja ponavljanja brže od vanjskih petlji
Umetnute petlje
-
Umetnute petlja: petlja koja se nalazi u drugoj petlji
- Primjer: analogni sat radi poput uvučene petlje
- Kazaljka sati se pomjera jednom za svaki od 12 krugova kazaljke minuta: za svaki naredni „sat“, izvrši se 60 ponavljanja „minute“
- Kazaljka sekundi se pomjera jednom za svaki od 60 krugova kazaljke sekundi: za svaku narednu „minutu“, izvrši se 60 ponavljanja „sekundi“
- Primjer: analogni sat radi poput uvučene petlje
Programiranje I - P04
By Elmedin Selmanovic
Programiranje I - P04
- 1,320