PROGRAMIRANJE PROGRAMSKA PODRKA skup svih programa koji se

  • Slides: 50
Download presentation
PROGRAMIRANJE

PROGRAMIRANJE

 PROGRAMSKA PODRŠKA – skup svih programa koji se mogu izvršavati na računalu Računalni

PROGRAMSKA PODRŠKA – skup svih programa koji se mogu izvršavati na računalu Računalni program uputa je računalu što raditi Računalo je bez programa beskorisno Programi za računalo često vrijede više nego sklopovlje računala na kojem se izvršavaju Računalni programi

Svaki se program sastoji od naredaba • Naredba (engl. command ) je temeljni element

Svaki se program sastoji od naredaba • Naredba (engl. command ) je temeljni element programa • NAREDBA je postupak izražen na dogovoren i razumljiv način, kojim naredbodavac upućuje izvršitelja na obavljanje stanovite radnje (programer naredbom naređuje računalu obvljanje željene radnje) • 1. Zagrij vodu 2. Stavi vrećicu čaja 3. Ostavi stajati 5 minuta 4. Posluži Naredba

 Program je skup naredaba čijim se izvršenjem obavlja željeni posao PROGRAM IDEXMP INTEGER

Program je skup naredaba čijim se izvršenjem obavlja željeni posao PROGRAM IDEXMP INTEGER BUS_NUM = 99 WRITE(*, *) ' TAKE BUS ', BUS_NUM END Program

 Čovjek koji piše program za računalo zove se programer Programer Izvoliš mi napisati

Čovjek koji piše program za računalo zove se programer Programer Izvoliš mi napisati domaću zadaću!

 Programiranje je postupak nastanka programa za računalo Programiranje

Programiranje je postupak nastanka programa za računalo Programiranje

 • Strojni jezik 100100 0101000101010 (engl. machine code) • U užem smislu binarni

• Strojni jezik 100100 0101000101010 (engl. machine code) • U užem smislu binarni prikaz programa • Jedini jezik koji računalo razumije te se svaki drugi oblik programa mora prije izvođenja prevesti u strojni jezik • Tijesno je vezan za građu računala, tj. ovisan je o mikroprocesoru (program napisan za jedan tip mikroprocesora nije primjenjiv na drugom tipu) • PREDNOSTI: mogućnost izravnog djelovanja na sklopovske dijelove računala, djelotvorno iskorištenje memorije i brzina izvođenja napisanog programa • NEDOSTACI: složenost postupka izrade programa i ograničenost programa na jedan tip mikroprocesora • U širem smislu to je prikaz uz pomoć slovčanih kratica koje zamijenjuju pojedine binarne brojeve Strojni jezik

 Prikaz strojnog jezika s pomoću slovčanih kratica naziva se još i SIMBOLIČKIM JEZIKOM

Prikaz strojnog jezika s pomoću slovčanih kratica naziva se još i SIMBOLIČKIM JEZIKOM ili ASEMBLEROM SIMBOLIČKI JEZIK (ASEMBLER) MOV AX, 5 0000 ADD AX, BX Strojni jezik PREVEDENO U STROJNI JEZIK 10111000 00000101 00000011 11000011

 Viši programski jezici su svi oni koji nisu izravni prikaz binarnog oblika naredbe

Viši programski jezici su svi oni koji nisu izravni prikaz binarnog oblika naredbe Razlog uvođenja je da se strojni jezik nadomjesti lakšim i razumljivijim programskim jezikom Veći ili manji skup naredba strojnog jezika se nadomješta jednom naredbom višeg programskog jezika 10 REM Izračunavanje opsega i površine pravokutnika 20 CLS 30 A = 12. 3 : REM Stranica A pravokutnika 40 B = 8. 2 : REM Stranica B pravokutnika 50 OPSEG = 2 * A + 2 * B : REM Formula za opseg 60 POV = A * B : REM Formula za površinu 70 PRINT OPSEG : REM Ispis opsega 80 PRINT POV : REM Ispis površine Viši programski jezici

 Programer ne mora znati gotovo ništa o građi računala Za razliku od asemblera

Programer ne mora znati gotovo ništa o građi računala Za razliku od asemblera pri prevođenju se svaka naredba višeg programskog jezika prevede u mnogo bajtova Drugi važan razlog uvođenja viših programskih jezika je potreba da se jedan te isti program primjeni na različitim modelima računala tj. različitim mikroprocesorima Viši programski jezici

Program napisan u prikazu koji nije binarni naziva se IZVORNI PROGRAM (source code) i

Program napisan u prikazu koji nije binarni naziva se IZVORNI PROGRAM (source code) i prije izvođenja ga je potrebno prevesti u strojni program • Jezični prevoditelji su računalni programi koji prevode viši oblik prikaza jezika u binarni • Kompajler (engl. compiler) • • Kompajler je program koji prevodi izvorni program u strojni jezik samo jednom • Prevedena inačica programa ima nastavak com ili exe • Prevedeni program može se izvršavati bez kompajlera • Interpreter • Prevodi svaki put kad se program izvršava i to naredbu po naredbu (prevede i izvrši, prevede i izvrši. . . ) • Omogućava trenutno otkrivanje određene vrste greške i interaktivno ispravljanje • Program se isporučuje kao izvorni kôd uz koji je neophodan interpreter Jezični prevoditelji

 • Nisu namijenjeni strogo uskom području primjene već je njima moguće rješavati relativno

• Nisu namijenjeni strogo uskom području primjene već je njima moguće rješavati relativno širok raspon zadataka • BASIC • Pascal • C (C++) • (Beginner’s all-purpose symbolic instruction code) učenje programiranja, jednostavniji programi • Učenje strukturnog programiranja, jednostavniji programi • Jezik velikih mogućnosti kojim se služe profesionalni programeri Viši programski jezici

 Jezik opće namjene za početnike PRINT : PRINT "English to Metric Conversion" INPUT

Jezik opće namjene za početnike PRINT : PRINT "English to Metric Conversion" INPUT "Miles: ", Miles INPUT "Yards: ", Yards INPUT "Feet: ", Feet INPUT "Inches: ", Inches = 63360 * Miles + 36 * Yards + 12 * Feet + Inches Meters# = Inches / 39. 37# Kilometers = INT(Meters# / 1000) Meters# = Meters# - 1000 * Kilometers Final. Meters = INT(Meters#) Centimeters = Meters# - Final. Meters Centimeters = 100 * Centimeters = INT((Centimeters +. 005) * 100) / 100 PRINT "Kilometers: "; Kilometers PRINT "Meters: "; Final. Meters PRINT "Centimeters: "; Centimeters END Primjer BASIC programa BASIC

 • Program opće najene koji podržava strukturno programiranje (skup programskih tehnika koje vode

• Program opće najene koji podržava strukturno programiranje (skup programskih tehnika koje vode logičkoj organizaciji programa – olakšava pisanje, održavanje i popravak programa) program Povrsina. Kruga var povrsina, polumjer: real; begin write(‘Upisi polumjer kruga: ‘); readln(polumjer); povrsina: =polumjer*3, 14; write(‘Povrsina je: ‘, povrsina); end. Pascal Primjer Pascal programa

#include <iostream. h> void main() { int a, b, c; cout << "Please enter

#include <iostream. h> void main() { int a, b, c; cout << "Please enter three numbersn"; cout << "a: "; cin >> a; cout << "nb: "; cin >> b; cout "nc: "; cin >> c; } if (c=(a-b)) { cout << cout << } else cout << C++ "a: "; a; " minus b: "; b; " equals c: "; c << endl; Programski jezik opće namjene za profesionalnu primjenu. Vrlo je složen i velikih mogućnosti "a-b does not equal c: " << endl; Primjer C++ programa

 • Engl. OOP (object oriented programs) • Razlog razvoja OOP je želja da

• Engl. OOP (object oriented programs) • Razlog razvoja OOP je želja da se i programi sastavljaju iz gotovih komponenata • Upotrebljavaju gotove dijelove programa (objekte, klase) pri gradnji složenijih programa • Postupak programiranja uz pomoć objekata naziva se objektno orjentirano programiranje – postupak izrade složenog programa uporabom skupa objekata koji međusobno razmjenjuju poruke • Popularni objektno orijentirani programi opće namjene: Visual Basic, Visual C++ Objektno orijentirani programi

Programski jezici opće namjene neovisni o sklopovlju i operacijskom sustavu su prenosivi (engl. portable)

Programski jezici opće namjene neovisni o sklopovlju i operacijskom sustavu su prenosivi (engl. portable) – npr. jedan te isti program napisan u C++ može se izvoditi na 2 i više različitih računala koji rade pod različitim operacijskim sustavima • Najpoznatiji su HTML i Java • PROGRAMSKI JEZICI NEOVISNI O SKLOPOVLJU I OPERACIJSKOM SUSTAVU

 Eng. hypertext markup language Ograničenih je mogućnosti i ne spada u jezike opće

Eng. hypertext markup language Ograničenih je mogućnosti i ne spada u jezike opće namjene Specijalizirani programski jezik namijenjen izradi hipertekstovnih dokumenata Omogućuje prikaz mrežnog hipertekstovnog dokumenta na zaslonu monitora bez obzira na to o kakvoj je vrsti računala ili operacijskog sustava riječ Jednostavam je za uporabu i lako se uči Pregled HTML dokumenta omogućuje program koji se naziva PREGLEDNIK (engl. Browser) – najpoznatiji je Microsoft Internet Explorer HTML

<html> <head> <title>Naslov</title> </head> <body> <h 1> <font color="#FF 0000">Dobar dan</font> </h 1> </body>

<html> <head> <title>Naslov</title> </head> <body> <h 1> <font color="#FF 0000">Dobar dan</font> </h 1> </body> </html>

◦ Snažan objektno orijentirani programski jezik opće namjene nalik na C++ ◦ Glavna značajka

◦ Snažan objektno orijentirani programski jezik opće namjene nalik na C++ ◦ Glavna značajka mu je potpuna prenosivost ◦ Java se uz pomoć Java kompjlera prevodi u Java bytecodes koji je neovisan o računalu i operacijskom sustavu. To je strojni jezik za tzv. Java prividno ili virtualno računalo (engl. Java virtual machine, Java engine). Dalje se Java bytecodes (na računalu na kojem se program izvršava) uz pomoć interpretera prevodi u strojni jezik ◦ Jezik namijenjen pisanju programa za Java

import java. applet. *; import java. awt. *; public class exfour extends Applet {

import java. applet. *; import java. awt. *; public class exfour extends Applet { int i; public void init() { resize(300, 300); } public void paint(Graphics g) { g. draw. String("You clicked the mouse "+i+" Times", 50); } public boolean mouse. Up(Event e, int x, int y) { i++; repaint(); return true; } } Primjer Java programa

Da bi si olakšao pretvorbu zadataka iz svijeta koji ga okružuje u oblik prihvatljiv

Da bi si olakšao pretvorbu zadataka iz svijeta koji ga okružuje u oblik prihvatljiv računalu, čovjek se služi mnogim pomoćnim postupcima: planiranjem, opisom zadatka, algoritmom, pseudokôdom, dijagramom tijeka i sl. • Konačni će rezultat svih tih postupaka biti računalni program • Što je zadatak koji treba riješiti računalom složeniji, to je unačelu potrebno više pomoćnih postupaka (oni su međusobno povezani i redovito se slijedeći oslanja na prethodni) • Programiranje

To je prvi korak u rješavanju bilo kojeg opsežnijeg zadatka • Planiranjem se predviđa

To je prvi korak u rješavanju bilo kojeg opsežnijeg zadatka • Planiranjem se predviđa tko će, kada i što raditi • Pri izradi složenih programa često sudjeluje mnogo ljudi pa je planiranje veoma važan dio pripreme kako bi se uskladio rad svih • Čak ako program izrađuje samo jedan čovjek, planiranjem se mogu predvidjeti i rasporediti pojedine faze izrade programa • Planiranje

 Analiza zadatka je raščlamba i potpuno razumijevanje zadatka i željenih rezultata To je

Analiza zadatka je raščlamba i potpuno razumijevanje zadatka i željenih rezultata To je jedan od najsloženijih i najtežih koraka pri nastanku programa Rezultat analize je specifikacija zadatka koja sadržava dovoljno podataka da bi se taj zadatak mogao riješiti Analiza zadatka i specifikacija

 Specifikacija je dokument koji sadrži podroban popis i opis zadataka i željenih rezultata

Specifikacija je dokument koji sadrži podroban popis i opis zadataka i željenih rezultata Ako specifikacija nije napravljena kako treba ni rezultat neće biti zadovoljavajući Specifikacija nije prijedlog kako zadatak riješiti, već samo točan opis što je na raspolaganju i što se želi dobiti kao rezultat Specifikacija

Riječ algoritam dolazi od riječi Alchwarizmi što je bio nadimak perzijskog pisca imenom Abu

Riječ algoritam dolazi od riječi Alchwarizmi što je bio nadimak perzijskog pisca imenom Abu Ja’far Mohammed ibn Musa al Khowarizmi (oko 825. prije Krista) koji je napisao knjigu o matematici • Algoritam je naputak kako riješiti neki zadatak ili obaviti neki posao • Algoritam svodi cjelokupan zadatak na rješavanje više jednostavnijih, manjih zadataka • Algoritam

 Sastoji se od niza mehaničkih radnji (radnje za čije izvršenje nije potrebna posebna

Sastoji se od niza mehaničkih radnji (radnje za čije izvršenje nije potrebna posebna inteligencija, već ih može, slijedeći upute, izvršiti bilo tko (uključujući i stroj)) Algoritam se stvara na temelju specifikacije Zapisuje se s pomoću niza relativno jednostavnih operacija koje se mogu pretvoriti u naredbe programskog jezika. Slijednim izvršavanjem tih operacija može se na temelju ulaznih podataka dobiti željeni rezultat To je jedan od početnih koraka pri pretvorbi zadatka u računalni program Pogodno ga je prikazati dijagramom tijeka ili pseudokodom Algoritam

 1. Zagrij vodu 2. Stavi vrećicu čaja 3. Ostavi stajati 5 minuta 4.

1. Zagrij vodu 2. Stavi vrećicu čaja 3. Ostavi stajati 5 minuta 4. Posluži Algoritam

Učitati podatke 2. Zbrojiti sve podatke 3. Zbroj podijeliti s količinom podataka 4. Rezultat

Učitati podatke 2. Zbrojiti sve podatke 3. Zbroj podijeliti s količinom podataka 4. Rezultat ispisati na zaslonu monitora 1. Algoritam

Engl. flow chart • Grafički prikaz algoritma koji olakšava izradu programa • Dijagram tijeka

Engl. flow chart • Grafički prikaz algoritma koji olakšava izradu programa • Dijagram tijeka

 To je pomoćno sredstvo koje je neovisno o programskom jeziku i računalu, a

To je pomoćno sredstvo koje je neovisno o programskom jeziku i računalu, a vizualizira zadatak i on postaje pregledniji Sastoji se od nekoliko jednostavnih geometrijskih likova spojenih usmjerenim crtama koje pokazuju tijek rješavanja zadatka Dijagram tijeka je slikovni prikaz algoritma Olakšava analizu, bolje razumijevanje zadatka i uočavanje logičke povezanosti pojedinih manjih zadataka koje treba riješiti da bi se postiglo željeno Dijagram tijeka

Postupak Početak, kraj ili prekid programa Spojnica Odluka ili grananje programa Primjeri elemenata dijagrama

Postupak Početak, kraj ili prekid programa Spojnica Odluka ili grananje programa Primjeri elemenata dijagrama tijeka Dijagram tijeka Ručni unos podataka

Početak Zeleno svjetlo? Stajati na mjestu i motriti semafor NE DA Nastaviti vožnju Kraj

Početak Zeleno svjetlo? Stajati na mjestu i motriti semafor NE DA Nastaviti vožnju Kraj Dijagram tijeka Primjer jednostavnog dijagrama tijeka postupanja u prometu

Pseudokôd je tobožnji program (grč. pseudos laž) jer premda nalikuje računalnom programu, zapravo nije

Pseudokôd je tobožnji program (grč. pseudos laž) jer premda nalikuje računalnom programu, zapravo nije napisan u programskom jeziku koji bi se mogao izravno primijeniti na bilo kojemu računalu • Pseudokôd se sastoji od kratkih izraza na govornom jeziku koji opisuju i ukratko objašnjavaju pojedine zadatke algoritma • Pseudokôd

 • Primjer: Potrebno je poslati SMS pomoću mobilnog telefona. Psudokôd za taj zadatak

• Primjer: Potrebno je poslati SMS pomoću mobilnog telefona. Psudokôd za taj zadatak mogao bi biti: Uključiti mobilni telefon Pritisnuti tipku za izbornik Na izborniku izabrati slanje poruka Napisati poruku Upisati telefonski broj primatelja poruke Pritisnuti tipku za slanje poruke Pseudokôd

 Osoba koja piše pseudokod ne mora znati programski jezik i ne mora razmišljati

Osoba koja piše pseudokod ne mora znati programski jezik i ne mora razmišljati o pravilima pisanja programskog jezika Omogućuje mnogo pregledniji i jednostavniji oblik prikaza načina na koji će se zadatak riješiti Treba biti napisan tako da bilo koji programer može na temelju njega napisati program u bilo kojem programskom jeziku za računalo Pseudokod

 1. napraviti popis glavnih zadataka koje treba riješiti programom (može se temeljiti na

1. napraviti popis glavnih zadataka koje treba riješiti programom (može se temeljiti na prethodno izrađenom algoritmu ili dijagramu tijeka) 2. treba se usredotočiti na svaki pojednin zadatak i pokušati ga razložiti na manje zadatke (trebaju biti tako mali da ih je moguće opisati kratkim i jednostavnim jezičnim izrazom) 3. zbog bolje čitljivosti i razumljivosti treba uvlačiti pojedine skupine izraza koje čine logičku cjelinu Kako napisati pseudokod

 Programska struktura je ustrojstvo programa tj. način i redoslijed rješavanja pojedinih manjih zadataka

Programska struktura je ustrojstvo programa tj. način i redoslijed rješavanja pojedinih manjih zadataka da bi se došlo do konačnog rješenja Najčešće se koriste: Upis i ispis podataka, Pridruživanje, Pravocrtna programska struktura, Struktura grananja i Struktura petlje Programske strukture

 Upis je postupak kojim se računalu daju podaci da bi ono moglo rješiti

Upis je postupak kojim se računalu daju podaci da bi ono moglo rješiti određeni zadatak Upis se vrši s pomoću tipkovnice Upis=ulaz/unos podataka u računalo Ispis podataka je postupak kojim računalo priopćava rezultat okolini Ispis može biti na ekran, papir, disk i sl. Upis i ispis podataka

 Varijable=veličine koje mogu mijenjati svoju vrijednost a koriste nam pri rješavanju matematičkih zadataka

Varijable=veličine koje mogu mijenjati svoju vrijednost a koriste nam pri rješavanju matematičkih zadataka Pridruživanje je postupak dodjeljivanja vrijednosti varijabli Znak za pridruživanje je = Pridruživanje

 Pojavljuje se samo kod rješavanja najjednostavnijih zadataka gdje se program uvijek izvršava istim

Pojavljuje se samo kod rješavanja najjednostavnijih zadataka gdje se program uvijek izvršava istim slijedom naredbi Primjer: program koji zbraja dva broja i ispisuje rezultat UNESI DVA BROJA. ZBROJI BROJEVE. ISPIŠI ZBROJ UNESENIH BROJEVA. Bez obzira na ulazne vrijenosti i međurezultate obrade naredbe se uvijek izvršavaju istim redoslijedom Pravocrtna programska struktura (slijed, niz)

 Programska struktura koja omogućuje različiti tijek programa, ovisno o rezultatu NE Da li

Programska struktura koja omogućuje različiti tijek programa, ovisno o rezultatu NE Da li je x > 0 ? x=0 Grananje DA

 Programska struktura koja se koristi kad je u programu neku radnju potrebno ponoviti

Programska struktura koja se koristi kad je u programu neku radnju potrebno ponoviti više puta Npr. kad korisnik treba unijeti 100 cijelih brojeva, a prije svakog unosa broja se ispisuje tekst “Unesi broj” Ispisati tekst “Unesi broj”. Unijeti broj. . I tako 100 puta ! Petlja

 Umjesto način: toga isti zadatak se može riješiti na slijedeći Ponoviti 100 puta

Umjesto način: toga isti zadatak se može riješiti na slijedeći Ponoviti 100 puta petlju. Petlja: Ispisati tekst “Unesi broj”. Unijeti broj. Kraj petlje. Oba programa će dati isti rezultat. Razlika je samo u tome što će u prvom slučaju programer morati napisati 200 linija koda a u drugom slučaju samo 4 Petlja

 Postupak zapisivanja temeljnih radnji (do kojih se došlo planiranjem, algoritmom, pseudokodom, dijagramom tijeka)

Postupak zapisivanja temeljnih radnji (do kojih se došlo planiranjem, algoritmom, pseudokodom, dijagramom tijeka) naredbama odabranog programskog jezika Ponekad se naziva i kodiranje. Svaki programski jezik koristi vlastiti, ograničeni skup riječi koje imaju posebna značenja – ključne riječi Za svaki programski jezik su propisana stroga pravila slaganja ključnih riječi u naredbe i program - sintaksa Programiranje

 Logički način na koji programer može predočiti jedan te isti zadatak je višestruk

Logički način na koji programer može predočiti jedan te isti zadatak je višestruk i uključuje znanje, spretnost i maštovitost programera Jedna te ista radnja može se izvršiti s pomoću više različitih programa Programer je graditelj koji slažući naredbe gradi program Programiranje

 Najčešće su sintaktičke i logičke pogreške Pogreška koja nastaje zbog nepoštivanja propisane sintakse

Najčešće su sintaktičke i logičke pogreške Pogreška koja nastaje zbog nepoštivanja propisane sintakse naziva se sintaktička pogreška Otkrivaju ih jezični prevoditelji Pogreška koja uzrokuje neispravan rad programa se naziva logička pogreška Logičku ispravnost programa (ispravnost u smislu da program obavlja željenu radnju) mora osigurati programer i tu mu računalo ne može pomoći Glede logičke ispravnosti programer se može osloniti na algoritam, pseudokod, dijagram tijeka i druga pomagala koja trebaju osigurati logičku ispravnost programa Greške u programiranju

 Logička ispravnost programa se osigurava provjerama ili testiranjem. Provodi se kod proizvođača programa

Logička ispravnost programa se osigurava provjerama ili testiranjem. Provodi se kod proizvođača programa i neovisnih ispitivača Unatoč opsežnom ispitivanju često se pogreške otkrivaju tek kod krajnjeg korisnika, jer su one često skrivene i pojave se tek stjecajem niza posebnih okolnosti Bug je naziv za pogrešku u programu ili sklopovlju računala Postupak provjere i pisanja programa je opetovani (iterativan) – slika 1. 3, str. 248. Provjera i ispravljanje programa

 Tijekom vremena potrebne su manje ili veće izmjene programa zbog promijene potreba korisnika,

Tijekom vremena potrebne su manje ili veće izmjene programa zbog promijene potreba korisnika, promijene sklopovlja na kojem se program izvršava, otkrivenja skrivene pogreške u programu i dr. Postupak mijenjanja programa tijekom životnog vijeka programa i poduka korisnika o uporabi programa naziva se održavanje programa Određenu potporu predstavlja i mogućnost kontaktiranja službe za korisnike telefonom ili emailom Održavanje

 Važan dio izrade programa je i izrada dokumentacije za održavanje programa Tu spadaju

Važan dio izrade programa je i izrada dokumentacije za održavanje programa Tu spadaju upute za instalaciju programa, priručnici za korisnika, tehnički opis programa i samo katkad izvorni program Dokumentacija