петак, 3. април 2020.

While petlja ( 1 )


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

ciklus se izvršava sve dok je tekući član sume veći od tačnosti   tj. dovoljno veliki da utiče na sumu
 
    i=i+1
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


Нема коментара:

Постави коментар