Prirodoslovno-matematički fakultet, Split Funkcije
Oct 25, 2014
Prirodoslovno-matematički fakultet, Split
Funkcije
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)
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:])
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)
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
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()
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
Funkcije pretvorbi
int(x) – pretvara string u cijeli broj
(ako se sastoji od znamenki)
str(x) – pretvara brojnu vrijednost u string vrijednost
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
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)
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”
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.
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
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
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
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.
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.
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
Prirodoslovno-matematički fakultet, Split
Korisničke funkcije
Potprogrami
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)
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))