While petlja ( 1 )
While petlja je programska
struktura koja ima istu namenu kao i for petlja.To znači da while petlja isto
omogućava ponavljanje određenog bloka naredbi. Naravno, razlika između ove
petlje i for petlje je u tome što while petlja ne sadrži brojač koji sadrži
for petlja. Brojač for petlji omogućava određivanje broja ponavljanja nekog bloka naredbi. While
petlja nema brojač, ali kao i for petlja ima uslov. Taj uslov joj omogućava da
se izvršavaju naredbe. Tako dugo dok je uslov ispunjen ponavljaj blok
naredbi. Ako uslov nije ispunjen, nemoj ponavljati taj blok naredbi. Tako
bismo mogli prevesti funkcionalnost while petlje.
While petlja je vrlo
jednostavna petlja koja omogućava ponavljanje kada je određeni uslov ispunjen.
Uslov u while petlji može biti određen: relacionim operatorima, logičkim
operatorima i aritmetičkim operatorima.
Primer 1.
Napisati program koji učitani
broj n transformiše tako što mu uklanja nule sa desne strane (npr. od 130000
pravi 13)
n=int(input('unesite broj'))
while n%10==0:
n=n//10
print(n)
Uslov za izvršavanje ciklusa
je da je broj deljiv sa 10 tj. da ima nulu sa desne strane. U svakom ponavljanju ciklusa eliminišemo po
jednu nulu celobrojnim deljenjem sa 10. Iz ciklusa se izlazi kada ostatak
celobrojnog deljenja više nije nula.
Primer
2:
Napisati program za približno računanje sume:
Sabirati do člana čija je vrednost manja
od zadate tačnosti (tj. određujemo u stvari na koliko decimala nam treba tačna
suma).
Inače, ova suma je u stvari vrednost
funkcije ex , eksponencijalne funkcije o kojoj puno slušamo za vreme ove epidemije virusa
Korona.
x=int(input('unesite x '))
tac=float(input('unesite tacnost '))
s=0
i=1
a=1 #prvi clan
sume
while a>=tac:
s=s+a
a=a*x/i #tekuci clan sume
|
print('s=',s)
Primer ispisa:
unesite x 1
unesite tacnost 1E-20
s= 2.7182818284590455
>>>
Pošto je uneta velika tačnost dobijamo broj e na 16 tačnih
decimala.
Primer 3:
Napisati
program koji će iz
niza brojeva nepoznate dužine izračunati posebno sume pozitivnih i negativnih
brojeva.
Pošto ne znamo koliko ima brojeva, unosićemo brojeve dok se ne
unese vrednost koja označava kraj. U ovom slučaju, završetak niza brojeva može
biti nula, jer ona svakako ne utiče na rezultat. Znači da će nam uslov za
izvršavanje ciklusa biti da uneti broj nije nula.
sp=0
sn=0
print('unesite broj, za kraj niza unesite nulu')
x=float(input('unesite x '))
while x!=0:
if x<0:
sn=sn+x
else:
sp=sp+x
x=float(input('unesite x
'))
print('suma pozitivnih',sp)
print('suma negativnih',sn)
ZADACI ZA VEŽBU:
1.
Napisati program koji za dati prirodan broj n
ispituje da li je stepen broja 3.
Uputstvo: Uslov za
izvršavanje je da je broj deljiv sa 3
U ciklusu broj transformišemo u njegov količnik sa
brojem tri
2.
Napisati program koji će iz niza brojeva
nepoznate dužine izračunati posebno sumu parnih i proizvod neparnih brojeva.
3.
Odrediti
najmanji broj uzastopnih brojeva počevši
od 1 čija je suma veća od unetog broja N
Uputstvo: Uslov za izvršavanje je da je suma <=N
U ciklusu računamo
sumu, uvećavamo broj za 1 i brojač za 1
Нема коментара:
Постави коментар