osnove programiranja - cpp i vbafmpe.edu.ba/images/nastava/948/informacioni... · fzf travnik...

33
Osnove programiranja prof.dr. Džemal Kulašin Kiseljak, juni 2018.

Upload: others

Post on 24-Jan-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Osnove programiranja

prof.dr. Džemal Kulašin

Kiseljak, juni 2018.

Page 2: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Svaki akademski obrazovani korisnik trebao bipoznavati barem osnove programiranja i...

...biti sposoban za korištenje barem jednogjezika za razvoj programa i/ili njihovemodifikacije.

C++... C#... PHP... Java... VB(A)...

Uvod

Page 3: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Programski jezik je alat pomoću kojegprogramer kreira sopstvene programe,generirajući posebne instrukcije koje računar"razumije“.

Program je skup instrukcija programskogjezika.

Programski jezici

Page 4: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Temeljni programski jezici su C/C++.

C++ je programski jezik koji se koristi kako zarazvoj aplikacija, tako i za razvoj operativnihsistema.

Poseban kvalitet ovog jezika je mogućnostkorištenja komandi jezika visokog nivoa uzistovremenu mogućnost pristupa hardverskimkomponentama.

Osnove jezika C/C++

Page 5: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Jezik C++ spada u jezike visokog nivoa, i u tzv.kompajlerske jezike.

Osnove jezika C/C++

Kompajlerski jer...

...program se iz programskog jezika višeg nivoakompajlira (prevodi) do mašinskog jezika, tj.jezika računara!

Page 6: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Faze u programiranju

� Programiranje je zahtjevno, jer računar insistira na jasnoći!?!

� Algoritam!

� Dijagrama toka!

� Naredne faze?

Page 7: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Opće faze u razvoju programa su:

- Algoritam

- Dijagram toka

***************************************************************

- Kodiranje (Izvorni program, Source code)

- Prevođenje (Kompajliranje, Compiling)

- Rješenje (Izvršni program, Execute program)

Faze u programiranjuRazrada problema

Page 8: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

No, da bi uopće pristupili pisanju programskogkoda, potreban je odgovarajući software .

Najbolje je koristiti razvojna okruženja (IDE)pojedinih programskih alata.

IDE - Integrated Development Environment

- Za C/C++ možemo koristiti Dev C++:

Osnove jezika C/C++

Page 9: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

IDE jezika C/C++

Page 10: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Pored ostalog, podrazumijeva se...

- Poznavanje tipova podataka,

- Deklaracije varijabli, konstanti...

- Korištenje naredbi učitavanja, ispisa...

- Korištenje naredbi za ponavljanje... itd.

Osnove jezika C/C++

Page 11: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Predstavljanje cjelobrojnih podataka:

- int – cjelobrojni podatak - 16 ili 32 bita

- char – mali cjelobrojni podatak (veličina 1 bajt)

Predstavljanje realnih vrijednosti:

- float – realni podatak u jednostrukoj tačnosti (32 bita)

- double – realni podatak u dvostrukoj tačnosti (64 bita)

Osnovni tipovi podataka jezika C/C++

Page 12: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

• Rezultati su, takođe, numeričkog tipa

• Operatori inkrementiranja (++) i dekrementiranja (--)

• Operatori osnovnih operacija *, /, %

Osnovni aritmetički operatori

Page 13: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Ovoj grupi operatora pripadaju:

< (manje),

<= (manje ili jednako),

> (veće),

>= (veće ili jednako),

== (jednako),

!= (različito).

Relacioni operatori

Page 14: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Operator dodjele

Operator proste dodjele je = (ne treba ga miješati sa relacionim operatorom ==)

Lijevi operand ovog operatora je lijeva vrednost (ime promenljive), a desni operand je proizvoljni izraz.

Bitno pravilo:

Prvo se izračunava izraz na desnoj strani. Nakon toga se dobijena vrijednost upisuje u memorijsku lokaciju koja je rezervirana za čuvanje te promenljive.

Page 15: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Općenito, program predstavlja skup definicija:

- promjenljivih,

- simboličkih konstanti,

- tipova i

- funkcija.

Obavezan dio svakog C/C++ programa je funkcija main, i svaki program sadrži tačno jednu definiciju funkcije main.

Main poziva operativni sistem u trenutku poziva programa.

Struktura C/C++ programa

Page 16: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Opći oblik deklaracije promjenljive je:

Tip ime_varijable;

Primjeri:

int a, b;

long int i;

double zapremina;

Varijable (Promjenljive)

Page 17: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Opći oblik deklaracije konstante je:

Const Tip_konstante = izraz;

Primjeri:

const int a=3, b=5;

const float Pi=3.14;

Konstante

Page 18: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

• scanf i printf (u C),

• cin i cout (u C++)

• Deklaracije funkcija za upravljanje ulaznim/izlaznim resursima nalaze se u bibliotekama

• stdio.h i iostream

• Važno: Za uključivanje se koristi pretprocesorska direktiva include

Naredbe ulaza i izlaza

Page 19: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Format include direktive:

#include <ime_fajla>

Dakle, kada se u programu koriste funkcije ulaza i izlaza,

treba navesti sljedeće:

#include <stdio.h> (u C)

ili #include <iostream> (u C++)

Naredbe ulaza i izlaza

Page 20: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Naredba IF implementira osnovni tip selekcije (grananja)

Dijagram toka ove strukture:

izraz

Naredba 1 Naredba 2

FT

Naredbe selekcije - IF

Ekvivalentan kod je:

if (<izraz>)

<naredba1>

else

<naredba2>

Page 21: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Programske petlje omogućavaju višestruko ponavljanje određenog dijela programa u toku njegovog izvršavanja.

U programskom jeziku C postoje tri vrste programskih petlji:

1) for

2) while

3) do-while

Programske petlje

Page 22: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Programske petlje - FOR

FOR (izraz1; izraz2; izraz3) {

naredba }

Pri tome, argumenti su:

izraz1 – početno stanje kontrolne varijable izraz2 – uvjet

izraz3 – prirast kontrolne varijable

Page 23: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

naredba

izraz

da

ne

While petlja omogućava ponavljanje naredbe programa dok je definirani uvjet zadovoljen

Ekvivalentan kod je:

WHILE (izraz) {

naredba }

Programske petlje - While

Page 24: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Razlika: Uvjet za ponavljanje petlje u kodu nalazi se iza tijela, te se naredba mora izvršiti barem jednom!

naredba

izraz

da

ne

Ekvivalentan kod je:

DO {

naredba }

WHILE (izraz);

Programske petlje – DO - WHILE

Page 25: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

FZF Travnikpredmet: INFORMATIKA

Napraviti programsko rješenje kvadratne jedna čine u jeziku C++

Moramo početi od teorije:

- Opći oblik jednačine?

- Kakva su rješenja kvadratne jednačine?

- Razrada na plo či: koeficijent a, D, rješenja...

Primjer rješenja uz C++

Page 26: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

FZF Travnikpredmet: INFORMATIKA

Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima. Oblik parabole može opisivati mnoge pojave u prirodi poput gibanja tijela izbačenog horizontalno ili pod uglom. Poznati su mnogi građevinski objekti poput mostova ili lukova paraboličnog oblika. Ovakav oblik pojavljuje se i u poslovnim izračunima profita i u raznim drugim područjima života. Kvadratna se funkcija koristi u izračunu kvadratnih površina i drugih geometrijskih problema kao i u statističkim analizama...

Značaj kvadratne funkcije

Page 27: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima
Page 28: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

FZF Travnikpredmet: INFORMATIKA

Testne vrijednosti:

a=1 b=-8 c=12 ... (D>0)

a=1 b=-6 c=10 ... (D<0)

a=1 b=4 c=4 ... (D=0)

a=0 - poruka da se ne radi o kv. jednacini!

Primjer rješenja uz C++

Page 29: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Podvarijanta jezika VB je VBA, čije je razvojno okruženje prisutno na svakom računaru!

Pokretanje VBA okruženja:

Developer: Visual Basic

ili: Alt + F11

Programski jezik VB(A)

Page 30: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Pozivamo novi modul:

Insert – Module

Desni dio ekrana je prostor za kodiranje, tj. pisanje programskog koda

Page 31: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Fakultet za menadžment i poslovnu ekonomijuKatedra za menadžment i IS

Kodirati programsko rješenje u VBA koje konvertuje rezultate testova u slovne

ocjene (5/F, 6/E itd.)

Kriterij pretvorbe je aktuelna skala ocjenjivanja!

Primjer rješenja uz VBA

Page 32: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Function SlovnaOcjena(Rezultat As Integer) As String

Select Case Rezultat

Case Is < 55

SlovnaOcjena = "5/F"

Case Is < 65

SlovnaOcjena = "6/E"

Case Is < 75

SlovnaOcjena = "7/D"

Case Is < 85

SlovnaOcjena = "8/C"

Case Is < 95

SlovnaOcjena = "9/B"

Case Is <= 100

SlovnaOcjena = "10/A"

End Select

End Function

Page 33: Osnove programiranja - Cpp i VBAfmpe.edu.ba/images/nastava/948/Informacioni... · FZF Travnik predmet: INFORMATIKA Kvadratna funkcija i njezin graf nalaze se u mnogim naučnim područjima

Nastavna jedinka: