You are on page 1of 15

FUNKCIJE

PRIMJER. Što radi program?


def zbroj(x,y):
return(x+y)
a1=int(input())
a2=int(input())
b1=int(input())
b2=int(input())
print(zbroj(a1,a2))
print(zbroj(b1,b2))
print(zbroj(zbroj(a1,a2),zbroj(b1,b2)))
ISPIS.
1
2
3
4
3
7
10
OPIS
• malidijelovi programa koji se pišu jednom, a upotrebljavaju
više puta
•u trenutku poziva, odrade svoj dio posla i vrate kontrolu onome
tko ih je pozvao
• koriste
se kad veliki problem treba podijeliti na manje dijelove ili
kad više osoba paralelno radi na programskom kodu
• primjeri funkcija. input(), print(), len(), range()
OPĆI OBLIK
def ime_funkcije( popis_parametara):
blok naredbi
return vrijednost

• popis parametara definira koliko će se vrijednosti proslijediti


funkciji u trenutku poziva
• naredba return u program vraća vrijednost zbog koje se funkcija
pisala
PRIMJER.
def zbroj(x,y): # x i y su parametri
return(x+y) # vraća zbroj
FORMALNI I STVARNI PARAMETRI
• formalni parametri – parametri najavljeni u definiciji funkcije, preko njih
funkcija komunicira s glavnim programom
( u primjeru su to x i y )
• stvarni parametri – parametri koji se pri pozivu funkcije nalaze na mjestu
formalnih parametara ( u primjeru su to a1, a2, b1, b2 )
• u trenutku poziva funkcije formalni parametri redom dobivaju vrijednosti stvarnih
parametara
NAČINI PRIJENOSA PARAMETARA
• po vrijednosti ( call by value ) - funkcija prima kopije stvarnih parametara i ne
može ih mijenjati tijekom rada
• po adresi ( call by reference ) - funkcija prima adresu na kojoj je zapisan stvarni
parametar i može ga mijenjati tijekom rada
• u Pythonu prijenos po adresi
• promjena formalnog parametra unutar funkcije ne mijenja stvarni parametar
kojim je pozvana ako se radi o tipu int, float, string ili N-torki
• promjena formalnog parametra unutar funkcije tipa lista mijenja vrijednost
stvarnog parametra
PRIMJER. Što radi program?
def savrsen (x):
zbroj = 0
for i in range(1,x):
if x%i == 0: zbroj + = i
if zbroj == x: return(True)
else : return(False)

for i in range (1,100):


if savrsen(i) : print(i)
RJEŠENJE.
• ispisuje sve brojeve od 1 do 100 čiji je zbroj djelitelja
jednak tom broju ( savršeni brojevi )

ispis:
6
28
LOKALNE I GLOBALNE
VARIJABLE
• lokalna varijabla - varijabla koja se prvi puta pojavljuje unutar funkcije
- dostupna je samo unutar funkcije
- u različitim funkcijama mogu biti varijable istog
imena

• globalna varijabla - varijabla koja se prvi puta pojavljuje u glavnom


programu
- dostupna u svim dijelovima programa
- može se mijenjati samo unutar glavnog programa
ZADATAK.
Napisati program koji ispisuje faktorijele prvih 10
prirodnih brojeva. Faktorijelu broja naći u funkciji
( n!=1·2···n ).
RJEŠENJE.
def faktor(x):
p=1
for i in range(1,x+1):
p*=i
return(p)
for i in range (1,11):
print(faktor(i))
ISPIS.
1
2
6
24
120
720
5040
40320
362880
3628800
DOMAĆA ZADAĆA.
1. Napisati program kojim se učitava jedan cijeli broj i ispisuje njegov kvadrat.
Kvadrat broja naći u funkciji.
2. Napisati program kojim se učitavaju realni brojevi ( dok se ne učita broj manji
od -15 ) te potencija koju ćemo za njega računati. Ispisati potencije učitanih
brojeva . Potencije naći u funkciji.
3. Napisati program koji učitava prirodne brojeve m i n ( m<n ) i ispisuje za sve
brojeve od m do n koliko jedinica sadrži njihov binarni zapis. Broj jedinica naći u
funkciji.

You might also like