Uvod u programiranje
Programiranje i arhitektura
![](https://gradnjakuce.com/wp-content/uploads/2014/04/ytong-levak-goranski0000.jpg)
![](https://www.studentskicentar.com/Slike/Nedarici/1.jpg)
![](https://www.kathmanduandbeyond.com/wp-content/uploads/2020/06/Alipasino-Polje-Sarajevo-Bosnia-and-Herzegovina-6.jpg)
![](https://tms-outsource.com/blog/wp-content/uploads/2019/08/FeaturedImage1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6621613/blueprint-building-structure-vector-4324993.jpg)
![](http://www.rama-glas.com/wp-content/uploads/2017/12/SCC-09.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/10798690/Shed-SpaceSaver-8x4-Single-Door-Main__33325.jpg)
![](https://live.staticflickr.com/2469/3702699190_549a691d6f_b.jpg)
![](https://i.pinimg.com/originals/70/fc/da/70fcda60933121de975c09e964bbdab5.jpg)
Još analogija
- Pisanje knjige
- Kuhanje
- Pravljenje motocikla
- Slikanje
- Sport
Šta su programski jezici?
Komunikacija
sa računarom
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/8959004/talking_to_pc.jpg)
To-do lista za računar
# Python program to check if the input number is prime or not
num = 407
# take input from the user
# num = int(input("Enter a number: "))
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
# if input number is less than
# or equal to 1, it is not prime
else:
print(num,"is not a prime number")
![](https://www.dailyinfographic.com/wp-content/uploads/2015/06/OBHEr1J.png)
Šta je potrebno za programiranje?
Jednostavan editor teksta
![](https://www.howtogeek.com/wp-content/uploads/2018/07/img_5b48157fc1e63.png)
Interpreter ili kompajler
![](https://miro.medium.com/max/1000/1*Qbm5_d5EYIbYa1-jN4JmSg.jpeg)
Hardware i software
Računar radi samo dvije stvari!
1. Računa
![](https://www.wikihow.com/images/b/b6/Calculate-the-Mean-Step-4-Version-2.jpg)
2. Pamti
![](https://www.4probateandwills.co.uk/_webedit/cached-images/19-0-0-774-10000-8451-1536.jpg)
Hardware
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623469/Picture1.png)
Procesor
-
Centralna procesorska jedinica (CPU): dio računara koji izvršava program
-
najvažnija komponenta
-
bez procesora računar ne može pokretati programe
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623538/Picture2.png)
Radna memorija
- Radna memorija: mjesto gdje računar pohranjuje program prilikom izvršavanja, kao i podatke koje program koristi
-
Poznata i kao memorija sa nasumičnim pristupom (Random Access Memory or RAM)
- procesor može brzo pristupiti podacima u RAM memoriji
- nepostojana memorija koja se koristi za privremeni pristup prilikom izvršavanja programa
- sadržaj se briše prilikom gašenja računara
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623553/Picture3.png)
Sekundarna memorija
![](https://mir-s3-cdn-cf.behance.net/project_modules/disp/f5b76d25354853.563442dd80a13.gif)
Sekundarna memorija
-
Sekundarna memorija: može čuvati podatke tokom dužeg vremenskog perioda
- Programi se tipično pohranjuju u sekundarnu memorija i učitavaju u radnu memoriju prema potrebi
-
Tipovi sekundarne memorije
- Čvrsti disk (HDD): zapisuje podatke magnetski na rotirajući kružni disk
- Čvrsti disk (SSD): brži od HDDa, bez pokretnih dijelova, pohranjuje podatke u memoriju stalnog stanja
- USB disk: prenosiv, nema fizičkog diska
- Optički uređaji: podaci zapisani optički
Ulazni i izlazni uređaji
Software
- Kontroliše sve što računar radi
- Osnovne kategorije
- aplikativni software
- sistemski software
Kako radi program?
Kako radi program
-
Procesor je dizajniran za izvršavanje jednostavnih operacija nad podacima
- primjeri: čitanje podataka, sabiranje, oduzimanje, množenje i dijeljenje brojeva, poređenje
- Procesor razumije instrukcije napisane u mašinskom jeziku koje su sadržane u njegovom skupu instrukcija
- Svaka marka procesora ima vlastiti skup instrukcija
-
10110000 – govori Intelovom procesoru da premjesti vrijednost u memoriju
- Prilikom značajnijih proračuna procesor mora izvršiti mnogo operacija
Kako radi program
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623736/Picture4.png)
Od mašinskog do asemblerskog jezika
- Nepraktično pisati kod u mašinskom jeziku
-
Asemblerski jezik: koristi kratke riječi za instrukcije umjesto binarnih brojeva
- Olakšava rad programerima
- Asembler: prevodi asemblerski jezik u mašinski
Od mašinskog do asemblerskog jezika
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623747/Picture5.png)
Jezici visokog nivoa
-
Jezik niskog nivoa: po prirodi sličan mašinskom jeziku
- primjer: asemblerski jezik
-
Jezik visokog nivoa: omogućava jednostavnije kreiranje snažnih i složenih programa
- Nije potrebno poznavanje rada procesora ili pisanje velikog broja instrukcija
- Intuitivnije razumijevanje
-
print(“Hello world”)
Kompajleri i interpreteri
- Programi napisani u jezicima visokog nivoa se moraju prevesti u mašinski jezik da bi se izvršili
-
Kompajler: prevodi jezik visokog nivoa u mašinski jezik
- Mašinski jezik se može izvršiti u bilo koje vrijeme
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623765/Picture6.png)
Kompajleri i interpreteri
-
Interpreter: prevodi i izvršava instrukcije napisane u jeziku visokog nivoa
- Koristi ga Python programski jezik
- Interpretira jednu instrukciju u datom trenutku
- Ne postoji odvojen program u mašinskom jeziku
- Izvorni kod (source code): izjave koje je napisao programer
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6623784/Picture7.png)
Predstavljanje podataka
Kako računar pohranjuje podatke?
- Svi podaci na računaru su pohranjeni kao niz nula i jedinica
-
Bit: osnovna jedinica informacije
- može biti u jednom od dva isključiva stanja
- binarna cifra (binary digit)
-
Byte: 8 bita
- dovoljna količina memorije za pohranu slova ili malog broja
- upaljen/ugašen uzorak bita u bajtu predstavlja podatak pohranjen u bajtu
Kako računar pohranjuje podatke?
![](https://www.youmath.it/images/stories/Fisica/unita-di-misura/byte.png)
Pohranjivanje brojeva
Pohranjivanje brojeva
-
Bit predstavlja dvije vrijednosti 0 i 1
- Računari koriste binarni brojni sistem
- pozicije cifre \(j\) se dodjeljuje vrijednost \(2^{j-1}\)
- da bi se odredila vrijednost binarnog broja zbrajaju se pozicione vrijednosti na kojima se nalaze jedinice
- Limit jednog bajta: od 0 do 255
- 0 - svi biti nula
- 255 - svi biti jedan
- za pohranjivanje većih vrijednosti koristi se više bajtova
![](https://static.wixstatic.com/media/5280f7_4812f6d0339d4cd2923117944534341d~mv2.gif)
Konverzija \((10011101)_b\) u \((157)_d\)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6626107/Picture1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6626106/Picture2.png)
Konverzija \((10011101)_b\) u \((157)_d\)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6626105/Picture3.png)
Konverzija \((1548)_d\) u \((11000110000)_b\)
1584 : 2 = 792
792 : 2 = 396
396 : 2 = 198
198 : 2 = 99
99 : 2 = 49
49 : 2 = 24
24 : 2 = 12
12 : 2 = 6
6 : 2 = 3
3 : 2 = 1
1 : 2 = 0
0
0
0
0
1
1
0
0
0
1
1
ASCII
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6626205/Simple_ASCII_Table_0.gif)
Digitalni zvuk
![](https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/4-bit-linear-PCM.svg/1200px-4-bit-linear-PCM.svg.png)
Digitalne slike
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6626218/Picture6.png)
Koje su primjene programiranja?
O predmetu
- Nastavnik: Dr. Elmedin Selmanović
- Vanredni profesor na Prirodno-matematičkom fakultetu
- Direktor UTIC-a
- Interesovanja: digitalna obrada slike, računarska grafika i računarska vizija
- eselmanovic - pmf.unsa.ba
- Asistent: Adisa Bolić
- Najbolja studentica UNSA
- Interesovanja: vještačka inteligencija, kompjuterska vizija, algoritmi
- Spoljni saradnik u nekoliko IT kompanija
O predmetu
- Asistenti:
- Adisa Bolić
- Dr. Džana Drino
- Meliha Kurtagić
O predmetu
-
T. Gaddis: Starting out with Python, 5th Edition, 2020
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/9888145/00885c14.png)
O predmetu
- E. Selmanovic, S. Delalić: Uvod u programiranje, 2019
O predmetu
Testovi tokom nastave | 30% |
Laboratorijske vježbe | 20% |
Završni ispit | 50% |
O predmetu
- Aplikacija za ispite
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/10801973/Grading_Client.png)
O predmetu
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/9888165/Screenshot_2022-10-03_223905.jpg)
O predmetu
- Jedan ECTS studijski bod-kredit predstavlja 25 sati ukupnog opterećenja studenta kroz sve oblike njegovog rada na određenom predmetu
- 7 * 25 = 175 sati u semestru
- 175 / 16 = 11 sati sedmično
- 11 - 6 = 5 sati samostalno
O predmetu
- Programiranje je vještina
O predmetu
- Programiranje je vještina
Sugestije studenata
- Realizovane:
- Rad ispita na računaru
- Mogućnost izbora ispita u popravnom roku
- Dodatni ispit za studente sa preko 49 bodova
- Trajanje ispita
- Dodatni testni primjeri na ispitima
- Djelimično realizovane:
- Literatura na bosanskom jeziku
- Neće biti realizovane:
- Parcijalno bodovanje zadataka na ispitu
- Izlazak na više ispita u jednom roku
- Dodatno produženje trajanja ispita
- Težina zadataka
Šta je potrebno za vježbu?
- Računar sa pristupom internetu
- Python interpreter
- Editor teksta
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6624414/Picture15.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/7813831/pasted-from-clipboard.png)
IDLE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1142771/images/6624411/Picture12.png)
Sažetak
- Podesiti okruženje za rad
- Vježbati
Programiranje I - P01
By Elmedin Selmanovic
Programiranje I - P01
- 1,155