Отпремање презентације траје. Молимо да сачекате

Отпремање презентације траје. Молимо да сачекате

PROGRAMSKI JEZICI I PROGRAMIRANJE

Сличне презентације


Презентација на тему: "PROGRAMSKI JEZICI I PROGRAMIRANJE"— Транскрипт презентације:

1 PROGRAMSKI JEZICI I PROGRAMIRANJE
Osnovni pojmovi Tehnička, industrijska i obrtnička škola Čakovec

2 Tehnička, industrijska i obrtnička škola Čakovec
Programi računala služe za obavljanje različitih poslova stvarna namjena računala određena je PROGRAMOM kojeg računalo izvodi skup svih programa koji se mogu izvršavati na računalu nazivamo SOFTVER ili PROGRAMSKA PODRŠKA programe pišu PROGRAMERI postupak nastanka programa (pisanjem NAREDBI programskog jezika) zove se PROGRAMIRANJE Tehnička, industrijska i obrtnička škola Čakovec

3 Tehnička, industrijska i obrtnička škola Čakovec
Naredbe NAREDBA je nalog računalu da izvrši neki osnovni zahvat izbor i redoslijed NAREDBI (građa i vrsta programa) određuje ponašanje računala, odnosno način na koje ono izvršava neku zadaću PROGRAMSKI JEZIK RAČUNALNI PROGRAM SKUP OSNOVNIH NAREDBI ZA PROGRAMIRANJE (for, if, while, case, switch…) naredbe programskog jezika nanizane po određenim pravilima strogo utvrđenim redoslijedom u cilju izvršavanja nekog zadatka PRAVILA PISANJA Tehnička, industrijska i obrtnička škola Čakovec

4 Tehnička, industrijska i obrtnička škola Čakovec
Sintaksa napisane naredbe moraju zadovoljavati zadane zakonitosti, pravila – SINTAKSU PROGRAMSKOG JEZIKA program koji ne zadovoljava propisanu sintaksu je neispravan i nemoguće ga je prevesti u strojni oblik i izvršiti Tehnička, industrijska i obrtnička škola Čakovec

5 Razvoj programskih jezika
FORTRAN (John Backus) 1960. ALGOL 60, COBOL, PL I, PL II 1964. BASIC (John Kemeny, Tom Kurtz) beginner’s all-purpose instruction code 1965. ( ) PASCAL (Niklaus Wirth, Klaus Jensen) 1975. C (Dennis Richie) 1983. C++ (Bjarne Stroustrup)... Tehnička, industrijska i obrtnička škola Čakovec

6 Podjela programskih jezika
STROJNI PROGRAMSKI JEZICI – jezici niže razine Naredbe se obično zapisuju simboličkim zapisom, tzv. MNEMONICIMA STROJNOG JEZIKA (binarnog) Pri pisanju strojnih naredbi prvi (obavezni dio) je operacija (operacijski kod) VIŠI PROGRAMSKI JEZICI naredbe se mora prevoditi u strojni jezik računalo mora biti opremljeno odgovarajućim PREVODITELJEM int sum(int[] x) { int sum = 0; n = 0; while (n < x.length) { sum += x[n]; } return sum; ... Tehnička, industrijska i obrtnička škola Čakovec

7 Tehnička, industrijska i obrtnička škola Čakovec
Evolution: Genealogy From Sebesta’s Concepts of Programming Languages Python 91 (from Modula-3 and ABC 87?). Python 2 influenced by Perl and functional programming. Tehnička, industrijska i obrtnička škola Čakovec

8 Tehnička, industrijska i obrtnička škola Čakovec
ISTRAŽI… Koju sve vrstu uređaja može simulirati računalo? Koje vrste programske podrške (softvera) znaš? Koliko se trenutno programera traži u nekim razvijenim zemljama Zapada i kolike su njihove prosječne zarade? Koji su engleski/njemački izrazi za program, naredba, programiranje, programer, programska podrška/potpora? Što znate o sintaksi hrvatskog književnog jezika? Usporedite programske jezike prema popularnosti (raširenosti). Tehnička, industrijska i obrtnička škola Čakovec

9 Tehnička, industrijska i obrtnička škola Čakovec
Strojni jezik binarni prikaz programa, jedini oblik programa koji računalo “razumije” i u njega se prije izvođenja prevodi svaki drugi oblik programa, tijesno je vezan uz građu računala (arhitekturu mikroprocesora) pa je programer mora dobro poznavati. LD A,$AFFF ST $AD23, A ADD A,B JPNZ A Tehnička, industrijska i obrtnička škola Čakovec

10 Mnemonici strojnog jezika
U zamjenu za pisanje nizova nula i jedinica (binarnog zapisa u strojnom jeziku) koriste se tzv. MNEMONICI STROJNOG JEZIKA (slovčane kratice koje upućuju na djelovanje pojedine naredbe). ASSEMBLER je program koji mnemonike strojnog jezika (push, mov, add, dec, inc, jnz...) prevodi u binarno zapisane instrukcije. push ebp mov ebp,esp pushfd sub esp,2D0h mov dword ptr [ebp-224h],eax mov dword ptr [ebp-228h],ecx mov eax,dword ptr [ebp+8] mov ecx,dword ptr [ebp+4] inc esi cmp al,dl je C90ECA9 test al,al je C90ECA3 mov al,byte ptr [esi] je C90ECA9 test al,al jne C90EC98 pop esi pop ebx pop edi xor eax,eax Tehnička, industrijska i obrtnička škola Čakovec

11 Prednosti i nedostaci strojnog jezika
mogućnost izravnog djelovanja na sklopovlje djelotvorno iskorištenje memorije veća brzina izvođenja napisanog programa Nedostaci: složenost postupka izrade programa ograničenost na određeni tip procesora Tehnička, industrijska i obrtnička škola Čakovec

12 Viši programski jezici i njihove prednosti
Prilagođeni su čovjeku, prikladniji su, lakši i razumljiviji Jednom naredbom VIŠEG PROGRAMSKOG JEZIKA nadomješta se cijeli skup naredbi strojnog jezika Prednosti: programer ne mora dobro poznavati građu računala različiti viši programski jezici mogu biti prilagođeni različitim zadaćama i biti bliski stručnjacima za određeno područje. Viši programski jezici opće namjene omogućuju rješavanje šireg raspona zadataka. Tehnička, industrijska i obrtnička škola Čakovec

13 Tehnička, industrijska i obrtnička škola Čakovec
Jezični prevoditelji Mikroprocesor prihvaća samo strojni oblik programa pa je svaki drugi oblik programa potrebno prije izvođenja prevesti u strojni oblik IZVORNI PROGRAM (source) koji nije napisan u binarnom obliku, prije izvođenja potrebno je prevesti u strojni oblik. Načelno postoje dvije skupine PREVODITELJA: INTERPRETERI prevode odmah nakon unosa pojedine naredbe KOMPILATORI (compilers) prevode tek nakon unosa čitavog programa Tehnička, industrijska i obrtnička škola Čakovec

14 Tehnička, industrijska i obrtnička škola Čakovec
ISTRAŽI… Koji su najčešći mikroprocesori kod današnjih osobnih računala? Po čemu se današnji mikroprocesori međusobno razlikuju? Nabrojite neke više programske jezike i pokušajte ih razvrstati prema području primjene, tipovima… izvor: npr. Wikipedia Tehnička, industrijska i obrtnička škola Čakovec

15 Hrvatski informatičari u svemu ravnopravni s europskim
bilježi se stalan manjak zaposlenih u IT sektoru najtraženija zanimanja su programeri raznih programskih jezika, data base developeri, mrežni administratori, djelatnici za potporu prodajnom timu, podršku komunikacijskom menadžemntu, administratori baznih podataka, voditelji obrade podataka. - Zabrinjavajuće je da Hrvatskoj nedostaje oko 1200 računalnih stručnjaka - »Ne samo u Hrvatskoj, već svugdje u svijetu stanje je slično, jer sustavi formalnog obrazovanja financijski ne mogu pratiti razvitak novih tehnologija« - povećana potražnja posljedica brzog razvitka svjetske IT industrije (EU, SAD i Azija) »Problem kod IT kadra je što ljudi koji rade u toj djelatnosti moraju svakodnevno ulagati u svoje znanje i dodatnu edukaciju«, (izvršni direktor portala posao.hr Saša Jurković) hrvatski stručnjaci u svemu konkurentni onima iz zemalja Europske unije Hrvati polako postaju svjesni da, uz formalno obrazovanje, moraju cijelog života ulagati u svoje znanje Vjesnik Utorak, 17. listopada 2006. Tehnička, industrijska i obrtnička škola Čakovec

16 Tehnička, industrijska i obrtnička škola Čakovec
ALGORITMI Tehnička, industrijska i obrtnička škola Čakovec

17 Razlozi za proučavanje algoritama
računalni programi ne bi postojali bez algoritama proučavanje algoritama razvija analitičke vještine dobri algoritmi mogu poboljšati efikasnost računalnih programa Tehnička, industrijska i obrtnička škola Čakovec

18 Tehnička, industrijska i obrtnička škola Čakovec
Više o algoritmima “A person well-trained in computer science knows how to deal with algorithms: how to construct them, manipulate them, understand them, analyze them. This knowledge is preparation for much more than writing good computer programs; it is a general-purpose mental tool that will be a definite aid to the understanding of other subjects, whether they be chemistry, linguistics, or music, etc. The reason for this may be understood in the following way: It has often been said that a person does not really understand something until after teaching it to someone else. Actually, a person does not really understand something until after teaching it to a computer, i.e., expressing it as an algorithm.... An attempt to formalize things as algorithms leads to a much deeper understanding than if we simply try to comprehend things in the traditional way” Donald E. Knuth (one of the most prominent computer scientists of our time 1996.) Tehnička, industrijska i obrtnička škola Čakovec

19 Tehnička, industrijska i obrtnička škola Čakovec
Upamti! Algoritmi nisu odgovori su dobro definirani koraci za dobijanje odgovora Algoritmi koriste PODATKOVNE STRUKTURE (DATA STRUCTURES) Učenje o algoritmima i podatkovnim strukturama pomaže u stjecanju kompetencija za uspješnije rješavanje problema (better problem-solver)! The term algorithm is used in computer science to describe a problem solving method suitable for implementation as a computer program. [Sedgewick 2003] The A* algorithm Tehnička, industrijska i obrtnička škola Čakovec

20 Tehnička, industrijska i obrtnička škola Čakovec
Definicija Naziv ALGORITAM potječe od imena arapskog matematičara Muhamed ibn Musa al Horezmi. ALGORITAM je opis matematičkog ili drugog postupka, sastavljen od izvjesnog broja koraka ili akcija, dan u obliku niza uputa koje treba obaviti određenim redoslijedom. ALGORITAM je proces ili niz pravila za rješavanje nekog zadatka ili zadanog problema. Tehnička, industrijska i obrtnička škola Čakovec

21 Tehnička, industrijska i obrtnička škola Čakovec
Primjeri algoritama Algoritam – uputa ili recept: Uputa za prelazak preko ulice Upute za uporabu kućanskih aparata Kuharski recept Upute za sijanje Uputa za zbrajanje brojeva Isti algoritam može biti predstavljen na niz različitih načina. Za rješavanje istog problema mogu postojati različiti algoritmi (načini). Algoritmi za isti problem mogu biti utemeljeni na vrlo različitim idejama i problem mogu rješavati sasvim različitim brzinama. Tehnička, industrijska i obrtnička škola Čakovec

22 Programiranje – sinteza algoritama
RAČUNALNI PROGRAM predstavlja algoritam opisan uputama, operacijama koje računalo razumije, a služe rješavanju nekog problema. PISANJE PROGRAMA je proces izražavanja algoritama nizom naredbi u nekom jeziku za programiranje. Konvergentni algoritam se sastoji od konačnog broja koraka koji sigurno vode do rješenja (ako ono uopće postoji). Tehnička, industrijska i obrtnička škola Čakovec

23 Karakteristike algoritma
Ima početne objekte (ulazni podaci) Ima završne objekte (izlazni podaci, rezultati) Ima konačni broj koraka (mogu se opisati uputama, naredbama, instrukcijama) Mogu biti općeniti ili specijalizirani Mogu biti uporabljivi i neuporabljivi Imaju izvoditelja Postoji jezik za njihovo zapisivanje (koji može biti umjetni – programski jezik ili govorni) Tehnička, industrijska i obrtnička škola Čakovec

24 Tehnička, industrijska i obrtnička škola Čakovec
Opis postupka Nakon formulacije problema treba precizno opisati algoritam, a zatim ga izraziti notacijom programskog jezika i to se onda daje računalu na izvršenje. Definiraju se koraci koji će dovesti do rješenja Tehnička, industrijska i obrtnička škola Čakovec

25 Primjeri različitih algoritama za rješenje istog problema
Nalaženje riječi u rječniku Tehnička, industrijska i obrtnička škola Čakovec

26 Tehnička, industrijska i obrtnička škola Čakovec
Algoritam 1. 1. korak: otvoriti stranu rječnika prije prve. 2. korak: otvoriti slijedeću stranu. 3. korak: ako posljednja riječ na otvorenoj strani nije po abecedi prije tražene riječi ili ako je otvorena strana posljednja, nastaviti sa 4. korakom, inače ponoviti 2. korak. 4. korak: potražiti traženu riječ na otvorenoj strani i zapisati njeno značenje. Ako tražena riječ nije nađena, zapisati da je nema u rječniku. Tehnička, industrijska i obrtnička škola Čakovec

27 Tehnička, industrijska i obrtnička škola Čakovec
Algoritam 2. 1. korak: napraviti snop iz svih listova rječnika. 2. korak: dok je tražena riječ po abecedi iza posljednje riječi prve strane snopa i prije prve riječi posljednje strane snopa, ili dok nije u snopu samo jedan list, ponavljati 3. i 4. korak, inače napraviti 5. korak. 3. korak: razdjeliti snop u dva dijela. 4. korak: ako je tražena riječ ispred posljednje riječi prvog snopa, nastaviti rad sa tim snopom, u suprotnom uzeti za novi snop drugi dio. 5. korak: potražiti traženu riječ na prvoj ili posljednjoj strani snopa i zapisati njeno značenje. Ako tražena riječ nije nađena, zapisati da je nema u rječniku. Tehnička, industrijska i obrtnička škola Čakovec

28 Tehnička, industrijska i obrtnička škola Čakovec
Algoritam 3. 1. korak: napraviti snop iz listova rječnika koji leže između oznake s prvim slovom tražene riječi i slijedeće oznake. 2. korak i ostali jednaki su kao i u algoritmu 2. Tehnička, industrijska i obrtnička škola Čakovec

29 Tehnička, industrijska i obrtnička škola Čakovec
Primjer: Izračunati z=xy (x i y su cijeli pozitivni brojevi) - napraviti algoritam za potenciranje Rješenje 1.: Ako računalo “zna” potencirati, onda se može napisati npr. z=pow(x,y); ili z:=x^y; Tehnička, industrijska i obrtnička škola Čakovec

30 Tehnička, industrijska i obrtnička škola Čakovec
Primjer – nastavak: Rješenje 2.: Ako računalo “zna” samo osnovne računske operacije, treba sastaviti algoritam za potenciranje koji će tu operaciju raščlaniti na niz množenja, npr.: z:=1; u:=y; ponavljaj z:=z*x; u:=u-1 dok ne bude u=0; Tehnička, industrijska i obrtnička škola Čakovec

31 Matematička logika u programiranju
Tehnička, industrijska i obrtnička škola Čakovec

32 Tehnička, industrijska i obrtnička škola Čakovec
Uvod Izvođenje programa ne mora biti pravocrtno, bezuvjetno, već se program može GRANATI kod grananja obično ISPITUJEMO NEKI UVJET (može biti ispunjen ili ne) i DONOSIMO ODLUKU o daljnjem tijeku izvođenja programa Ostvarenje PROGRAMSKIH GRANANJA, ali i PROGRAMSKIH PETLJI zasniva se na POZNAVANJU LOGIKE koje olakšava razumijevanje i stvaranje programa LOGOS – riječ, misao, zakon, razlog, razum LOGIKA - grana filozofije Tehnička, industrijska i obrtnička škola Čakovec

33 Tehnička, industrijska i obrtnička škola Čakovec
Logika koja se bavi utvrđivanjem razložnosti rasuđivanja Nešto je logično ako se može obrazložiti nekim dokazima Osnovni pojam u logici je LOGIČKI SUD - TVRDNJA koja se ocjenjuje s gledišta ISTINITOSTI ili LAŽNOSTI VALJANI sudovi mogu biti ISTINITI (TRUE) ILI LAŽNI (FALSE) Istraživanjima sudova bavi se posebna grana matematike: MATEMATIČKA LOGIKA Osnovu matematičke logike čini ALGEBRA SUDOVA (LOGIČKA, BOOLEOVA ALGEBRA) Operacije sa sudovima su LOGIČKE ili BOOLEOVE Tehnička, industrijska i obrtnička škola Čakovec

34 Tehnička, industrijska i obrtnička škola Čakovec
George Boole Matematičar koji se bavio logikom Razvio logičku algebru (Boolean Algebra) Uveo operatore and (konjunkcija) or (disjunkcija) not (negacija) nor (exclusive or) Tehnička, industrijska i obrtnička škola Čakovec

35 Složeni sudovi i označavanje sudova
Za označavanje sudova koriste se logičke varijable koje mogu poprimiti vrijednost 0 ili 1 (laž ili istina) od jednostavnih sudova stvaramo složenije Istinitost ili lažnost složenijih sudova može se utvrditi temeljem formula koje uključuju logičke operatore: negacija, konjunkcija, disjunkcija sudovi često uključuju i relacijske simbole ili operatore: <, >, =, <=, >=, <> relacijski simboli opisuju odnose među vrijednostima napisanim sa lijeve/desne strane operatora Tehnička, industrijska i obrtnička škola Čakovec

36 Tehnička, industrijska i obrtnička škola Čakovec
Tablice istinitosti A B !A !B A && B A || B 1 Tehnička, industrijska i obrtnička škola Čakovec

37 Tehnička, industrijska i obrtnička škola Čakovec
Istraži… Utvrdi istinitost ili lažnost sudova: Sud Vrijednost 5>2 3>6 4=4 7<=6 Napiši tablicu istinitosti za: (A||B)&&(A&&B) (A||C)||(A&&B)&&(B||C) Tehnička, industrijska i obrtnička škola Čakovec

38 Tehnička, industrijska i obrtnička škola Čakovec
IZRADA PROGRAMA Tehnička, industrijska i obrtnička škola Čakovec

39 Tehnička, industrijska i obrtnička škola Čakovec
Faze u izradi programa Planiranje, definiranje, analiza i opisivanje problema, određivanje algoritma, oblikovanje rješenja Kodiranje i prevođenje Testiranje i ispravljanje, kontrola programa na formalne (sintaktičke, semantičke) i logičke greške Održavanje programa Dokumentiranje programa – faza koja se provodi usporedo sa ostalim fazama (odvojeno i/ili u kodu) Tehnička, industrijska i obrtnička škola Čakovec

40 Metode programiranja i predstavljanje algoritama
Tehnička, industrijska i obrtnička škola Čakovec

41 Modularno programiranje
Program se sastoji od modula (procedura, funkcija, potprograma...) koji se mogu nezavisno razvijati i zatim koristiti u više programa prednost: olakšano pisanje, testiranje, unošenje izmjena. Strukturirano programiranje Program je građen pomoću elementarnih (osnovnih) logičkih struktura: sekvence-niza, grananja i ponavljanja odvijanje programa: pravocrtno, temeljeno na rezultatima (odlukama, izboru, uvjetima) prethodne obrade petlja. Tehnička, industrijska i obrtnička škola Čakovec

42 Osnovne programske strukture
Pravocrtan tijek programa, sekvenca Programska grananja if (ako) if-else (ako-onda) switch (višestruko grananje) Programske petlje for (poznati broj ponavljanja) do-while (ispitivanje uvjeta ponavljanja na kraju) while (ispitivanje uvjeta ponavljanja na početku) Tehnička, industrijska i obrtnička škola Čakovec

43 Neki načini opisa algoritama
Kod opisa algoritma i objašnjenja koda pomaže upotreba Blok dijagrama – simbolički prikaz algoritma/programa Pseudokoda – strukturirani opis u prirodnom jeziku Blok dijagrami - grafički Pseudokod – riječima ako, onda, za, učitaj, ispiši, dok je... Tehnička, industrijska i obrtnička škola Čakovec

44 Tehnička, industrijska i obrtnička škola Čakovec
Blok dijagrami POČETAK I=1, S=0 BROJ NE BROJ>0 DA S=S+BROJ I<10 && S<99 DA I=I+1 NE S, I KRAJ Tehnička, industrijska i obrtnička škola Čakovec

45 Tehnička, industrijska i obrtnička škola Čakovec
Pseudokod i=1, s=0; učitaj broj radi ako je (broj>0) onda s+=broj; dok je (i++<=10&&s<99); ispiši s, i i=1, s=0; read broj do if (broj>0) s+=broj; while (i++<=10&&s<99); write s, i Tehnička, industrijska i obrtnička škola Čakovec

46 Tehnička, industrijska i obrtnička škola Čakovec
Primjer napraviti program za zbrajanje dva cijela broja napraviti program koji će zbrojiti, oduzeti, pomnožiti i podijeliti dva cijela broja. Pri tome izbjegnuti dijeljenje s nulom. napraviti program koji će zbrojiti pet brojeva, pa ispisati kakav je zbroj (jednak, veći ili manji od nule). Koristiti najviše tri varijable. Ispisati sve djelitelje za deset učitanih brojeva iz intervala [100, 1000]. Tehnička, industrijska i obrtnička škola Čakovec


Скинути ppt "PROGRAMSKI JEZICI I PROGRAMIRANJE"

Сличне презентације


Реклама од Google