12
1 Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava, učenje stranog jezika, traganje za člancima, učestvovanje na online časovima itd. Na poslu se pomoću računara vrše analize podataka, izrađuju prezentacije, obavljaju poslovne transakcije, upravlja proizvodnjom i mnogi drugi poslovi. Kod kuće ljudi pomoću računara plaćaju račune i obavljaju kupovinu, komuniciraju sa prijateljima i rodbinom, ili se zabavljaju igrajući igre i gledajući filmove. Osim toga, mobilni telefoni, tableti, pametni telefoni i navigacije u automobilima su takođe računari. Dakle, područje upotrebe računara nema ograničenja u svakodnevnom životu. Računari mogu izvršavati toliko različitih zadataka zahvaljujući činjenici da mogu biti programirani. To znači da računari nisu napravljeni da obavljaju samo jedan zadatak, nego bilo koji zadatak kojeg im program kaže da urade. Program je skup instrukcija koje računar izvršava kako bi obavio neki zadatak. Primjer: Microsoft Word i Power Point su dva često korištena programa za obavljanje različitih zadataka. Programe obično još nazivamo i software. Bez software-a računari ne bi radili, jer on upravlja svime što računar radi. Sav software koji čini računare upotrebljivim napravili su programeri ili software developer-i. Programeri su osobe obučene i sa iskustvom u projektovanju, izradi i testiranju računarskih programa. Programiranje je interesantna i isplativa karijera, obzirom da programeri rade u poslovnim, medicinskim, državnim, akademskim, zabavnim i drugim područjima. Tokom ovog kursa upoznat ćemo se sa osnovnim konceptima programiranja, koristeći programski jezik Python. Python je dobar izbor za početnike jer je lagan za učenje, nema strogu sintaksu i podsjeća na govorni jezik. Python je i veoma moćan jezik, popularan među profesionalcima, tako da ga koriste Google, NASA, YouTube, New York berza i mnogiedruge velike kompanije. Kako bi lakše shvatili i prihvatili koncepte programiranja, prvo ćemo se podsjetiti osnovnih stvari o računarima i principima rada računara. Za početak ćemo se podstjetiti od kojih fizičkih dijelova se sastoji računara, a zatim kako računari pamte podatke i na kraju kako izvršavaju programe. Hardware and Software KONCEPT: Hardware su svi fizički dijelovi od kojih je računar napravljen. Software su svi programi koji se ozvršavaju na računaru. Hardware Izraz hardware odnosi se na sve fizičke dijelove ili komponente, od kojih je računar napravljen. Računar nije samo jedan uređaj, nego sistem uređaja koji rade zajedno. Prilikom kupovine računara vjerovatno ste se susreli sa spiskom komponenti, kao što su mikroprocesor, memorija, hard disk, grafička kartica, monitor itd. Za razumijevanje značaja ovih komponenti neophodno je prethodno znanje iz računarstva. Na slici je prikazan tipični računarski sistem sa osnovnim komponentama: Centralna procesorska jedinica (CPU) Glavna memorija Sekundarni memorijski uređaji Ulazni uređaji Izlazni uređaji

Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

1

Uvod u računarstvo i programiranje

Uvod

Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava, učenje stranog jezika, traganje za člancima, učestvovanje na online časovima itd. Na poslu se pomoću računara vrše analize podataka, izrađuju prezentacije, obavljaju poslovne transakcije, upravlja proizvodnjom i mnogi drugi poslovi. Kod kuće ljudi pomoću računara plaćaju račune i obavljaju kupovinu, komuniciraju sa prijateljima i rodbinom, ili se zabavljaju igrajući igre i gledajući filmove. Osim toga, mobilni telefoni, tableti, pametni telefoni i navigacije u automobilima su takođe računari. Dakle, područje upotrebe računara nema ograničenja u svakodnevnom životu.

Računari mogu izvršavati toliko različitih zadataka zahvaljujući činjenici da mogu biti programirani. To znači da računari nisu napravljeni da obavljaju samo jedan zadatak, nego bilo koji zadatak kojeg im program kaže da urade. Program je skup instrukcija koje računar izvršava kako bi obavio neki zadatak. Primjer: Microsoft Word i Power Point su dva često korištena programa za obavljanje različitih zadataka.

Programe obično još nazivamo i software. Bez software-a računari ne bi radili, jer on upravlja svime što računar radi. Sav software koji čini računare upotrebljivim napravili su programeri ili software developer-i. Programeri su osobe obučene i sa iskustvom u projektovanju, izradi i testiranju računarskih programa. Programiranje je interesantna i isplativa karijera, obzirom da programeri rade u poslovnim, medicinskim, državnim, akademskim, zabavnim i drugim područjima.

Tokom ovog kursa upoznat ćemo se sa osnovnim konceptima programiranja, koristeći programski jezik Python. Python je dobar izbor za početnike jer je lagan za učenje, nema strogu sintaksu i podsjeća na govorni jezik. Python je i veoma moćan jezik, popularan među profesionalcima, tako da ga koriste Google, NASA, YouTube, New York berza i mnogiedruge velike kompanije.

Kako bi lakše shvatili i prihvatili koncepte programiranja, prvo ćemo se podsjetiti osnovnih stvari o računarima i principima rada računara. Za početak ćemo se podstjetiti od kojih fizičkih dijelova se sastoji računara, a zatim kako računari pamte podatke i na kraju kako izvršavaju programe.

Hardware and Software

KONCEPT: Hardware su svi fizički dijelovi od kojih je računar napravljen. Software su svi programi koji se ozvršavaju na računaru.

Hardware Izraz hardware odnosi se na sve fizičke dijelove ili komponente, od kojih je računar napravljen. Računar nije samo jedan uređaj, nego sistem uređaja koji rade zajedno.

Prilikom kupovine računara vjerovatno ste se susreli sa spiskom komponenti, kao što su mikroprocesor, memorija, hard disk, grafička kartica, monitor itd. Za razumijevanje značaja ovih komponenti neophodno je prethodno znanje iz računarstva. Na slici je prikazan tipični računarski sistem sa osnovnim komponentama:

• Centralna procesorska jedinica (CPU)

• Glavna memorija

• Sekundarni memorijski uređaji

• Ulazni uređaji

• Izlazni uređaji

Page 2: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

2

Centralna procesorska jedinica (CPU)

CPU je dio računara koji zapravo izvršava (running / executing) program. Može se reći da je CPU najznačajnija komponenta računara, jer bez nje računar ne bi mogao pokretati software.

Nekada je CPU bio ogroman uređaj, sastavljen od prekidača i vakuumskih cijevi. Legendarni ENIAC iz 1945. godine smatra se prvim programabilnim elektronskim računarom, a bio je težak oko 30 tona. Dašnji CPU-i su mali čipovi poznati kao mikroprocesori. Osim što su mnogo manji od prvih CPU, mikroprocesori su i mnogo moćniji.

Glavna memorija

U glavnoj memoriji računar čuva program dok se izvršava, kao i podatke koje program obrađuje. Primjer: dok kucam ovaj tekst, u glavnoj memoriji se nalaze i program za obradu teksta i ovaj tekst.

Glavna memorija je takođe poznata po nazivu random-access memory ili RAM (memorija sa proizvoljnim pristupom), jer CPU može jednako brzo da pristupi podacima u bilo kojem dijelu RAM-a. RAM je nestalna memorija koja se koristi za privremen smještaj programa i podataka dok su potrebni; kada se računar ugasi, sadržaj RAM-a se briše.

Sekundarni memorijski uređaji

Sekundarni memorijski uređaji mogu čuvati podatke i programe neograničeno dugo, čak i kada je računar ugašen. Programi i podaci su obično i smješteni u sekundarnoj memoriji, a učitavaju se u glavnu memoriju po potrebi.

Najčešći tip sekundarne memorije je hard disk, koji podatke smješta na rotirajući magnetni disk. Solid-state disk postaje sve popularniji jer je znatno brži od hard diska i nema pokretnih dijelova. Većina računara ima unutar kućišta neki od ova dva diska.

Postoje i vanjski memorijski uređaji, koji se sa računarom povezuju putem komunikacionog porta, obično USB. Obično se koriste za pravljenje pričuvnih kopija podataka ili prenos podataka između računara. Takvi su USB

stikovi, ili malo stariji CD, DVD i BR diskovi.

Ulazni uređaji

Ulaz (input) je bilo koji podatak kojeg računar dobije od osobe ili drugog uređaja. Komponenta putem koje se prikupljaju podaci i dostavljaju računaru naziva se ulazni uređaj. Neki od ulaznih uređaja su tastatura, miš, tauchscreen (ekran osjetljiv na dodir), skener, mikrofon, digitalna kamera... Diskovi i vanjske memorije takođe se mogu smatrati ulaznim uređajima (zašto?).

Izlazni uređaji

Izlaz (output) je bilo koji podatak kojeg proizvede računar za čovjeka ili drugi uređaj. To može biti izvještaj o prodaji, popis ili crtež. Podatak se prosleđuje do izlaznog uređaja koji ga formatira i prikazuje. Uobičajeni izlazni uređaji su monitor i štampač. Diskovi i vanjske memorije takođe se mogu smatrati izlaznim uređajima (zašto?).

Software Da bi računar mogao raditi, mora posjedovati software. Sve što računar radi, od trenutka palenja do gašenja, pod kontrolom je softwarea-a. Postoje dvije kategorije software-a: sistemski i aplikacioni.

Page 3: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

3

Sistemski software

Programi koji nadziru i upravljaju radom računarskog sistema zovu se sistemski software, a mogu se podijeliti u dvije grupe:

Operativni sistem je osnovni set programa na računaru. Zadužen je za kontrolu rada hardwarea, upravljanje svim uređajima povezanim na računar, snimanje i čitanje podataka, te omogućava drugim programima da se izvršavaju. Poznatiji operativni sistemi su Windows, macOS i Linux, a na mobilnim uređajima Android i iOS.

Pomoćni (uslužni) programi obavljaju specijalizirane zadatke, kao što su zaštita podataka i računara u cjelosti, arhiviranje i pravljenje pričuvnih kopija i slično.

Aplikacioni software

Programi koji izvršavaju svakodnevne zadatke nazivaju se aplikativni software. To su programi koje korisnici najčešće pokreću i koriste svakodnevno, kao što su programi za obradu teksta, izradu prezentacija, rad sa tabelarnim podacima, slanje emaila, web pretraživači, igre itd.

Alati za programiranje

Alati za programiranje su programi koje koriste programeri za projektovanje, prilagođavanje i testiranje software-a. U ovu grupu spadaju asmbleri, kompajleri (prevodioci) i interpreteri.

Ponavljanje i utvrđivanje

1. Šta je program? 2. Šta je hardware? 3. Nabroj osnovne komponente računarskog sistema. 4. Koji dio računara izvršava program? 5. U kojem dijelu računara se nalaze programi i podaci dok se program izvršava? 6. U kojem dijelu računara se čuvaju programi i podaci na duže vrijeme? 7. Putem kojih uređaja računar prikuplja podatke? 8. Putem kojih uređaja računar formatira i prezentira podatke? 9. Koji dio računara upravlja cijelim računarskim sistemom? 10. Kako zovemo programe koji izvršavaju specijalizirane zadatke, kao antivirusi, arhiveri i sl? 11. Kojoj grupi programa pripadaju email program i web pretraživač?

Predstavljanje podataka u računaru

KONCEPT: Svi podaci koji se nalaze u računaru predstavljeni su nizovima 0 i 1

Računarska memorija je podijeljena na male skladišne lokacije koje se zovu bajti (byte). U jednom bajtu možemo spremiti jedno slovo alfabeta ili mali broj. Da bismo spremili bilo što „razumno“ potrebno nam je puno bajta. Moderni računari imaju memoriju od stotina miliona, pa čak i milijardi bajta.

Svaki bajt sastoji se od osam manjih jedinica poznatih kao biti (bit), što je skraćenica od binary digit. Svaki bit se može posmatrati kao mali prekidač, koji može biti u položaju upaljen ili ugašen. Kada se neki podatak upiše u bajt, računar postavi ovih osam bita u stanje uključeno ili isključeno po odgovarajućem uzorku.

Predstavljanje brojeva Bit ima veoma ograničene mogućnosti za zapisivanje brojeva, jer može imati samo dvije različite vrijednosti, 0 ili 1, što zovemo binarni brojni sistem. Po ovom sistemu, vrijednosti se zapisuju kao sekvence 0 i 1. Pozicija svake cifre u binarnom broju ima vrijednost koja joj je dodijeljena. Počevši od cifre sa krajnje desne strane, pozicione vrijednosti su 20, 21, 22, 23, itd, odnosno 1, 2, 4, 8, itd. Da bi odredili vrijednost binarnog broja, sabiramo vrijednosti pozicija na kojima su 1.

Page 4: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

4

Kada su svi biti postavljeni na 0, vrijednost bajta je 0. Kada su svi biti postavljeni na 1, vrijednost bajta je 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255, što je najveća vrijednost koja se može zapisati u jednom bajtu. Ako želimo zapisati veće brojeve, kombinujemo više bajta. Tako nam dva bajta daju 16 bita, tako da je najveći broj kojeg možemo zapisati 65,535. Za zapisivanje još većih brojeva koristimo još više bajta.

Predstavljanje znakova Svi podaci koji se čuvaju u memoriji računara moraju biti prevedeni u binarne brojeve, što uključuje i znakove. Prilikom zapisivanja nekog znaka u memoriju, on se prvo prevede u brojni kôd, a zatim spremi kao binarni broj.

Tokom razvoja računara razvijene su različite šeme kodiranja znakova. Najznačajnija šema je ASCII (American

Standard Code for Information Interchange), kao set od 128 brojnih kodova koji predstavljaju slova engleskog alfabeta, razne znakove interpunkcije i neke druge znakove. Primjer: ASCII kod za veliko slovo A je 65, a za malo slovo a je 97. Kada na tastaturi otkucamo slovo A, tastatura tokodira kao 65, te se broj 65 proslijedi računaru i spremi u memoriji.

ASCII set znakova je razvijen u ranim 1960-tim godinama i brzo je bio prihvaćen od strane većine proizvođača računarske opreme. Međutim, ASCII je veoma ograničen, jer definiše kodove za samo 128 znakova. Zbog toga je početkom 1990-tih godina razvijen Unicode set znakova, koji definiše kodove za većinu jezika u svijetu.

Napredno predstavljanje brojeva Na osnovu ranije rečenog, u binarnom sistemu možemo prikazati samo cijeli brojeve. Računari mogu spremiti i negativne i realne brojeve., koristeći se sistemom kodiranja. Negativni brojevi se k,odiraju tehnikom drugi komplement, a realni brojevi zapisom u pokretnom zarezu.

Ostali tipovi podataka Računari su digitalni uređaji, koji koriste digitalne podatke spremljene u binarnom obliku. Da bi računari bili u mogućnosti obrađivati i druge tipove podataka osim znakova i brojeva, potrebno ih je pretvoriti u digitalni oblik.

Primjer: digitalna fotografija se sastoji od mnoštva tačaka (pixel) čija je boja opisanina numeričkim kodom (brojnom vrijednošću) u binarnom obliku.

Muzika u MP3 playeru je takođe u digitalnom obliku. Zvuk se dijeli u male uzorke (44,000 uzoraka u sekundi), a zatim jačina zvuka u svakom uzorku pretvara u binarni broj, koji se zatim sprema u memoriju.

Ponavljanje i utvrđivanje

12. Koja je osnovna jedinica za veličinu memorije? Koliko memorije je potrebno za spremanje jednog znaka ili malog broja?

13. Kako se zovu mali „prekidači“ koji predstavljaju 0 i 1? 14. Kako se zove brojni sistem kojeg koriste računari?

Page 5: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

5

15. Koja je svrha ASCII? 16. Koja šema kodiranja može predstaviti (zabilježiti) znakove iz većine jezika u svijetu? 17. Šta znače termini „digitalni podatak“ i „digitalni uređaj“?

Izvršavanje programa

KONCEPT: Računari razumiju samo instrukcije koje su napisane u mašinskom jeziku. Obzirom da je teško (skoro nemoguće) programirati u mašinskom jeziku, smišljeni su drugi programiski jezici.

Rekli smo da je CPU najvažnija komponenta u računaru jer izvršava programe. CPU ponekad zovemo i „mozak računara“ i opisujemo je kao „pametnu“. Međutim, treba shvatiti da CPU nije mozak i nije pametna, nego je elektronski uređaj dizajniran da radi određene stvari, kao što su:

Čitanje i upisivanje podataka u i iz memorije Sabiranje, oduzimanje, množenje i dijeljenje dva broja Premiještanje podataka sa jedne na drugu memorijsku lokaciju Poređenje brojeva

Kao što se može zaključiti, CPU obavlja jednostavne operacije nad pojedinačnim podacima. Ipak, CPU ne može uraditi ništa sama od sebe, nego joj program mora reći šta da uradi. Program nije ništa drugo nego popis instrukcija ili naredbi koje govore CPU da obavi određene operacije.

Svaka instrukcija u mašinskom jeziku je predstavljena nizom 1 i 0, koje čovjeku ne znače ništa. Za svaku operaciju kojku CPU može izvršiti, postoji mašinska instrukcija, kao npr sabiranje, oduzimanje premještanje iz memorije itd. Puni set instrukcija koje CPU može izvršiti zove se CPU set instrukcija. Ovaj set instrukcija se razlikuje za različite procesore, pa čak iako su od istog proizvođača.

Da bi računar uradio bilo šta smisleno, potrebno je puno više od jedne instrukcije, koje će CPU izvršiti u određenom redoslijedu. Skup tako uređenih instrukcija je program. Programi često mogu sadržati na hiljade ili milione mašinskih instrukcija.

Program se obično nalazi u sekundarnoj memoriji (hard disk), gdje kopiran prilikom instalacije. Da bi se program izvršio, potrebno ga je učitati u radnu memoriju, i to svaki put kada želimo da ga pokrenemo i izvršimo. Iz radne memorije CPU izvršava kopiju programa.

Dok CPU izvršava instrukciju iz programa, on u stvari izvršava proces zvan dohvati-dekodiraj-izvrši (fetch-decode-

execute cycle). Ovaj proces / ciklus od tri koračića izvršava se za svaku instrukciju:

Fetch – Program je duga sekvenca mašinskih isntrukcija. Prvi koračić je da se iz memorije dohvati (učita) u CPU instrukcija koja je na redu za izvršavanje.

Decode – Mašinska instrukcija je binarni broj koji predstavlja komandu koja govori CPU da obavi određenu operaciju. CPU mora dekodirati (razumjeti) dohvaćenu instrukciju, kako bi znao koju operaciju da obavi.

Execute – CPU izvršava operaciju.

Page 6: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

6

Mašinski i asemblerski jezici CPU može izvršavati samo instrukcije napisane u mašinskom jeziku. Neki programi mogu imati na hiljade i milione instrukcija, pa je pisanje takvih programa praktično nemoguće u mašinskom jeziku.

Zbog toga je od samih početaka razvijen asemblerski jezik, kod kojeg se umjesto binarnih brojeva za insteukcije koriste skraćenice ili memonici. Tako skraćenica add znači sabiranje, mul znači množenje, mov premještanje u memorijsku lokaciju. Na taj način je programiranje znatno olakšano.

Međutim, CPU ne može izvršiti program pisan u asemblerskom jeziku, jer razumije samo mašinski jezik. Zbog toga je potrebno prevesti program iz asemblerskog jezika u mašinski jezik, koristeći program asembler.

Viši programski jezici Asemblerski jezik je direktna zamjena za mašinski jezik, pa je neophodno da programer poznaje arhitekturu CPU. Takođe je neophodno napisati veliki broj instrukcija čak i za jednostavne programe. Zbog svoje sličnosti mašinskom jeziku, asemblerski jezik se svrstava u jezike niskog nivoa.

Tokom 1950-tih godina počinju se razvijati viši programski jezici, koji omogućavaju jednostavnije pisanje složenih programa bez poznavanja CPU i bez pisanja velikog broja prostih instrukcija. Viši programski jezici su takođe jednostavniji za razumijevanje, jer više podsjećaju na govorne jezike. Primjer: Za ispisivanje teksta „Zdravo svijete“ na ekranu, u asembleru bi bilo potrebno desetak linija koda i poznavanje CPU, dok je u programskom jeziku Python potrebna samo jedna linija print(„Zdravo svijete“), koja je ista bez obzira na CPU. Viši programski jezici omogućili su programerima da se orjentišu na zadatak kojeg treba da obavlja njihov program, umjesto na način rada CPU.

Od 1950-tih razvijeno je nekoliko hiljada viših programskih jezika, od kojih su poznatiji:

Jezik Opis

Ada Ada je nastala 1790-tih godina za potrebe Američkog ministarstva odbrane. Jezik je dobio ime po Adi Lovelace, istorijskoj ličnosti u svijetu računarstva.

BASIC Beginners All-purpose Symbolic Instruction Code je programski jezik opšte namjene razvijen 1960-tih godina za potrebe učenja programiranja.

FORTRAN FORmula TRANslator je prvi jezik višeg nivoa, razvijen 1950-tih godina za izvođenje kompleksnih matematičkih proračuna

COBOL Common Business-Oriented Language je razvijen 1950-tih godina za poslovne primjene.

Pascal Pascal je razvijen 1970-tih za potrebe učenja programiranja. Nazvan je po slavnom matematičaru, fizičarui filozofu Blaise Pascal-u.

C and C++ C i C++ su moćni programski jezici opšte namjene, razvijeni u Bell Laboratories. C jezik je razvijen 1972, a C++ jezik 1983.

C# “c šarp” je razvio Microsoft 2000. godine za razvoj aplikacija zasnovaniha na .NET platformi.

Java Javu je razvio Sun Microsystems početkom 1990-tih godina za razvoj aplikacija koje se mogu izvršavati na različitim platformama.

JavaScript JavaScript je nastala 1990-tih godina za upotrebu u web stranicama. Iako dijeli ime sa jezikom Java, ovi jezici nemaju ništa zajedničko.

Python Python je programski jezik opšte namjene nastao početkom 1990-tih godina. Jezik je postao veoma popularan kako u poslovnim tako i u akademskim primjenama.

Ruby Ruby je programski jezik opšte namjene nastao početkom 1990-tih godina. Postaje sve popularniji jezik za web servere.

Visual Basic

Visual Basic (poznak i kao VB) je Microsoft-ov programski jezik i razvojno okruženje namijenjeno razvoju programa za Windows. VB je nastao 1990-tih godina.

Ključne riječi, Operatori i Sintaksa Svaki viši programski jezik ima skup predefinisanih riječi pomoću kojih programer piše program, a poznate su kao ključne ili rezervisane riječi (key words ili reserved words). Svaka ključna riječ ima određeno značenje i ne može se koristiti u druge svrhe. U nastavku su sve ključne riječi jezika Python:

Page 7: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

7

and del from None True

as elif global nonlocal try

assert else if not while

break except import or with

class False in pass yield

continue finally is raise

def for lambda return

Osim ključnih riječi, programski jezici imaju operatore za obavljanje raznih operacija nad podacima. Tako npr svi jezici imaju aritmetičke operatore, operatore poređenja i slično.

Takođe, svi programski jezici imaju odgovarajuću sintaksu, koja je u stvari skup pravila koja se moraju striktno poštovati prilikom pisanja programa. Sintaksna pravila određuju na koji način se ključne riječi, operatori i drugi elementui jezika kombinuju u programu.

Pojedinačne instrukcije napisane u višem programskom jeziku zovu se iskazi (statements), a mogu se sastojati od ključnih riječi, operatora i drugih elemenata, pravilno poredanih.

Prevodioci i Interpreteri Obirom das CPU razumije samo mašinske instrukcije, programi napisani u višem programskom jeziku moraju se prevesti u mašinski jezik pomoću prevodioca (compiler) ili interpretera (interpreter).

Prevodilac je program koji program iz višeg programskog jezika u program u mašinskom jeziku. Prevedeni program u mašinskom jeziku može se izvršaviti bilo kada i bilo gdje, bez prisustva izvornog programa u višem jeziku.

Interpreter je program koji prevodi i izvršava instrukcije višeg programskog jezika. Kako interpreter čita pojedine instrukcije u programu, prevodi ih u instrukcije mašinskog jezika i odmah izvršava. Interpreteri obično ne prave program u mašinskom jeziku.

Programski jezik Python koristi interpreter.

Program napisan u višem programskom jeziku zove se izvorni kôd (source code). Izvorni kod se obično piše u tekstualnom editoru, a zatim prevodi ili interpretira kako bi se izvršio. Ako kod sadrži sintaksnu grešku, prevodilac ili interpreter će je prijaviti i neće završiti prevođenje.

Ponavljanje i utvrđivanje

18. CPU razumije instrukcije pisane u kojem programskom jezku? 19. U koju memoriju se program kopira prilikom izvršavanja? 20. Kako zovemo proces izvršavanja jedne instrukcije u CPU? 21. Šta je asemblerski jezik? 22. Pomoću kojeg tip programskih jezika možemo pisati složene programe bez poznavanja rada CPU? 23. Svaki programski jezik ima skup pravila. Kako se zovu ta pravila?

Page 8: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

8

24. Kako se zove program koji prevodi program pisan u višem programskom jeziku u program u mašinskom jeziku?

25. Kako se zove program koji prevodi instrukcije iz višeg programskog jezika u mašinske instrukcije, a zatim ih izvršava.

26. Koje greške su uzrokovane nepoštivanjem pravila programskog jezika?

Programski jezik Python

KONCEPT: Python interpreter izvršava Python programe spremljene u datoteku ili interaktivno izvršava Python iskaze sa tastature. Python ima program IDLE koji pojednostavljuje proces pisanja, izvršavanja i testiranja programa.

Instalacija Python-a Za izvršavanje bilo kojeg Python programa, neophodno je da se instalira Python na računaru. Instalacija se može preuzeti sa zvanične web stranice www.python.org.

Python interpreter Od ranije znamo da je Python interpretirani jezik. Prilikom instalacije Python jezika na računar, instaliran je i Python interpreter, koji je u stvari program koji čita Python programske iskaze i izvršava ih. Interpreter se može koristiti na dva načina (moda) interaktivni i skript mod.

U interaktivnom modu interpreter čeka korisnika da unese Python iskaz putem tastature, zatim ga prevodi i izvršava, a zatim čeka sledeći iskaz.

U skript modu interpreter čita sadržaj datoteke sa Python programom (skriptom), a zatim prevodi i izvršava iskaz o izskaz.

Interaktivni mod (Python shell) Za pokretanje interpretera u interaktivnom modu, potrebno je preći u komandnu liniju, a zatim otkucati komandu python. Pod Windows-om se može u Serch boxu kucati python, ili u Start meniju potražiti grupu Python 3.x i u njoj izabrati Python 3.x.

Nakon pokretanja interpretera u interaktivnom modu, u konzoli bi trebali dobiti nešto kao:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 19:29:22) [MSC v.1916 32 bit

(Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

Oznaka >>> je prompt koji govori da interpreter čeka na iskaz (naredbu). Jedna od najjednostavnijih naredbi je ispis poruke.

>>> print('Programiranje može biti zabavno')

Programiranje može biti zabavno

>>>

Nakon izvršavanja naredbe, ponovo dobijamo prompt >>>, što znači da možemo unijeti sledeću naredbu.

>>> print('Biti ili ne biti') Biti ili ne biti

>>> print('pitanje je sad')

pitanje je sad

>>>

Ako naredbu napišemo neispravno, dobit ćemo poruku o grešci.

>>> print('nedostaje mi apostrof) File "<stdin>", line 1

print('nedostaje mi apostrof)

^

SyntaxError: EOL while scanning string literal

>>>

Za izlazak iz interaktivnog moda potrebno je pritisnuti Ctrl+Z (Windows) ili CTRL+D (Mac, Linux).

Script Mode Interaktivni mod je podesan za testiranje koda, odnosno pojedinih naredbi, ali se naredbe ne snimaju u program. Naredbe se jednostavno izvršavaju i rezultat prikazuje na ekranu. Da bismo naredbe snimili u Python program,

Page 9: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

9

moramo ih snimiti u datoteku. Potom možemo pokrenuti izvršavanje programa koristeći interpreter u script modu.

Za pisanje programo možemo koristiti bilo koji tekst editor (npr Notepad), te datoteku spremiti sa nastavkom .py. Za pokretanje programa potrebno je u komandnoj liniji otići u folder koji sadrži .py datoteku, a zatim upisati naredbu python datoteka.py. Time se pokreće interpreter u skript modu i izvršavaju naredbe iz datoteke. Nakon izvršavanja svih naredbi interpreter završava svoj rad.

Sadržaj datoteke test.py:

print('samo da') print('nešto')

print('kažem')

pokretanje i izvršavanje programa test.py:

C:\>python test.py

samo da

nešto kažem

C:\>

IDLE Programsko okruženje Alternativno od interaktivnog i skript moda, možemo koristiti integrisano razvojno okruženje (integrated

development environment). IDLE je program koji sadrži sve alate za pisanje, izvršavanje i testiranje programa. Ovaj program dolazi instaliran sa Python jezikom, a pokreće se iz Start menija, grupa Python 3.x stavka IDLE ...

IDLE omogućava rad u interaktivnom modu, ali sadrži i moćan editor koda, koji pruža mnoge pomoći pri pisanju programa. Iz ovog editora možemo direktno snimiti .py datoteku na disk, pokrenuti njeno izvršavanje i dobiti rezultat izvršavanja ili poruke o greškama.

Provjera znanja

Višestruki izbor 27. Set instrukcija koje računar slijedi pri izvršavanje nekog zadatka zove se:

a. kompajler b. program c. interpreter d. programski jezik

28. Fizičke uređaje (komponente) od kojih je napravljen računar zovemo: a. hardware b. software c. operativni sistem d. alati

29. Dio računara koji izvršava program zove se: a. RAM b. sekundarna memorija c. glavna memorija d. CPU

30. Savremeni CPU su mali čipovi poznati kao: a. ENIAC b. mikroprocesori c. memorijski čipovi d. operativni sistemi

31. Tokom izvršavanja programa računar čuva program i potrebne podatke u: a. sekundarnoj memoriji b. CPU c. glavnoj memoriji d. mikroprocesoru

32. Koja od navedenih memorija nije trajna i služi za privremeni smještaj programa i podataka

Page 10: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

10

a. RAM b. sekundarna memorija c. disk drive d. USB drive

33. Memorija koja može čuvati podatke neograničeno dugo, čak i kada nema napajanja, zove se: a. RAM b. glavna memorija c. sekundarna memorija d. CPU memorija

34. Računarska komponenta koja prihvata podataka od korisnika ili drugog uređaja i dostavlja računaru zove se: a. izlazni (output) uređaj b. ulazni (input) uređaj c. sekundarni memorijski uređaj d. glavna memorija

35. Video displej (monitor) je: a. izlazni (output) uređaj b. ulazni (input) uređaj c. sekundarni memorijski uređaj d. glavna memorija

36. najmana jedinica za veličinu memorije je: a. byte b. bit c. switch d. transistor

37. Byte se sastoji od osam: a. CPU b. instrukcija c. variabli d. bita

38. U kom brojnom sistemu se brojne vrijednosti zapisuju nizom cifara 0 i 1? a. hexadecimalnom b. binarnom c. octalnom d. decimalnom

39. Bit koji je isključen predstvalja vrijednost: a. 1 b. −1 c. 0 d. “no”

40. Set od 128 numeričkih kodova koji predstavljaju slova engleskog alfabeta, znakova interpunkcije i nekih drugih znakova zove se: a. binarni brojni sistem b. ASCII c. Unicode d. ENIAC

41. Proširena šema kodiranja, koja može predstaviti znakove iz većine svjetskih jezika, zove se

a. binarni brojni sistem b. ASCII c. Unicode d. ENIAC

42. Negativni brojevi kodiraju se tehnikom: a. drugi komplement

Page 11: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

11

b. floating point (pokretni zarez) c. ASCII d. Unicode

43. Realni brojevi kodiraju se tehnikom: a. drugi komplement b. floating point (pokretni zarez) c. ASCII d. Unicode

44. Male tačke od kojih je sastavljena slika u digitalnom obliku zovu se: a. biti b. bajti c. kolor paketi d. pikseli

45. Kada pogledamo u program u mašinskom jeziku vidjet ćemo: a. Python kod b. niz binarnih cifara c. tekst na engleskom jeziku d. elektronska kola

46. U toku kojeg fetch-decode-execute cikljusa CPU odlukuje koju će operaciju obaviti?

a. fetch b. decode c. execute d. deconstruct

47. Računari mogu izvršavati samo programe pisane u: a. Javi b. asemlerskom jeziku c. mašinskom jeziku d. Python-u

48. Koji program vrši prevođenje programa iz aseblerskog u mašinski jezik?

a. asembler b. kompajler c. prevodilac d. interpreter

49. Riječi od kojih se sastoji viši programski jezik zovu se: a. binarne instrukcije b. mnemonici c. komande d. ključne riječi

50. Plavila koja se moraju poštovati prilikom pisanja programa zovu se: a. sintaksa b. interpunkcija c. ključne riječi d. operatori

51. Koji program vrši prevođenje programa iz višeg programskog jezika u mašinski jezik? a. asembler b. kompajler c. prevodilac d. interpreter

Tačno ili netačno 1. Savremeni CPU su veliku uređaji izrađeni od električnih i mehaničkih komponenti kao što su vakuumske cijevi i

prekidači. 2. Glavna memorija je poznata i kao RAM.

Page 12: Uvod u računarstvo i programiranje · Uvod u računarstvo i programiranje Uvod Ljudi koriste računare na različite načine. U školama učenici koriste računara za pisanje sastava,

12

3. Bilo koji podatak da bi bio spremljen u računaru mora biti pretvoren u binarni brojevi. 4. Fotografije snimljene digitalnom kamerom ne mogu se spremiti kao binarni brojevi. 5. CPU razumije samo mašinski jezik. 6. Asemblerski jezik se smatra višim programskim jezikom. 7. Interpreter je program koji istovremeno prevodi i izvršava instrukcije višeg programskog jezika. 8. Sintaksna greška ne sprečava prevođenje i izvršavanje programa. 9. Windows, Linux, Android, iOS i macOS su primjeri aplikativnog software-a. 10. Programi za obradu teksta, tabelarne proračune, email, web preglednici i video igre su primjeri uslužnih

programa.

Kratki odgovori 1. Koja je razlika između glavne i sekundarne memorije? 2. Koji broj predstavlja bit koji je u položaju uključeno? Koji broj predstavlja bit koji je u položaju isključeno? 3. Koliko različitih znakova može biti predstavljeno u ASCII? Kojim setom znakova je prevaziđeno to ograničenje? 4. Kako zovemo jednu instrukciju pragrama pisanog u višem programskom jeziku? 5. Kako zovemo skraćenice koje koristimo u asemblerskom jeziku? 6. Objasni razliku između kompajlera (prevodioca) i interpretera. 7. Koja vrsta software-a upravlja radom svih komponenti računara?

Vježbe 1. Isprobajte da li Python interpreter radi na Vašem računaru:

• Pokrenite Python interpreter in interactivnom modu (pokrenuti komandni interfejs, pa kucati narebu python), ili odabrati Python 3.x iz grupe Python 3.x

• Na mjestu >>> prompta kucati naredbu print(Ovo je test Python interpretera.')

• Nakon priska ne Enter, naredba bi se trebala izvršiti i ispisati sledeće: This is a test of the Python interpreter.

>>> • Ako ste dobili poruku o grešci, pokušajte ponovo, ovaj put kucajući tačno kako je napisano iznad.

• Izađite iz Python interpretera. (Ctrl-Z pa Enter u Windows-u, Ctrl-D za druge sisteme)

2. Isprobajte da li Python IDLE radi na Vašem računaru:

• Pokrenite IDLE (odabrati Python IDLE iz Python 3.x grupe).

• Na mjestu >>> prompta kucati naredbu print(Ovo je test Python IDLE.')

• Nakon priska ne Enter, naredba bi se trebala izvršiti i ispisati sledeće: This is a test of the Python IDLE. >>>

• Ako ste dobili poruku o grešci, pokušajte ponovo, ovaj put kucajući tačno kako je napisano iznad.

• Izađite iz Python IDLE (klik. na File pa Exit, ili Ctrl+Q)

3. Pretvorite sledeće dekadne brojeve u binarne: 14

87 128

254 4. Pretvorite sledeće binarne brojeve u dekadne:

101

1111

110010 5. Pronađite ASCII tabelu na internetu, pa odredite kod za prvi karakter koji se može štampati (razmaklica), prvo

slovo Vašeg imena i prezimena (velika i mala). 6. Potražite na internetu nešto o historijatu Python programskog jezika:

• Ko je kreirao Python? Šta znači njegova titula“BDFL”?

• Šta je “The Zen of Python”?