540 likes | 838 Views
Programska oprema računala. Teze predavanja: Elektroničko računalo Umjetnost programiranja Osnovni pojmovi . Umjetnost programiranja. Osnovi informatike. Elektron ič k o ra č una lo.
E N D
Programska oprema računala Teze predavanja: Elektroničko računalo Umjetnost programiranja Osnovni pojmovi
Umjetnost programiranja Osnovi informatike
Elektroničko računalo • Elektroničko računalo je tehnički sustav koji automatski izvršava instrukcije (programe) koje su unaprijed zadati.
Osnovni pojmovi • Neki važniji pojmovi iz informacijske tehnologije: • Bulova algebra • Bulova algebra predstavlja osnovni matematski aparat na kome se zasniva rad elektronskih računala.
Bulova algebra • Elektronska računala i mnogi drugi uređaji rade na principu primjene elemenata Bulove algebre logike. • Logičke operacije koje se realiziraju u elektronskom računalu su u osnovi: • Negacija • Konjukcija • Disjunkcija • i njihove kombinacije
Negacija • Uređaj u kome se realizira operacija negacije zove se invertor. • Ako je A neki iskaz “krivi toranj se nalazi u Splitu”, onda je  (čita se NONA) “nije istina da se krivi toranj nalazi u Splitu”. • Kako izgleda tablica istinosti?
Konjukcija • Logička “I” operacija ili konjukcija, označava se simbolom ۸ (AND) pomoću kojeg se povezuju dva iskaza. Ako su (A) i (B) iskazi, onda je A ۸ B novi složeni iskaz F. • Taj novi iskaz biti će istinit ako su oba iskaza istinita. • Kako izgleda tablica istinitosti?
Disjunkcija • Treća logička operacija je disjunkcija, za koju se u svakodnevnom govoru koristi termin “ILI” i označava se sa ۷ (VEL, OR) pomoću kojeg se povezuju dva ili više iskaza. • Ako su (A) i (B) iskazi, onda je A ۷ B novi složeni iskaz. • Kako izgleda tablica istinitosti za disjunkciju?
Binarna aritmetika • Pozicionirani brojni sustav koji koristi samo dvije znamenke zove se binarni. • To su cifre Ø i 1. • Taj sustav je aktualiziran kada je doveden u vezu sa Bulovom algebrom. • Ako se istinita tvrdnja označi sa 1, a neistinita sa Ø, onda se sve operacije u elektroničkom računalu svode na dvije znamenke(Ø i 1) i kombinaciju osnovnih logičkih operacija.
Digitalni elektronički krug • Digitalni elektronički krug ili logički element je elektronički krug koje funkcionira na principu diskretnih signala. • Diskretno predstavljanje podataka korištenjem signala u diskretnom obliku (Ø,1). • Kodiranje je postupak prevođenja simbola jednog sistema znakova u simbole drugog sistema znakova.
Programski jezici Računala se također sporazumijevaju jezicima. Jezici koje računala razumiju zovu se programski jezici. Možemo reći da je programski jezik skup ključnih riječi i pravila za njihovo korištenje koje “razumije” računalo.
Generacije programskih jezika Prva generacija: strojni jezici Druga generacija: simbolički (asemblerski) jezici Treća generacija: jezici za programiranje visoke razine (LOGO, BASIC, Pascal, Ada, LISP, PROLOG, …) Četvrta generacija: jezici prilagođeni krajnjim korisnicima (SQL, GIS, VisiCalc, Multiplan, System, …)
Strojni jezik Pisanje programa za prva računala bilo je isključivo u strojnom jeziku. Strojni jezik je jezik nula i jedinica i trebalo je pamtiti što koji od tih nizova znači. Npr. niz “Ø11Ø1Ø1” znači “zbroj”. Pisanje programa u strojnom jeziku ne samo da je bilo otežano nerazumljivim kodovima pojedinih naredbi, već nije postojao ni jedinstven strojni jezik, pa onaj koji je poznavao jezik jednog stroja nije mogao programirati na drugom.
Simbolički (asemblerski) jezik • Prvi korak ka “jezicima više razine” bilo je uvođenje simboličkog (asemblerskog) jezika. • U tom jeziku programer koristi riječi za operacije i nepoznanice za podatke. • Ako treba zbrojiti dva broja, a mjesta u memoriji na kojima su ti brojevi zapisani označimo s X i Y, tada u asemblerskom jeziku pišemo: ADD X,Y umjesto 0110 001110 010101 u nekom strojnom jeziku.
Jezici visoke razine Programski jezici visoke razine programeru omogućuju da piše programe u prirodnijem zapisu tako da se ne mora baviti detaljima specifičnim za pojedino računalo. Želimo li da računalo zbroji dva broja i rezultat zapamti na nekom trećem mjestu u memoriji u ovakvim jezicima pisat ćemo naredbu tipa: C=A+B što znači: zbroji brojeve koji su zapisani na A i B, a rezultat stavi na C.
Programski jezikLOGO TO ZBROJI MAKE “A READMAKE “B READMAKE “C :A+:BPR :CEND
Programski jezik QBASIC INPUT AINPUT BC=A+BPRINT CEND
Programski jezik Pascal program zbroji;var a, b: integer;begin readln (a); readln (b); c:=a+b; writeln (c);end.
Jezici četvrte generacije Ovi programski jezici potpuno su prilagođeni krajnjim korisnicima – neprogramerima u principu, a uspješno se njime služe i programeri radi ubrzanja procesa programiranja.
Primjeri takvih jezika su: • upitni jezici za bazu podataka (SQL, Asi, GIS,…) • jezici za podršku u odlučivanju (visiCalc, Multiplan, …) • generatori programa (Mapper, Ramis II, Focus, …) • jezici za programiranje vrlo visoke razine (AME, NOMAD, …) • jezici za crtanje
Programiranje kao umjetnost “ Programiranje računala je umjetnost jer primjenjuje stečeno znanje na svijet, jer zahtijeva vještinu i domišljatost, a naročito zato što stvara predmete ljepote.” (Donald Knuth)
Algoritam • Postupak kojim računalo rješava neki problem zove se algoritam. • Algoritam je stara riječ koja potječe iz arapskog jezika, a danas, znači postupak, pravilo, uputa. • Različite algoritme susrećemo u svakodnevnom životu.
Algoritam • Algoritam je točan, konačan opis općeg postupka koji definira način rješavanja nekog problema primjenom elementarnih koraka ili pravila obrade. • Algoritam omogućava mehaničko (automatsko) rješavanje problema, bez obzira koga izvršava, čovjek ili stroj.
Primjer obrade algoritma Algoritam i iteracije Primer: izračunati koliko je: 5x3+20=? 1.unos prvog operanda 5 2.unos drugog operanda 3 3.unos operacije x 4.izračunavanje 5x3=15 5.memorisanje međurezultata 15 6.unos trećeg operanda 20 7.unos operacije + 8.izračunavanje 15+20=35 9.memoriraj rezultata 35 10.izdavanje rezultata 35
Osnovni algoritamski postupci Grananje i petlja
Primjer 3. Napišimo algoritam i dijagram tijeka koji za dva upisana različita broja ispisuje veći od ta dva broja.
Primjer 3. – algoritam: početak upiši A,B ako jeA>B onda ispiši A inače ispiši B kraj
START A,B DA NE B A>B A KRAJ Primjer 3. – dijagram tijeka
Primjer 4: Napišmo algoritam i dijagram tijeka za izračunavanje opsega raznostraničnog trokuta, kome su zadane duljine stranica A, B i C. Provjerimo je li zadane duljine stranica sačinjavaju trokut.
Primjer 4. - algoritam: početak upiši A, B, Cako je A<B+C i B<A+C i C<A+Bonda opseg=A+B+C, ispiši opseg inače ispiši “Zadani brojevi nisu stranice trokuta.” kraj
START A, B A<B+C i B<A+C i C<A+B DA OPSEG=A+B +C OPSEG NE Zadani brojevi nisu stranice trokuta. KRAJ Primjer 4. – dijagram tijeka
Primjer 5: Napišimo algoritam i dijagram tijeka za ispis prvih 20 prirodnih brojeva.
Primjer 5. – algoritam: početak X=1 ispiši X X=X+1 ako je X 20 idi na naredbu: ispiši X kraj
START X=1 X X=X+1 DA X 20 NE KRAJ Primjer 5. – dijagram tijeka:
Primjer 6: Napišimo program koji za zadane prirodne brojeve određuje najveći među njima. Brojevi se zadaju sve dok se ne upiše 0.
Primjer 6. – algoritam: početak najveći=0 upiši x ako je x=0 onda ispiši najveći, idi na kraj inače ako jex>najveći onda najveći=x vrati se na naredbu:upiši x kraj
START najveći=0 x x=0 DA NE NE x>najveći DA najveći=x najveći KRAJ Primjer 6. – dijagram tijeka
Ponovimo: • Koji su osnovni algoritamski postupci? PETLJA SLIJED GRANANJE
Primjer 7: Napišimo program za zbrajanje prvih dvadeset prirodnih brojeva.
Primjer 7. – algoritam: početak zbroj=0 broj=0 sve dok je broj<20 ponavljaj broj=broj+1 zbroj=zbroj+broj kraj ponavljanja ispiši zbroj kraj
START zbroj=0 broj=0 NE broj<20 DA broj=broj+1 zbroj=zbroj+broj zbroj KRAJ Primjer 7. – dijagram tijeka
Primjer 8: Zamislimo na trenutak ovakvu situaciju. Vi ste šef računovodstva u jednom velikom računskom centru koje ima 10000 radnika. Direktor traži da mu u roku pola sata kažete koji radnik ima najveću, a koji radnik najmanju plaću, te kolika je prosječna plaća po radniku. Napišimo algoritam i dijagram tijeka koji će voditelju pomoći da riješi ovaj problem.
Primjer 8. - algoritam početak MIN=0 MAX=0 zbroj=0 broj=0 sve dok je broj<10 000 ponavljaj upiši plaća ako je plaća<MIN onda MIN=plaća ako je plaća>MAX onda MAX=plaća zbroj=zbroj+plaća kraj ponavljanja prosjek=zbroj/10 000 ispiši MIN, MAX, prosjek kraj
START MIN=0 MAX=0 zbroj=0 broj=0 NE prosjek=zbroj/10000 broj<100000 DA DA NE plaća MIN, MAX, prosjek DA MIN=plaća MAX=plaća plaća>MAX plaća<MIN NE KRAJ zbroj=zbroj+plaća Primjer 8. – dijagram tijeka
RAZUMJEVANJE PROBLEMA • OPIS ULAZNIH I IZLAZNIH PODATAKA • ODREDITI ALGORITAM • NACRTATI DIJAGRAM TIJEKA • PISANJE PROGRAMA U NEKOM PROGRAMSKOM JEZIKU (KODIRANJE) • PREVOĐENJE PROGRAMA • IZVRŠAVANJE I TESTIRANJE PROGRAMA • PISANJE PROGRAMSKE DOKUMENTACIJE