Upload
jebise-jebise
View
24
Download
0
Embed Size (px)
DESCRIPTION
Osnove programiranja
Citation preview
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/