Top Banner
Prirodoslovno-matematički fakultet, Split Funkcije
21
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 05 Vjezbe Funkcije Potprogrami v2

Prirodoslovno-matematički fakultet, Split

Funkcije

Page 2: 05 Vjezbe Funkcije Potprogrami v2

Python – stringovi

1. Napišite program koji učitava n riječi i ispisuje duljinu

najdulje riječi.

ispisati koja je to riječ…

n = eval(input("Koliko ima rijeci: "))

d = 0

for i in range(n):

rijec = input("Rijec: ")

if len(rijec)>d:

d = len(rijec)

dulja = rijec

print("Najdulja rijec: ", dulja, "duljine:", d)

Page 3: 05 Vjezbe Funkcije Potprogrami v2

Python – stringovi

2. Napišite program koji učitava n riječi i od svake

ispisuje prva tri slova s lijeva.

n = eval(input("Koliko ima rijeci: "))

for i in range(n):

rijec = input("Rijec: ")

print("3 slova s lijeva:", rijec[:3])

d = len(rijec)

print("3 slova s desna:", rijec[d-3:])

Page 4: 05 Vjezbe Funkcije Potprogrami v2

Python – stringovi

3. Napišite program koji učitava n riječi i svakoj nakon

trećeg znaka upiše abc

n = int( input("Koliko ima rijeci: ") )

for i in range(n):

r = input("Unesi rijec: ")

nova = r[0:3] + "abc" + r[3:]

print("Nova rijec: ", nova)

Page 5: 05 Vjezbe Funkcije Potprogrami v2

Python – stringovi

.find() vraća poziciju prvog pojavljivanja nekog

podstringa u stringu

string.find(podstring, pocetak, kraj)

• Napišite program koji učitava riječ i javlja mjesto na

kojem se pojavi ab

r = input("Unesi rijec: ")

poz = r.find("ab")

print("Poz: ", poz)

Možemo

izostaviti kraj,

ako želimo da

traži do kraja.

Zatim možemo

izostaviti i

početak, ako

želimo da traži

od zadanog

početka: 0

Page 6: 05 Vjezbe Funkcije Potprogrami v2

Python – stringovi

.upper() - pretvara slova u stringu u velika tiskana slova

string.upper()

• Napišite program koji učitava riječ i ispisuje tu riječ

velikim i malim slovima

r = input("Unesi rijec: ")

print(“Velika slova: ", r.upper())

print(“Mala slova: ", r.lower())

.lower() - pretvara slova u stringu u mala tiskana slova

string.lower()

Page 7: 05 Vjezbe Funkcije Potprogrami v2

Python Funkcije pretvorbi

• chr(n) – prevodi ASCII kod u odgovarajući znak

chr(65) “A”

• ord(x) – pretvara unešeni znak u ASCII vrijednost

ord(“B”) 66

Page 8: 05 Vjezbe Funkcije Potprogrami v2

Funkcije pretvorbi

int(x) – pretvara string u cijeli broj

(ako se sastoji od znamenki)

str(x) – pretvara brojnu vrijednost u string vrijednost

Page 9: 05 Vjezbe Funkcije Potprogrami v2

Aritmetičke funkcije

• round(broj,decimale)

zaokružuje broj na definirani broj decimala

• round(broj)

zaokružuje broj (bez decimala)

round(3.9) 4

• int(broj)

pretvara u cijeli broj tako da se odbaci decimalni dio

int(3.9) 3

Page 10: 05 Vjezbe Funkcije Potprogrami v2

Primjer – brojevi

• Napisati program koji će učitavati cijeli broj.

Ispitati da li je broj četveroznamenkast i da li mu

je suma prve i treće znamenka jednaka 8.

cb = int(input("Cijeli broj: "))

if 999<cb<10000:

print("je cetverozn.")

pz = int( cb / 1000 )

tz = int(cb / 10) % 10

if tz+pz==8:

print("suma je 8")

else:

print("Nije cetveroznam.")

Za izdvajanje znamenki s

lijeva, koristimo operator %,

a za znamenke s desna:

cjelobrojno dijeljenje s

potencijama broja 10

(ovisno o kojoj znamenci se

radi)

Page 11: 05 Vjezbe Funkcije Potprogrami v2

Zadaci

1. Za dani string ispisati sve podstringove duljina: 2, 3 i 4

2. Za dano slovo i dani string, odrediti sve pozicije na

kojima se u stringu pojavljuje slovo

3. U dani string nakon svakog samoglasnika dodati 2

znaka ovisno o samoglasniku (pa/pe/pi/po/pu)

• “zaista” => “zapaipistapa”

• “moramo razgovarati” => “moporapamopo

rapazgoporapavapatipi”

Page 12: 05 Vjezbe Funkcije Potprogrami v2

Zadaci 4. Napravi program koji traži da se unese ime i prezime u

jednu string varijablu, te ispiše svako slovo iz string varijable jedno ispod drugog.

5. Upisati rečenicu, pa ispisati broj pojavljivanja samoglasnika, ispisati je naopako.

6. Rastaviti prirodan broj na proste faktore.

7. Ispisati sumu svih dvoznamenkastih prostih brojeva.

Page 13: 05 Vjezbe Funkcije Potprogrami v2

Zadaci

8. Za broj kažemo da je savršen ako je jednak sumi svojih

djelitelja (osim samog sebe)

Npr. 6 = 1+2+3

Ispitati je li dani broj savršen

Odrediti sve savršene brojeve između 1 i 500

9. Odrediti sve brojeve u rasponu od 1 do 100 koji su

istovremeno djeljivi sa nekoliko brojeva.

Npr. 2,3,5

Page 14: 05 Vjezbe Funkcije Potprogrami v2

Primjer Napisati program koji ce od korisnika tražiti unos prirodnog broja n.

Ponavljati unos dok se ne unese n>0. Ispisati poruku je li paran ili

neparan.

Program zatim pita korisnika da li želi ponoviti unos. Samo ako korisnik

unese D ili d, ponavlja se unos.

*** Pseudokod ***

1. ponavljaj dok se unosi "D" ili "d"

1.1 ponavljaj dok ne bude n>0

1.2.1 ucitaj broj n

1.2 ako je broj paran onda ispiši poruku "Broj je paran"

a u protivnom ispiši poruku "Broj je neparan"

2. kraj

Napomena: broj je paran ako je ostatak kod dijeljenja s 2=0

Page 15: 05 Vjezbe Funkcije Potprogrami v2

Algoritmi pretvorba dekadskog broja u binarni početak

br

cijeli = br

ost = cijeli MOD 2

cijeli = cijeli \ 2

ost

cijeli=0

NE

kraj

Napravite dijagram toka i program za

pretvorbu dekadskog broja u binarni

broj.

br cijeli ost

26 26

13 0

6 1

3 0

1 1

0 1

Page 16: 05 Vjezbe Funkcije Potprogrami v2

Algoritmi brojenje znamenki

Napravite dijagram toka i program za

brojenje znamenki unesenog broja

(npr. za uneseno 324 daje 3).

br n cijeli

324 0 324

1 32.4

2 3.24

3 0.324

početak

br

cijeli = cijeli / 10

n=0

n=n+1

cijeli < 1

cijeli = br

NE

n

kraj

U ovom algoritmu se

koristi dijeljenje s

decimalnim dijelom,

te se dijeli dok broj ne

postane manji od 1.

Broj koraka je broj

znamenki.

Page 17: 05 Vjezbe Funkcije Potprogrami v2

Algoritmi pretvorba

Napravite dijagram toka i

program za pretvaranje binarnog

broja u dekadski.

Cjelobrojno dijeljenje

(u Pythonu se piše / /):

cijeli = cijeli // 10

U ovom algoritmu se

koristi cjelobrojno

dijeljenje (bez

decimala), te se dijeli

dok broj ne postane

jednak nuli.

Broj koraka je broj

znamenki.

Page 18: 05 Vjezbe Funkcije Potprogrami v2

Algoritmi pretvorba

Napravite dijagram toka i

program za pretvaranje binarnog

broja u dekadski.

br n cijeli dek i z

101 0 101

1 10

2 1

3 0

0

10 0+1*20=1 0 1

1 1+0*21=1 1 0

0 1+1*22=5 2 1

Page 19: 05 Vjezbe Funkcije Potprogrami v2

Prirodoslovno-matematički fakultet, Split

Korisničke funkcije

Potprogrami

Page 20: 05 Vjezbe Funkcije Potprogrami v2

Primjer

1. Napravi program koji će pomoću funkcije

(potprograma) za uneseni početni član niza,

zadnji član niza i razmak između dva susjedna

elementa niza ispisati sve elemente aritmetičkog

niza. Na primjer za parametre 3,10,2 treba ispisati 3 5 7 9

def Racunaj(p,z,k):

for i in range(p,z+1,k):

print(i)

p,z,k = eval(input(“Prvi,zadnji,korak: "))

Racunaj(p,z,k)

Page 21: 05 Vjezbe Funkcije Potprogrami v2

Primjer 2. Napravi program koji pomoću funkcije ispisuje

broj pojavljivanja slova A u danom stringu (string se prenosi kao parametar)

def Broji(s):

d = len(s)

br = 0

for i in range(d):

if s[i]=="A" or s[i]=="a":

br = br+1

return br

#glavni program

tekst = input("Unesi string: ")

print("Broj slova A:", Broji(tekst))