x
Učitavanje

3.2 Ulaz – obrada - izlaz

Što ću naučiti?
Europska unija - Zajedno do fondova EU
Prethodna jedinica Sljedeća jedinica
Sadržaj jedinice icon sadržaj jedinice

Na početku...

Šime je mlađeg brata Josipa uspio zainteresirati za programiranje. Istraživanje o tome kako napraviti program koji korisnika pozdravlja njegovim imenom postalo je njihov zajednički projekt te se njih dvojica neće smiriti dok ne ostvare cilj projektnog zadatka.

Šime i Josip u svijetu programiranja
Šime i Josip prvi put programiraju u Pythonu. Vidimo obojicu s leđa kako gledaju u zaslon prijenosnog računala na kojem bijelim slovima piše

U prethodnoj jedinici objasnili smo što je varijabla te smo upisivali vrijednosti u varijable.

Josipa to nije zadovoljilo. Zahtijevao je da Šime napravi program koji ga pozdravlja njegovim imenom. Čak ni to Josipu nije bilo dovoljno, jer je htio programom impresionirati prijateljicu Maju, i to tako da i nju pozdravi njezinim imenom. Šime je zaključio da im treba univerzalni program koji će, svakoga onoga tko ga koristi, pozdraviti njegovim imenom. Bacio se na istraživanje.

Kako korisnik unosi vlastite vrijednosti u varijable? Prije nego što ponudimo odgovor na to pitanje, ukratko ćemo objasniti pojam algoritma te jedan od načina zapisivanja algoritma, dijagram toka.

Algoritam

Algoritam

Algoritam je skup koraka kojima se rješava neki problem, a koraci se izvode zadanim redoslijedom.

Algoritam se može zapisati na više različitih načina i to tako da ga:

  1. opišemo riječima govornog jezika 
  2. prikažemo dijagramom toka 
  3. koristimo naredbe nekog programskog jezika.

Kutak za znatiželjne

Želiš li saznati više o algoritmima, posjeti Edutorij, i to jedinicu 2.1 modula šestog razreda!

Pogledajmo na primjeru kako se sastavlja dijagram toka:

Pomoću prethodnog videoprimjera, sastavi sljedeći interaktivni dijagram toka za algoritam u koji se unosi ime te se ono ispisuje s pozdravom:

Unos

Različiti programski jezici imaju različite naredbe za unos vrijednosti. Python za unos koristi naredbu input(). Unutar zagrada naredbe input() upisujemo tekst koji služi programu da od korisnika zatraži i dobije neki podatak. Ostavimo li zagradu praznom, tada korisnik neće znati što se od njega traži.

Osnovni tipovi podataka

Kao što smo već spomenuli u prethodnoj jedinici, programski jezik pohranjuje podatke nekog tipa u varijable. Osnovni tipovi podataka u Pythonu jesu sljedeći:

  • cijeli broj (npr. 1, 23, ...)
  • decimalni broj (npr. 3.14, 6.65, ...)
  • logički tip (True, False)
  • znakovni niz (npr. 'Python', 'informatika', ...)

Na sljedećih nekoliko primjera pokazat ćemo kako se unose osnovni tipovi podataka u Pythonu.

Primjer 1.

Sljedeći primjer prikazuje upotrebu naredbe za unos cijelih brojeva:

Program unosi cijele brojeve a b te ispisuje njihov zbroj.

Pomoć:

U varijable a i b pohranjujemo cijele brojeve tako da se naredba input mora staviti unutar naredbe int.

U varijablu zbroj pohranjujemo zbroj sadržaja varijabli a i b te ga ispisujemo naredbom print.

null

U prethodnom primjeru naredbu input() stavili smo unutar naredbe int(). Time smo definirali da unosimo cijeli broj koji se u informatičkom svijetu naziva integer, skraćeno int.

Integer

Integer je tip podataka koji predstavlja cijeli broj.

Kada unosimo decimalne brojeve, naredbu input() stavljamo unutar naredbe float().

Float

Float je tip podataka koji predstavlja decimalni broj.

Primjer 2.

Sljedeći primjer prikazuje upotrebu naredbe za unos decimalnih brojeva:

Program unosi dva decimalna broja te ispisuje njihovu razliku.

Pomoć:

U varijable a i b pohranjujemo decimalne brojeve tako da se naredba input mora staviti unutar naredbe float. U varijablu razlika pohranjujemo razliku sadržaja varijabli a i b te je ispisujemo naredbom print.

null

Prilikom unosa slova i ostalih znakova, naredbu input() ne stavljamo unutar drugih naredbi, budući da Python za svaki unos unaprijed pretpostavlja da je znakovni. Znakovni se niz u informatičkom svijetu naziva string, a skraćenica je str.

String

String je tip podataka koji predstavlja znakovni niz.

Šime konačno ima dovoljno znanja za pisanje programa koji je zatražio Josip.

Dovrši program u koji korisnik unosi ime te ga ispisuje uz poruku ", pozdrav!".

Pomoć:

Za ispis koristimo funkciju print, pri čemu, unutar zagrada, zapišemo varijablu ime te odvojeno zarezom unutar navodnika ', pozdrav!'.

Postupak:

ime = input('Unesi ime: ')

print(ime, ', pozdrav!')

Osim unosa znakova, programe često koristimo za razna računanja. Pogledajmo koje aritmetičke operacije podržava Python:

Aritmetički operatori

Operator Opis
+ zbrajanje
- oduzimanje
* množenje
/ dijeljenje
// cjelobrojno dijeljenje (div)
% ostatak pri cjelobrojnom dijeljenju (mod)

Zbroj i razliku već ste koristili, a množenje i dijeljenje vam je, također, poznato. Cjelobrojno dijeljenje i ostatak pri dijeljenju zahtijevaju pojašnjenje:

Cjelobrojno dijeljenje (div) i ostatak pri cjelobrojnom dijeljenju (mod)

Cjelobrojno dijeljenje (div)

Cjelobrojno dijeljenje u informatici nazivamo div (eng. integer division - cjelobrojno dijeljenje), a računa se tako da se za rezultat uzme samo cijeli dio količnika.

Ostatak pri cjelobrojnom dijeljenju (mod)

Ostatak pri cjelobrojnom dijeljenju u informatici nazivamo mod (skraćeno od modulo), a predstavlja ostatak pri dijeljenju dva cijela broja. Ostatak pri dijeljenju dva cijela broja uvijek je cijeli broj.

Cjelobrojno dijeljenje i ostatak pri cjelobrojnom dijeljenju možemo objasniti na primjeru pizza partyja.

Ako bismo prethodni primjer stavili na papir, dobili bismo sljedeće:

Šime i Josip cjelobrojno su podijelili pet isječaka pizze na njih dvojicu te su svakome pripala dva isječka:

5   d i v   2   =   2

Ostao je jedan isječak pizze koji je pripao njihovu ocu.

5   m o d   2   =   1

Ostatak pri cjelobrojnom dijeljenju najlakše je izračunati tako da rezultat operacije div pomnožimo s djeliteljem ( 2 · 2 = 4 ) te oduzmemo rezultat od djeljenika ( 5 - 4 = 1 ).

Te dvije operacije vrlo se često koriste pri rješavanju problema programiranjem. Pogledajmo na primjeru:

Primjer 3.

Zbrojimo znamenke dvoznamenkastoga broja.

Program unosi dvoznamenkasti broj a, rastavlja ga na znamenke te ispisuje njihov zbroj.

Kako bismo dobili znamenku jedinica, dovoljno je izračunati ostatak pri dijeljenju broja s deset.

Primjerice, 23   m o d   10   =   3 .

Kako bismo izračunali znamenku desetica u dvoznamenkastom broju, dovoljno je cjelobrojno podijeliti broj s deset. Primjerice, 23   d i v   10   =   2 .

Cjelobrojnim dijeljenjem broja s deset, broju uklanjamo posljednju znamenku.

Pogledajmo kako bismo to napisali u programskom jeziku Python:

Upari operacije s lijeve strane s rezultatima tih operacija s desne strane:

7 m o d 4  
1  
5 d i v 3  
3  
10 d i v 5  
0  
10 m o d 2  
2  
null
null

Relacijski operatori

Ako bismo htjeli provjeriti u kakvom su odnosu znamenke jedinice i desetice iz prethodnog primjera, potrebni su nam relacijski operatori.

Opis Matematika Python
manje < <
manje ili jednako < =
veće > >
veće ili jednako > =
jednako = = =
različito ! =

U prethodnoj jedinici napomenuli smo da se znak jednakosti u programiranju koristi za pridruživanje vrijednosti. Ako želimo usporediti jesu li dvije vrijednosti jednake, koristimo dva znaka jednakosti, kao što je navedeno u tablici.

Isprobajmo sljedeći program unosom nekog dvoznamenkastog broja:

Primjer 4.

Sljedeći primjer prikazuje upotrebu cjelobrojnog dijeljenja te računanja ostatka pri dijeljenju:

Program unosi dvoznamenkasti broj te ispisuje je li znamenka desetica jednaka znamenki jedinica.

Pomoć:

Nakon što smo unijeli a, računamo njegove desetice i jedinice. Desetice dobivamo tako da broj cjelobrojno podijelimo s deset, a jedinice tako da izračunamo ostatak pri dijeljenju broja s deset. U posljednjem redu ispisujemo provjeru jednakosti desetica i jedinica.

Postupak:

a = int(input('Unesi a: '))

desetice = a // 10

jedinice = a % 10

print(desetice == jedinice)

Do sada smo nabrojili tri osnovna tipa podataka u Pythonu: integer, float i string. Pokretanjem prethodnog programa primijetit ćete da je vrijednost relacijskog izraza binarna, odnosno ili True (istina) ili False (neistina). Istinu i neistinu zovemo logičkim vrijednostima, a tip podataka kojem pridružujemo logičke vrijednosti bool.

Kutak za znatiželjne

Želiš li znati više o logičkim vrijednostima, posjeti Edutorij, drugi modul šestog razreda osnovne škole te Edutorij, treći modul prvog razreda srednje škole.

Bool

Logički tip podataka (bool ili boolean) ima samo dvije vrijednosti: True (istina) ili False (neistina).

...i na kraju

Ovom jedinicom napravili smo velik skok. Od običnog "Hello, World!" iz prethodne jedinice, došli smo do složenih odluka u algoritmima. Sve ovo gradivo detaljno je pojašnjeno u modulima koji se tiču programiranja šestog razreda i prvog razreda srednje škole.

Josip je Šimi zadao nov zadatak. Ovaj put htio je da program ispisuje poruku o tome je li neki uvjet zadovoljen ili nije. Pogledajmo sljedeću jedinicu.

Povratak na vrh