Programska podrška i programiranja
-
Upload
jebise-jebise -
Category
Documents
-
view
24 -
download
0
description
Transcript of Programska podrška i programiranja
-
PROGRAMSKA PODRKA I PROGRAMIRANJE
-
1. UVODPoslovni sustav -> Informacijski sustav -> Model -> Algoritam
Programi su raunalna implementacija nekog procesa iz realnog (poslovnog) sustava.
Da bismo od poslovnog procesa doli do njegove raunalne implementacije tj. programa, potrebno je proi kroz sljedee korake:
1. Analiza realnog sustava
a. ralaniti funkcije realnog sustava na procese i podprocese, teodluiti koji e od njih biti informatizirani
b. identificirati tokove podataka meu (pod)procesima
2. Oblikovanje programskog sustava
a. podijeliti (pod)procese na elementarne zadatke (tj. procedure)
b. definirati ulazne i izlazne podatke za svaku od procedura
-
3. Realizacija programskog sustava
a. opis svake od procedura pomou algoritama (konani niz korakakoji u konanom vremenu jednoznano dovode do rjeenjaproblema) koji se za potrebe programiranja najee iskazuju u"polu-formalnoj/polu-slobodnojezinoj formi" (npr. pomoupseudokoda) ili u grafikom obliku (npr. blok-dijagrami) ili umatematikom obliku.
b. implementacija algoritama u konkretnom programskom jeziku injihovo povezivanje u cjelinu = programiranje
4. Testiranje programskog sustava provjerava seispravnost rada programskog sustava, pri emu se koristeprethodno definirani ulazni podaci
5. Izrada dokumentacije programskog sustava
6. Uvoenje u rad
1. UVODPoslovni sustav -> Informacijski sustav -> Model -> Algoritam
-
Programski jezik bismo najkrae mogli definirati kao formalni umjetni jezik koji
krajnjim korisnicima (ljudima) omoguuje izdavanje uputa raunalu.
1. UVODPoslovni sustav -> Informacijski sustav -> Model -> Algoritam
-
2. STRUKTURA PROGRAMSKOG JEZIKA
Kao takav, programski jezik sastoji se od sljedeih elemenata:
1. Kljune rijei Jo ih nazivamo i naredbama
Svaka naredba izvrava nekakav elementarni zadatak na nivou programskog jezika
Kombiniranjem kljunih rijei u vee cjeline nastaje izvorni kod programa, tj. program napisan u odreenom programskom jeziku
-
2. Pravila pisanja naredbi (sintaksa)
Program nastaje povezivanjem veeg broja naredbi nekog programskog jezika u vee cjeline, ali se pri tome treba drati nekih ogranienja:
naredbe se ne mogu i ne smiju nizati bilo kakvim redoslijedom, ve logiki ispravnim redoslijedom (semantika ispravnost)
pojedinane naredbe moraju biti zadane na pravilan nain u skladu sa pravilima (sintaksom) pisanja naredbi za dotini programski jezik
kod pisanja naredbi treba pripaziti na upotrebu velikih i malih slova
neke naredbe zahtijevaju argumente (parametre) za ispravan rad, a neke ne treba pripaziti da se navedu svi potrebni argumenti, i to u ispravnom redoslijedu
2. STRUKTURA PROGRAMSKOG JEZIKA
-
3. Editor programskog koda
razvojno programsko okruenje unutar kojeg piemo kljune rijei programskog jezika prema zadanim pravilima pisanja naredbi (= izvorni kod programa)
izvorni kod programa moemo pisati i u najobinijem editoru teksta, a moemo ga pisati i unutar sofisticiranih razvojnih okruenja (IDE Integrated Development Environment), koja, pored mogunosti ureivanja teksta, u jedno okruenje integriraju i:
isticanje kljunih rijei programskog jezika
podrku za prevoenje i/ili izvravanje programa
podrku za ispravljanje greaka u programu (debugging), itd.
2. STRUKTURA PROGRAMSKOG JEZIKA
-
4. Program prevoditelj
Program napisan u programskom jeziku (izvorni kod) je razumljiv ovjeku, ali ne i raunalu koje e ga morati izvravati
Izvorni kod programa mora se prevesti u raunalu razumljiv strojni oblik, tj. strojne instrukcije (nizovi 0 i 1)
S obzirom na vrstu i namjenu programskog jezika, prevoenje se moe izvriti kao kompiliranje (kompajliranje) ili kao interpretiranje u tu se svrhu koriste programi prevoditelji kompajleri ili interpreteri
2. STRUKTURA PROGRAMSKOG JEZIKA
-
Kompajleri prevode izvorni kod programa kroz sljedee korake:
1. uitavanje kompletnog izvornog koda programa
2. leksika (semantika) i sintaktika analiza izvornog koda pronalaenje i ispravljanje pogreaka u programu
3. konstrukcija radnog programa zamjena naredbi u izvornom kodu sa strojnim instrukcijama faza prevoenja u uem smislu
4. optimizacija prevedenog programa
5. dobivanje izvrne datoteke
2. STRUKTURA PROGRAMSKOG JEZIKAProgrami prevoditelji -> kompajleri i interpreteri
-
Rezultat postupka kompajliranja je izvrna datoteka (execute datoteka) s prevedenim strojnim instrukcijama.
Postupak prevoenja se radi samo jednom, a izvrna datoteka se moe pokretati bilo kada, bez potrebe za ponovnim prevoenjem izvornog koda u strojne instrukcije.
Kompajlerski jezici C, C++, C#, Pascal, ...
2. STRUKTURA PROGRAMSKOG JEZIKAProgrami prevoditelji -> kompajleri i interpreteri
-
Interpreteri prevode izvorni kod programa kroz sljedee korake:
1. uitavanje jedne linije izvornog koda programa
2. leksika i sintaktika analiza uitane linije izvornog koda
3. prevoenje naredbi iz uitane linije izvornog koda u strojne instrukcije
4. izvoenje strojnih instrukcija iz prevedene linije izvornog koda
5. itanje idue linije izvornog koda i ponavljanje kompletnog postupka opisanog u koracima 2-5 sve dok se ne izvede i zadnja linija izvornog koda
2. STRUKTURA PROGRAMSKOG JEZIKAProgrami prevoditelji -> kompajleri i interpreteri
-
Rezultat postupka interpretiranja je izvreni program, tj. obrada podataka
ne stvara se izvrna datoteka, nego se prilikom svakog pokretanja programa mora napraviti i prevoenje izvornog koda u strojne instrukcije postupkom interpretiranja.
Interpreterski jezici Basic, PHP, ASP, Python ...
2. STRUKTURA PROGRAMSKOG JEZIKAProgrami prevoditelji -> kompajleri i interpreteri
-
Kod razvoja kompleksnijih programa poeljno je organizirati budui program na papiru, koristei pri tome
a. mjeavinu govornog jezika i izabranog programskog jezika (tj. pseudokod) za opis elementarnih postupaka, ili
b. grafiki prikaz pomou simbola koji predstavljaju elementarne postupke (tj. blok-dijagram)
3. OSNOVNE PROGRAMSKE STRUKTURE
-
Svaki problem je u konanici mogue dekomponirati na nekoliko osnovnih programskih struktura (strukturno programiranje)
Povezivanjem i kombiniranjem osnovnih programskih struktura u skladu s problemom kojeg treba rijeiti dobivamo eljeni program na razini pseudokoda.
Konkretizacijom pseudokoda u ciljni programski jezik (zamjenom osnovnih struktura s naredbama ciljnog programskog jezika) dobivamo eljeni program u obliku izvornog koda.
3. OSNOVNE PROGRAMSKE STRUKTURE
-
Koritenjem pseudokoda ili blok-dijagrama moemo opisati sljedee temeljne programske strukture:
1. Sekvenca (slijed) niz naredbi koje se izvravaju jedna za drugom, onim redoslijedom kako su i zadane
naredba1
naredba2
naredba3
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
Pseudokod Blok-dijagram
naredba1
naredba2
naredba3
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
Podesi budilicu
Spavaj
Ustani
Obavi uobiajene jutarnje aktivnosti
Izai na svjei zrak
Budilica
zvoni
SE
KV
EN
CA
-
Pseudokod Blok-dijagram
IF uvjet THEN
blok naredbi 1
(ukoliko je
zadovoljen
uvjet, izvrava
blok naredbi 1)
2. Selekcija (odabir) ovisno o ispunjenju nekog uvjeta, izvrava se jedan od vie blokova (sekvenci) naredbi
uvjet
blok naredbi 1
DA
NE
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
uvjet
blok naredbi 1
DA
NE
IF-
THEN
Vani je
pljusak?
Iskljui budilicu
Produi spavanje za N sati
DA
NE
Podesi budilicu
Spavaj
Ustani
Obavi uobiajene jutarnje aktivnosti
Izai na svjei zrak
SE
KV
EN
CA
IF-THEN
Budilica
zvoni
-
Pseudokod Blok-dijagram
IF uvjet THEN
blok naredbi 1
ELSE
blok naredbi 2
(ukoliko je
zadovoljen uvjet,
izvrava se blok
1,a ukoliko nije
izvrava se blok 2)
uvjetDA NE
blok naredbi 2blok naredbi 1
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
DA NE
Ustani
Obavi uobiajene jutarnje aktivnosti
Doi na nadoknadu predavanja
Iskljui budilicu
Produi spavanje za N sati
Nezgodno
jutro nakon
brucoijade?
Podesi budilicu
Spavaj Budilica
zvoni
Naui gradivo s nadoknade
IF-THEN-
ELSE
SE
KV
EN
CA
-
Pseudokod Blok-dijagram
SWITCH izraz
CASE vrijednost 0
blok naredbi 1
CASE vrijednost 1
blok naredbi 2
CASE vrijednost 2
blok naredbi 3
- ili -
IF izraz=vr0 THEN
blok naredbi 1
ELSE IF izraz=vr1 THEN
blok naredbi 2
ELSE IF izraz=vr2 THEN
blok naredbi 3
(ovisno o
vrijednosti
izraza, izvrava
se odreen blok
naredbi i to
samo jedan
blok)
izraz =
vr. 0
DA
NE
blok naredbi 2
blok naredbi 1
izraz =
vr. 1
DA
izraz =
vr. 2
NE
blok
naredbi 3
DA
NE
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
pr -> prosjena ocjena
pr = unos(Brojani prosjek)
IF pr
-
Pseudokod Blok-dijagram
WHILE uvjet DO
blok naredbi
(petlja prvo
ispituje uvjet ,a
onda izvrava blok
naredbi ovisno o
ispunjenju uvjeta)
3. Iteracija (ponavljanje, petlja) izvrava odreeni blok naredbi tako dugo dok je uvjet ispunjen
a. Petlja sa izlazom na vrhu - ako uvjet nije ispunjen, ne izvrava se nijedna naredba u bloku
uvjet
DA
NE
blok naredbi
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
Neprolazno?
DA
NE
Ui
Rijei pripremni test
Rijei pripremni test
Pristupi ispitu
WHILE-DO
SE
KV
EN
CA
-
Pseudokod Blok-dijagram
DO
blok naredbi
WHILE uvjet
(petlja izvrava
blok naredbi, a
onda ispituje
ispunjenje uvjeta)
b. Petlja sa izlazom na dnu blok naredbi izvrava se
barem jednom, neovisno o ispunjenju uvjeta
uvjetDA
NE
blok naredbi
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
DA
NE
Neprolazno?
Ui
Rijei pripremni test
Pristupi ispitu
DO-WHILE
SE
KV
EN
CA
-
Pseudokod Blok-dijagram
FOR broja od m do n
blok naredbi
NEXT
(petlja izvrava blok
naredbi tako dugo
dok je broja u
zadanom rasponu;
na kraju svake
iteracije se broja
uveava za 1)
c. Petlja s konanim brojem ponavljanja blok
naredbi izvrava se zadani broj puta
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
c. Petlja s konanim brojem ponavljanja blok naredbi izvrava se
zadani broj puta
3. OSNOVNE PROGRAMSKE STRUKTURESlijed (sekvenca) Odabir (selekcija) Ponavljanje (iteracija)
-
Za jednog studenta je potrebno izraunati ukupni iznos rauna za jedan obrok. Potrebno je omoguiti unos cijene artikala i njihovih koliina za sve stavke na raunu, te izraunati i prikazati ukupni iznos na raunu.
4. PRIMJER
-
Program Raun
Poetak
ukupni_iznos = 0
jos_stavaka = da
RADI DOK JE jos_stavaka = da
Unesi cijena
Unesi koliina
iznos_stavke = cijena * koliina
ukupni_iznos = ukupni_iznos + iznos_stavke
Unesi jos_stavaka
KRAJ-RADI
Ispii ukupni_iznos
Kraj
4. PRIMJERPseudokod
1. Omoguiti unos cijene
artikala i njihovih koliina
za sve stavke na raunu
2. Izraunati i prikazati
ukupni iznos na raunu.
-
4. PRIMJERBlok-dijagram
-
PRIMJER:
Za jednog studenta je potrebno izraunati ukupni iznos rauna za jedan obrok. Potrebno je omoguiti unos cijene artikala i njihovih koliina za sve stavke na raunu, te izraunati i prikazati ukupni iznos na raunu.
PROIRIMO NAVEDENI PRIMJER SA: Provjeriti da li je iznos vei od 100.
Ako je, onda se ispisuje "Prekoraenje dnevnog limita".
Ako nije, onda se ispisuje "Raun uredan".
4. PRIMJERProirenje
-
1. Potrebno je unijeti dva broja. Ako je prvi broj vei od drugog, onda ih treba oduzeti. Ako je suprotno, brojeve treba zbrojiti i ispisati to se radilo, te konani rezultat.
2. Unijeti jedan cijeli broj vei od 0. Izraunati i ispisati zbroj brojeva od 1 do tog unesenog broja.
3. Proiriti prethodni primjer na nain da se zbrajaju samo parni brojevi.
5. PRIMJERI ZA SAMOSTALNI RAD
-
Program Raun
Poetak
ukupni_iznos = 0
jos_stavaka = da
RADI DOK JE jos_stavaka = da
Unesi cijena
Unesi koliina
Iznos_stavke = cijena * koliina
ukupni_iznos = ukupni_iznos + iznos_stavke
Unesi jos_stavaka
KRAJ-RADI
Ispii ukupni_iznos
Kraj
-
Python je jedan od najpopularnijih programskih jezika dananjice: zbog vrlo jednostavne i jasne sintakse sve se ee preporuuje kao prvi
programski jezik
prikladan i za programere poetnike i povremene programere
izuzetno bogate biblioteke najrazliitijih alata daju mu ogromnu snagu
ima vrlo iroko podruje primjene - od jednostavnih skripti (zamjena za ljusku OS-a ili jezika za Web programiranje), do oblikovanja vrlo sloenih programskih sustava
Prednost skriptnih jezika: krai programi
manja mogunost pogreke
bri ciklus provjere (ureivanje koda i testiranje)
bri razvoj programa
nema deklaracije varijabli (ili to moda i nije uvijek prednost?)
popularnost im vrlo brzo raste
6. PROGRAMSKI JEZIK PYTHON
-
ukupni_iznos = 0
jos_stavaka = "da"
while jos == "da":
cijena = input("Unesi cijenu: ")
kolicina = input("Unesi kolicinu: ")
iznos_stavke = float(cijena) * int(kolicina)
ukupni_iznos = ukupni_iznos + iznos_stavke
jos = input("Da li zelite obracunati jos jednu stavku? : ")
print("Ukupni iznos racuna:", ukupni_iznos, "kn")
6. PROGRAMSKI JEZIK PYTHONPrimjer napisan u Pythonu
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (1)
print("Zdravo svijete!)
Python
using System;
namespace ZdravoSvijeteAplikacija
{
class ZdravoSvijeteAplikacija
{
static void Main(string[] args)
{
Console.WriteLine("Zdravo svijete!");
}
}
}
C#
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (2)
using System;
namespace Prehrana
{
class Iznos_racuna
{
static void Main(string[] args)
{
float ukupni_iznos = 0;
string jos = "da";
float cijena, iznos_stavke;
int kolicina;
C#
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (2)
while (jos == "da")
{
Console.Write("Unesi cijenu: ");
cijena = float.Parse(Console.ReadLine());
Console.Write("Unesi kolicinu: ");
kolicina = int.Parse(Console.ReadLine());
iznos_stavke = cijena * kolicina;
ukupni_iznos = ukupni_iznos + iznos_stavke;
Console.Write("Da li zelite obracunati jos jednu stavku? ");
jos = Console.ReadLine();
}
Console.WriteLine("Ukupni iznos racuna: " + ukupni_iznos + " kn");
}
}
}
C# (nastavak )
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (2)
ukupni_iznos = 0
jos_stavaka = "da"
while jos_stavaka == "da":
cijena = input("Unesi cijenu: ")
kolicina = input("Unesi kolicinu: ")
iznos_stavke = float(cijena) * int(kolicina)
ukupni_iznos = ukupni_iznos + iznos_stavke
jos_stavaka = input("Da li zelite obracunati jos jednu stavku? : ")
print("Ukupni iznos racuna:", ukupni_iznos, "kn")
Python
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (3)
using System;
namespace Prehrana
{
class Iznos_racuna
{
static void Main(string[] args)
{
float ukupni_iznos = 0;
string jos = "da";
float cijena, iznos_stavke;
int kolicina;
C#
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (3)
while (jos == "da")
{
Console.Write("Unesi cijenu: ");
cijena = float.Parse(Console.ReadLine());
Console.Write("Unesi kolicinu: ");
kolicina = int.Parse(Console.ReadLine());
iznos_stavke = cijena * kolicina;
ukupni_iznos = ukupni_iznos + iznos_stavke;
Console.Write("Da li zelite obracunati jos jednu stavku? ");
jos = Console.ReadLine();
}
Console.WriteLine("Ukupni iznos racuna: " + ukupni_iznos + " kn");
C# (nastavak )
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (3)
if (ukupni_iznos > 100)
{
Console.WriteLine("*Prekoracenje dnevnog limita*");
}
else
{
Console.WriteLine("Racun je u redu.");
}
}
}
}
C# (nastavak )
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona (3)
ukupni_iznos = 0
jos_stavaka = "da"
while jos_stavaka == "da":
cijena = input("Unesi cijenu: ")
kolicina = input("Unesi kolicinu: ")
iznos_stavke = float(cijena) * int(kolicina)
ukupni_iznos = ukupni_iznos + iznos_stavke
jos_stavaka = input("Da li zelite obracunati jos jednu stavku? : ")
print("Ukupni iznos racuna:", ukupni_iznos, "kn")
if ukupni_iznos > 100:
print("*Prekoracenje dnevnog limita*")
else:
print("Racun je u redu.")
Python
-
6. PROGRAMSKI JEZIK PYTHONRazlike izmeu C# i Pythona
Koji jezik je blii pseudokodu?
-
7. PYTHON RESURSI
Python 3.4 instalacijska datoteka (Windows):
https://www.python.org/ftp/python/3.4.3/python-3.4.3.msi
(Python 3.x e biti koriten na lab. vjebama. Sastavni dio
instalacije je i razvojno okruenje IDLE pogledati u
izbornik Start > All Programs nakon instalacije)
Slubeno web mjesto:
http://www.python.org
Slubena dokumentacija (na engleskom):
http://docs.python.org/