Professional Documents
Culture Documents
1 - Od Problema Do Programa
1 - Od Problema Do Programa
PRVO PREDAVANJE
OD PROBLEMA DO PROGRAMA U
PROGRAMSKOM JEZIKU C++
Tko sudjeluje u izvoenju nastave ?
2
Obveze studenata
Kontrolne zadae:
Tijekom semestra studenti mogu obraniti 4 kontrolne zadae
od kojih svaka nosi najvie 10 bodova.
Kontrolne zadae definira suradnik na kolegiju (asistent).
Studenti trebaju samostalno rijeiti kontrolnu zadau te
rjeenje pravovremeno uitati na za to predvieno mjesto u
sustavu za e-uenje.
Rjeenja zadaa provjeravaju se tijekom laboratorijskih vjebi.
Studenti koji nisu spremni prezentirati rjeenje pojedine
zadae, gube bodove iz iste.
Koritenje tueg rjeenja (plagijat) je zabranjeno te povlai
disciplinsku odgovornost.
4
Aktivnosti kontinuiranog praenja (2)
Kolokviji:
Sastoje se od rjeavanja teorijskih i praktinih zadataka
otvorenog tipa.
Da bi poloili 2 kolokvija od kojih svaki nosi najvie 20 bodova,
studenti trebaju temeljito prouiti gradivo kolegija (materijale
sa predavanja i laboratorijskih vjebi te osnovnu i dodatnu
literaturu).
Kolokvijima mogu pristupiti samo studenti koji su u tekuoj
akademskoj godini upisali kolegij.
Nema ponavljanja, ispravljanja ni nadoknade kolokvija.
Prepisivanje na kolokvijima je zabranjeno te povlai disciplinsku
odgovornost.
5
Aktivnosti kontinuiranog praenja (3)
Seminarski rad:
Svaki student treba odabrati temu iz ireg podruja kolegija te istu prijaviti kod
predmetnog nastavnika.
Nakon to predmetni nastavnik odobri temu, student moe pristupiti izradi
seminarskog rada.
Tijekom izrade seminarskog rada, studenti se trebaju pridravati pravilnika o izradi
seminarskog rada te citiranju koritene literature.
Svaki student treba obraniti odabranu temu seminarskog rada u za to unaprijed
definiranom terminu.
Studenti na obranu trebaju donijeti uvezenu tiskanu verziju seminarskog rada i
PowerPoint prezentaciju.
Ukoliko seminarski rad sadri praktinu komponentu, implementaciju je potrebno
pohraniti na CD/DVD medij te isti priloiti uz tiskanu verziju seminarskog rada.
Seminarski rad nosi najvie 20 bodova.
Digitalnu verziju seminarskog rada potrebno je uitati na za to predvieno mjesto u
sustavu za e-uenje.
Studenti koji nisu spremni obraniti seminarski rad, gube bodove iz istog.
Koritenje tueg rada (seminarskog, zavrnog, diplomskog i sl.) i predstavljanje kao
svojeg (plagijat) je zabranjeno te povlai disciplinsku odgovornost.
6
Ocjena kontinuiranog praenja
7
E-uenje
Studenti su obvezni:
prijaviti se na mrene stranice kolegija na e-uenju s
@unipu.hr korisnikim identitetom
pratiti obavijesti na mrenim stranicama kolegija na e-uenju i
informacije na e-oglasnoj ploi na mrenim stranicama studija
Literatura
Obvezna:
Sinkovi, G., kori, I.: Osnove programiranja u programskom
jeziku C++. FET, Pula (2006)
ribar, J., Motik, B.: Demistificirani C++. Element, Zagreb
(2014)
Materijali sa predavanja i laboratorijskih vjebi
Izborna:
Lippman, S. B., Lajoie, J., Moo, B. E.: C++ primer. Objectwrite
Inc., Upper Saddle River (2013)
Stroustrup, B.: The C++ Programming Language. Pearson
Education Inc., Upper Saddle River (2013)
Priruna:
Stroustrup, B.: Programming: Principles and Practice Using
C++. Pearson Education Inc., Upper Saddle River (2014)
9
to raditi i ne raditi?
10
Motivacija
12
to je programiranje?
13
to je programiranje?
Top od ideje
Down do programa
14
Od ideje do programa
Problem
Algoritam
Program
15
Problem
16
Kako zadati problem?
Ulazni
Program Rezultat
podaci
17
Kako zadati problem?
18
Kako zadati problem prvi primjer
19
Kako zadati problem prvi primjer
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
20
Kako zadati problem prvi primjer
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
IZLAZ:
AB
21
Kako zadati problem drugi primjer
22
Kako zadati problem drugi primjer
ULAZ:
Pozitivni cijeli broj A
23
Kako zadati problem drugi primjer
ULAZ:
Pozitivni cijeli broj A
IZLAZ:
Broj A zapisan u heksadecimalnom i oktalnom sustavu
24
Kako zadati problem trei primjer
25
Kako zadati problem trei primjer
ULAZ:
Pozitivni cijeli broj N i niz od N decimalnih brojeva
26
Kako zadati problem trei primjer
ULAZ:
Pozitivni cijeli broj N i niz od N decimalnih brojeva
IZLAZ:
Aritmetika sredina zadanih N decimalnih brojeva
27
Kako rijeiti problem?
Raunalni
program
Podaci Algoritam
28
Podaci
Algoritam
koncizno opisan postupak koji prevodi ulazne podatke problema u
rezultat.
openito rjeenje problema koje jo nije prilagoeno raunalu
ne mora nuno biti u digitalnom obliku.
Algoritam treba
Imati 0 ili vie ulaza (Ulaz)
Imati 1 izlaz (ili vie) (Izlaz)
Svaka instrukcija algoritma treba biti nedvosmislena
(Jednoznanost)
U algoritmu nakon izvrenja svake instrukcije treba biti
nedvosmisleno jasno koja se instrukcija sljedea izvodi
(Odreenost)
Algoritam mora biti takav da raunalo ili ovjek nakon konanog
broja koraka u konanom vremenu doe do rezultata
(Djelotvornost) 30
Algoritam
31
Algoritam
32
Algoritam prvi primjer
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
IZLAZ:
AB
Algoritam prvi primjer
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
IZLAZ:
AB
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
IZLAZ:
AB
Algoritam prvi primjer
ULAZ:
Dva decimalna broja A i B i aritmetika operacija
IZLAZ:
AB
37
Algoritam drugi primjer
38
Algoritam drugi primjer
39
Algoritam drugi primjer
1. Ispii A=
2. Uitaj cijeli broj A
3. Ako je A0 vrati se na 1
4. Prebaci format ispisa cijelih brojeva u oktalni sustav
5. Ispii broj A
6. Prebaci format ispisa cijelih brojeva u heksadecimalni sustav
7. Ispii broj A
40
Algoritam trei primjer
41
Algoritam trei primjer
42
Algoritam trei primjer
43
Algoritam trei primjer
44
Algoritam trei primjer
46
Razvoj programskih jezika
47
Klasifikacija programskih jezika
Proceduralno
C BASIC C++
programiranje
Pascal Fortran Oberon
Objektno-
Strukturirano
orijentirano
programiranje
programiranje
Proceduralno programiranje
49
Proceduralno-strukturirano programiranje
Strukturirano programiranje
ne koristi go to naredbu
svaka struktura moe imati samo jedan ulaz i izlaz
meutim, mnogi jezici (npr. C) dozvoljavaju viestruke putanje do izlaza
(npr. continue, break, return)
dodatak na proceduralni model: ono definira niz osnovnih jezinih
konstrukcija, kao to su petlje, grananja i pozivi procedura, koje unose red
u programe i ine samo programiranje daleko jednostavnijim, a napisani
kd itljivijim
Proceduralno-strukturirano programiranje
obiljeavaju ga potprogrami (procedure) koji mogu biti
interni (dijelovi glavnog programa)
eksterni (modularni, pohranjeni izvan glavnog programa i ukljuivani
prema potrebi)
pojedini potprogram moe svoj posao obaviti kombinirajui rad drugih
potprograma
50
Objektno-orijentirano programiranje (OOP)
51
Obiljeja OOP 1/2
Enkapsulacija
objekt se ne sastoji iskljuivo od podataka ve sadri i metode
neophodne za operacije nad tim podacima
podaci su privatni za svaki objekt te nisu dostupni ostalim
dijelovima programa
na taj su nain podaci zatieni od neovlatene promjene izvan
objekta koja bi mogla naruiti njegovu cjelovitost
Skrivanje podataka
Svaki objekt svojoj okolini prua iskljuivo podatke i operacije
koji su neophodni da bi okolina objekt mogla koristiti.
Ti javno dostupni podaci zajedno s operacijama koje ih
prihvaaju ili vraaju ine suelje objekta.
Programer koji e koristiti taj objekt vie se ne mora zamarati
razmiljajui o nainu na koji objekt iznutra funkcionira on
jednostavno preko suelja trai od objekta odreenu uslugu
52
Obiljeja OOP 2/2
Nasljeivanje
prilikom rjeavanja nekog problema moemo iz poetka pisati
kod ili uzeti neku gotovu komponentu koja je blizu rjeenja i
samo dodati nove mogunosti
navedeno se zove ponovna iskoristivost postojee komponente
dok se za novu komponentu kae da je naslijedila svojstva
komponente iz koje je izgraena
Polimorfizam
svojstvo da razliiti objekti istu operaciju obavljaju na razliite
naine
53
Funkcijsko programiranje
54
Logiko programiranje
56
ADA
57
PLANKALKL
Program Pozdrav
Print *, "Pozdrav svijetu!"
End Program Pozdrav
59
COBOL
#include<stdio.h>
main(){
printf("Pozdrav svijetu!");
}
62
PASCAL
program Pozdrav;
begin
writeln('Pozdrav svijetu!');
end.
63
C++
#include <iostream>
int main(){
std::cout << "Pozdrav svijetu!\n";
return 0;
} 64
Zato C++?
66
Razvoj programskih jezika dodatna literatura
67