You are on page 1of 19

SVEUČILIŠTE/UNIVERZITET„VITEZ“ U TRAVNIKU

FAKULTET INFORMACIONIH TEHNOLOGIJA

STUDIJ I CIKLUSA; GODINA STUDIJA: I CIKLUS; I GODINA

SMJER: INFORMACIJSKE TEHNOLOGIJE

Pejković Arnel

PSEUDO KOD

SEMINARSKI RAD

Travnik 20.11.2020
SVEUČILIŠTE/UNIVERZITET „VITEZ“ U TRAVNIKU

FAKULTET INFORMACIONIH TEHNOLOGIJA

STUDIJ I CIKLUSA; GODINA STUDIJA; I CIKLUS; I GODINA

SMJER: INFORMACIJSKE TEHNOLOGIJE

PSEUDU KOD

SEMINARSKI RAD

IZJAVA:

Ja Arnel Pejković, student Sveučilišta/Univerziteta „Vitez“ u Travniku, Indeks


broj:133-19/RIIT odgovorno i uz moralnu i akademsku odgovornost izjavljujem da
sam ovaj rad izradio potpuno samostalno uz korištenje citirane literature i pomoć
predetnog profesora.

STUDENT: Pejković Arnel

PREDMET:Strukture podataka i algoritmi

MENTOR: Prof. Mahir Zajmović

Potpis studenta:____________
SADRŽAJ
1. UVOD...................................................................................................................1
1.1. Svrha i cilj istraživanja...................................................................................1
1.2. Struktura rad...................................................................................................1
1.3. Radna hipoteza...............................................................................................1
2. PSEUDOKOD ILI PSEUDOJEZIK.........................................................................2
2.1. Aritmetički operatori..........................................................................................4
2.2. Logički operatori................................................................................................5
2.3. Relacijski operatori............................................................................................5
2.4. Prioritet operatora..............................................................................................6
2.5. Definiranje funkcije...........................................................................................6
3. NAREDBE U PSEUDO JEZIKU.........................................................................7
3.1. Ucitavanje i ispisivanje..................................................................................7
3.2. Pridruživanje..................................................................................................7
3.3. Grananje.........................................................................................................9
3.4. Petlje (for i while petlja)..............................................................................10
4. ZAKLJUČAK.....................................................................................................12
5. LITERATURA....................................................................................................13
5.1. Tekstovi sa interneta....................................................................................13
5.2. Popis slika....................................................................................................13
1. UVOD

U ovom seminarskom radu obradit ćemo pseudokod kao jedan od šest načina
zapisivanja algoritama.

Pseudokod je programski kod napisan običnim jezikom koji se koristi u udžbenicima


programiranja da bi se objasnio određeni algoritam bez korištenja konkretnog
programskog jezika.

1.1. Svrha i cilj istraživanja

Svrha ovog seminarskog rad je da istražimo o pseudokodu, dati objasnjenje, navesti


neke primjere i objasniti ih.

1.2. Struktura rad

Struktura rada je takva da je seminar napravljen od tri cjeline: uvod, razrada teme to
jest glavni dio seminarskog rada i na kraju samog seminara zaključak. U uvodu
imamo svrhu istraživanja ove teme, dok u glavnom djelu imamo malo opširnije o
njoj.

1.3. Radna hipoteza


 Pseudokod je programski kod napisan običnim jezikom koji se koristi da bi se
objasnio određeni algoritam bez korištenja konkretnog programskog jezika.

1
2. PSEUDOKOD ILI PSEUDOJEZIK

Riječ pseudokod potječe od starogrčke riječi pseudēs – laž i riječi kod, te bi bukvalan
prijevod na bosanski jezik bio «lažni kod».

Slijedi primjer koda u programskom jeziku C i njemu odgovarajućeg pseudokoda na


bosanskom jeziku, koji služi za opis algoritma izračunavanja faktorijela cijelog broja:

Pseudokod u mnogim slučajevima može biti još deskriptivniji i slobodnijeg stila


nego što je ovaj u gore navedenom primjeru. U pisanju pseudokoda se često koriste i
sintakse postojećih programskih jezika, kao što su se u datom primjeru koristile C-
ove vitičaste zagrade za početak bloka i obične zagrade za ograničavanje izraza.
Moguće je pozajmljivati sintaksu iz programskog jezika koji su najsrodniji jeziku u
kojem se programira ili čitaocima kojima je pseudokod namijenjen. Pri pisanju
pseudokoda izbjegavamo opisivanje dijelova algoritma koji nisu vezani za suštinu
rješenja ili koji su vezani za gradivo koje potencijalni čitalac nije savladao. Tako,
najčešće se ne opisuje memorijska alokacija, tipovi podataka, tip rezultata, funkcije
itd. Da bismo algoritam mogli izvoditi na kompjuteru, moramo ga kodirati u nekom
programskom jeziku. Kod mora biti potpuno u skladu sa sintaksom izabranog
formalnog jezika i algoritam mora biti do kraja precizno opisan, čak i detalji koji
nam se čine jasnima iz konteksta. Ako je naš algoritam namijenjen za čitanje
ljudima, možemo ga zapisati na manje formalan način. Možemo si dozvoliti
slobodniju sintaksu i detaljno raspisati samo bitne dijelove algoritma. Takav način
zapisivanja algoritama naziva se pseudojezik ili pseudokod. Pseudojezik se koristi u
mnogim knjigama i člancima koji se bave algoritmima, ali zapravo ne postoji
standardna verzija pseudojezika. Ovisno o kontekstu koristi se sažetiji ili detaljniji
način zapisivanja algoritama. Dijelove algoritma možemo zamijeniti pojedinačnim

2
naredbama, opisati ih prirodnim jezikom, ili ih raspisati do u detalje kao u pravom
programskom jeziku. U ovom poglavlju upoznat ćemo se sa stilom pisanja
pseudokoda. U pravilu ćemo algoritme zapisivati dosta detaljno, tako da ih se lako
može prevesti na neki pravi programski jezik. Algoritam, odnosno kompjuterski
program, sastoji se od niza naredbi koje se izvode redom kojim su napisane. U
pseudojeziku za naredbe koristimo bosanske riječi.

Zapisujemo ih uspravnim slovima, jednu ispod druge. Ponekad je potrebno grupirati


nekoliko uzastopnih naredbi u jednu cjelinu, što činimo uglastim zagradama:

prva naredba
[ druga naredba
tećanaredba

Ulazni podaci, međurezultati i rezultati proračuna pohranjuju se u varijablama.


Varijable ćemo označavati s jednim ili više kosih slova. Slično kao u programskom
jeziku Python, nećemo deklarirati tip podataka koji spremamo u varijable. Spomenuli
smo da algoritam uzima ulazne podatke i vraća izlazne podatke, koji predstavljaju
rješenje. Za ulaz i izlaz podataka u pseudojeziku koristimo naredbe ‘učitaj’ i ‘ispiši’.

Program ''Hello world!'' u pseodokodu bi izgledalo ovako:

Ispiši ''Hello world!''

Ovaj program doslovno ispisuje tekst u navodnicima. Ako iza naredbe ‘ispiši’
stavimo ime varijable (bez navodnika), neće se ispisati ime nego sadržaj pohranjen u
varijabli. Iza naredbe za ulaz podataka uvijek stoji ime jedne ili više varijabli u koje
će se učitani podaci spremiti.

3
Algoritmi su opisani pseudo jezikom koji ima elemente svih programskih jezika, nije
osjetljiv na velika i mala slova. Opis pseudo jezika nalazi se u sljedećim slikama:

Slika 1: Opis pseudo jezika.

Slika 2: Opis psudojezika.

2.1. Aritmetički operatori

Aritmetički operatori koriste se za izračunavanje aritmetičkih izraza. U C-u su


definirani sljedeći aritmetički operatori: + (zbrajanje), - (oduzimanje), *
(množenje), / (dijeljenje) i % (ostatak pri cjelobrojnom dijeljenju). Često se u
programu traži izračunavanje različitih aritmetičkih izraza. U tu svrhu koriste se
aritmetički operatori i matematičke funkcije. U ovoj cjelini pobliže ćemo upoznati
aritmetičke operatore, dok ćemo matematičke funkcije ostavit za kasnije. Aritmetički
operatori koriste se kada program treba izračunati rezultate osnovnih matematičkih
funkcija.

4
5
Slika 3: Aritmetički operatori.

2.2. Logički operatori

Logički operatori su unarni i binarni operatori koji se baziraju na osnovama logike i


na njenim aksiomima i teoremima. Logički operatori su osnova rada svakog računala
i neizostavan dio svakog računalnog programa. Mnoge računske operacije se baziraju
na logičkim operatorima i bez njih ne bi postojale kao takve u računalstvu.

Slika 4: Logički operatori.

2.3. Relacijski operatori

Izrazi u kojima je potrebno usporediti dvije vrijednosti nazivaju se relacijskim


operatorima. Za uspoređivanje se koriste relacijski operatori: manje od (<), veće od
(>), manje ili jednako (≤), veće ili jednako (≥), jednako (=) i različito (≠). Kad
uspoređujemo dvije vrijednosti, rezultat može biti laž (0) ili istina (1).

Slika 5: Relacijski operatori u pseudojeziku:

6
2.4. Prioritet operatora

Svaki operator ima svoj prioritet. Redosled primene operatora zavisi od prioriteta
operatora koji se sreću u jednom izrazu. Ako imamo više operatora istog prioriteta
onda se u nekim slučajevima oni primenjuju sleva u desno tj. onako kako se
pojavljuju u izrazu (npr. operatori sabiranja, oduzimanja i sl.) dok se u ostalim
slučajevima operatori primenjuju s desna u levo (npr. operator dodele).

Slika 6: Prioritet operatora:

2.5. Definiranje funkcije

Slika 7: Definiranje funkcije.

7
3. NAREDBE U PSEUDO JEZIKU
3.1. Ucitavanje i ispisivanje

Program koji učitava dva prirodna broja i ispisuje njihov zbir:

učitaj m, n

ispiši m+n

Ovdje nismo raspisivali algoritam za sabiranje prirodnih brojeva nego smo samo
napisali izraz m + n. Programski jezici sadrže gotovo rješenje za sabiranje prirodnih
brojeva, a isto ćemo pretpostavljati za pseudojezik

3.2. Pridruživanje

Jedna od najvažnijih naredbi pseudojezika i pravih programskih jezika je naredba


koja nekoj varijabli pridružuje određenu vrijednost. Pridruživanje ćemo uvijek
označavati znakom ‘←’, da bismo ga razlikovali od uspoređivanja‘=’. Na lijevoj
strani naredbe za pridruživanje ‘←’ stoji ime varijable. Na desnoj strani može biti
konstanta, ime varijable ili izraz sastavljen od konstanti i varijabli s pomoću
aritmetičkih, logičkih i znakovnih operacija. Izraz na desnoj strani se evaluira: imena
varijabli se zamjenjuju sa sadržajem pohranjenim u tim varijablama i izračunavaju se
sve operacije. Konačna vrijednost se pohranjuje u varijablu napisanu s lijeva.

a←2

b←a+3

c←a•b

ispiši c

Prva naredba pohranjuje se u varijablu a broj 2. Druga naredba pohranjuje se


varijablu b vrijednost spremljenu u a uvećanu za 3, tj. broj 5. Treća naredba
pohranjuje se u c produkt vrijednosti spremljenih u a i b. Program na kraju ispisuje
vrijednost spremljenu u c, tj. 10.Argumenti operatora uspoređivanja >, <, ≤, ≥, = i ≠
su brojevi ili izrazi kojima je vrijednost broj, a rezultat tih operacija je logička

8
vrijednost ISTINA ili LAŽ. Logičkim operatorima ‘i’, ‘ili’, ‘ne’ argumenti i rezultat
su logičke vrijednosti. Još jednom naglašavamo razliku između naredbe za
pridruživanje ‘←’ i operatora uspoređivanja ‘=’.

Program ispisuje ISTINA ako korisnik unese pozitivan broj, a u suprotnom ispisuje
LAŽ.

učitaj br

poz ← br > 0

ispiši poz

U sljedećem primjeru opisat ćemo šta rade sljedeće naredbe te koje od njih nemaju
smisla.

uslov ← (x < −1) ili (x > 1)

Ovo je logički izraz, a ne naredba. Sam za sebe taj izraz nema smisla. U sklopu neke
naredbe izraz bi uvijek poprimio vrijednost LAŽ, bez obzira na sadržaj varijable i.
Naime, i ne može biti jednak i + 1. Ako želimo povećati sadržaj varijable i za 1,
trebamo napisati naredbu za pridruživanje i ← i + 1.

nula ← x2 − x − 6 = 0

Ova naredba pohranjuje u varijablu nula logičku vrijednost ISTINA ili LAŽ zavisno
od toga da li je u x pohranjena nultačka polinoma x2 − x − 6 ili nije.

a ← (x + 2) i (y − 7)

b ← (x ≥ 0) + (y ≥ 0)

Za ove dvije naredbe možemo reći da nemaju smisla. Na desnoj strani prve naredbe
je logička operacija ‘i’ primijenjena na aritmetičke izraze x+2 i y−7, a u drugoj
naredbi je aritmetička operacija ‘+’ primijenjena na logičke izraze x ≥ 0 i y ≥ 0.
Napominjemo da se u nekim programskim jezicima (npr. C) umjesto logičkih
vrijednosti ISTINA i LAŽ koriste brojevi 1 i 0, pa bi tamo peta naredba imala smisla.
Zamjena varijabli česta je i važna operacija. Koristit ćemo je npr. u algoritmima za
sortiranje. Možemo je predočiti preko problema zamjene dviju vrsti pića ulivenih u
pogrešne čaše. Zamislimo da smo crno vino ulili u čašu za bijelo vino, a bijelo u čašu

9
za crno. Za zamjenu pića koristimo treću, pomoćnu čašu (vidi sliku 1.). Analogija
ipak nije potpuna – kad u čašu B prelijemo piće iz čaše A, čaša A ostane prazna. S
druge strane, nakon pridruživanja b ← a obje varijable a, b sadrže vrijednost koja je
bila u a.

Slika 8: Zamjena varijabli.

3.3. Grananje

U dosadašnjim primjerima algoritama naredbe se izvode tačno onim redom kojim su


napisane. Često je potrebno uticati na tok izvođenja algoritma. U programskim
jezicima i u pseudojeziku za to služi naredba za grananje, koja je oblika:

Slika 9: Granjanje.

Naredba za grananje evaluira logički izraz. Ako je njegova vrijednost ISTINA,


izvodi se prvi niz naredbi, a u suprotnom se izvodi drugi niz naredbi. Cijeli drugi dio
(‘inače’ i odgovarajući niz naredbi) može se izostaviti. Ključne riječi ako je . . .
onda . . . inače na engleskom glase if . . . then . . . else, zato se naredba za grananje
ponekad naziva if naredbom.

10
11
3.4. Petlje (for i while petlja)

Još jednu važnu grupu naredbi koje utiču na tok izvođenja programa čine naredbe za
ponavljanje, takozvane petlje (eng. loops). Pretpostavimo da želimo ispisati prvih
100 prirodnih brojeva. Bez naredbe za ponavljanje morali bismo napisati 100 naredbi
za ispis:

Ispiši 1

Ispiši 2

Ispiši 3...

Elegantnije rješenje sastoji se od petlje koja nekoj varijabli redom pridružuje brojeve
od 1 do 100 i ispisuje vrijednost te varijable:

Za i=1,....,100 ponavlja

[ispiši i

Ovaj oblik naredbe za ponavljanje naziva se for petljom, prema engleskom zapisu:

For i=1,....,100 do

[⋮

Varijabla koja poprima vrijednosti od 1 do 100 naziva se kontrolnom varijablom.


Naravno, moguće je staviti neku drugu donju i gornju granicu za kontrolnu varijablu
umjesto 1 i 100. Niz naredbi koje se ponavljaju zvaćemo tijelom petlje. U tijelu for
petlje nije potrebno povećavati vrijednost kontrolne varijable – pretpostavljamo da se
to događa automatski.

Postoji i drugi oblik naredbe za ponavljanje, takozvana while petlja:

Slika 10: Naredba za poanvljanje.

12
Tijelo while petlje se ponavlja sve dok je logički izraz istinit. Kad bismo s pomoću
while petlje željeli ispisati brojeve od 1 do 100, morali bismo sami inicijalizirati i
povećavati kontrolnu varijablu:

Slika 11. Incijalizacija i povećanje kontorlne varijable.

Za neke probleme praktičnija je for petlja, a za druge while petlja.

13
4. ZAKLJUČAK

U ovom seminarskom radu obradili smo jedan od šest načina zapisivanja algoritama
– pseudojezik. Naredbe koje smo upoznali dovoljne su za zapisivanje svih algoritama
. Naša verzija pseudojezika ima samo šest naredbi: ‘učitaj’, ‘ispiši’, pridruživanje
‘←’, grananje (‘ako. . .onda. . .inače’), for petlju i while petlju. Pseudokod je
programski kod napisan običnim jezikom koji se koristi u knjigama programiranja i
da bi se objasnio određeni algoritam bez korištenja konkretnog programskog jezika.
Poželjno je, ali ne i obavezno, da pseudo kod koristi dosljednu sintaksu. Pseudo kod
se najčešće piše na jeziku razumljivom običnim čitaocima.

14
5. LITERATURA

5.1. Tekstovi sa interneta


1. https://loomen.carnet.hr/mod/book/view.php?
id=1001450&chapterid=146991(2.10.2020)
2. https://tesla.carnet.hr/pluginfile.php/21744/mod_resource/content/2/COURSE
_2666625_M/my_files/Sadrzaj/Poglavlje
%205/5_1_aritmeticki_operatori.htm(2.10.2020)
3. http://www.tutorijali.net/teorija-programiranja/logicki-operatori(2.10.2020)
4. https://sites.google.com/site/tehskolamojaucionica/home/programiranje/opera
tori-prioritet-operatora(2.10.2020)
5. https://biljanaivanovic.wordpress.com/category/dev-c/funkcije-dev-c/
(2.10.2020)

5.2. Popis slika

Slika 1: Opis pseudo jezika.

Slika 2: Opis psudojezika.

Slika 3: Aritmetički operatori.

Slika 4: Logički operatori.

Slika 5: Relacijski operatori u pseudojeziku.

Slika 6: Prioritet operatora.

Slika 7: Definiranje funkcije.

Slika 8: Zamjena varijabli.

Slika 9: Granjanje.

Slika 10: Naredba za poanvljanje.

Slika 11. Incijalizacija i povećanje kontorlne varijable.

15
16

You might also like