Objektno orjentirano programiranje

Слични документи
Računarski praktikum I - Vježbe 01 - Uvod

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Objektno orjentirano programiranje 2P

Uvod u računarstvo 2+2

Tutoring System for Distance Learning of Java Programming Language

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Uvod u računarstvo 2+2

Programiranje 1

Uvod u računarstvo 2+2

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Uvod u računarstvo 2+2

Objektno orijentirano modeliranje

PowerPoint Presentation

070-ALIP2-udzbenik.indb

Funkcije predavač: Nadežda Jakšić

PowerPoint Presentation

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Funkcije predavač: Nadežda Jakšić

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

DWA2

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

PowerPoint Presentation

Logičke izjave i logičke funkcije

Slide 1

Tutoring System for Distance Learning of Java Programming Language

Pojačavači

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

OBRAZAC 1. Vrednovanje sveucilišnih studijskih programa preddiplomskih, diplomskih i integriranih preddiplomskih i diplomskih studija te strucnih stud

Microsoft Word - 02 Elementi programskog jezika Pascal

Microsoft Word - 11 Pokazivaci

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

PowerPoint Presentation

Tutoring System for Distance Learning of Java Programming Language

Državna matura iz informatike

Računarski praktikum I - Vježbe 09 - this, static

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Programiranje za UNIX Okruženje unix procesa

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

PROMENLJIVE, TIPOVI PROMENLJIVIH

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Informacijski sustav organizacije

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1

Sveucilište u Zagrebu

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

PowerPoint Presentation

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

Grananje u programu predavač: Nadežda Jakšić

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Microsoft Word - Izvedbeni plan - Kvantitativne metode istrazivanja final 2

(Microsoft Word - S1-MTS-Primjena ra\350unala u poslovnoj praksi -Breslauer N)

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

RAČUNALO

Programski jezik C

Diskretna matematika Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2017./2018.godina DISKRETNA MATEMATIKA Studij: Pre

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Fortran

Računarski praktikum I - Vježbe 06 - Standard Template Library (2)

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft Word - 2.FRANCUSKI A1 MOR

PowerPoint Presentation

(Microsoft Word - S1 -OR- Osnove ra\350unarstva)

KATUŠIĆ ANTONIO.pdf

Osnovni programiranja I

SPO

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

PowerPoint Presentation

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Osnove fizike 1

I

Prikaz znakova u računalu

Microsoft Word - Java_introduction_NEW_SYLLABUS.doc

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

P11.3 Analiza zivotnog veka, Graf smetnji

Programski jezici i strukture podataka

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE I Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

NAZIV PREDMETA UNUTARNJETRGOVINSKO POSLOVANJE II Kod Godina studija 2. Nositelj/i predmeta dr.sc. Ivana Plazibat, prof. Bodovna vrijednost 6 ECTS v.š.

Tutoring System for Distance Learning of Java Programming Language

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Strani jezik 2 - engleski 1.6. Semestar Nositelj kolegija Marija Miščančuk Bodovna vrijednost (E

I

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

Računalne mreže

Programski jezik C

I

KATALOG ZNANJA IZ INFORMATIKE

Uvod u PHP

I

Naziv studija Integrirani prediplomski i diplomski učiteljski studij Naziv kolegija Odabrana poglavlja iz kognitivne psihologije Status kolegija Redov

Писање и превођење модула

Транскрипт:

Objektno orjentirano programiranje Predavanje 1 Uvod Ciljevi Prvi program Konstante i varijable

Sadržaj Način provođenja nastave Obaveze studenata Sadržaj kolegija Oblik provođenja ispita

Toni Jakovčević A420 toni.jakovcevic@fesb.hr Konzultacije : po dogovoru Predavanja i laboratorijske vježbe

Način provođenja nastave Predavanja 3 sata tjedno Srijedom 11-14, B402 Vježbe 2 sata tjedno Ulazni kolokvij Termini: ČET 12:30-14:00 B525 ČET 14:00-15:30 B525 Samostalni rad Min. 2 sata tjedno Vrijeme i mjesto: po želji

Obaveze studenata Pohađanje predavanja Aktivno sudjelovanje Pohađanje vježbi Priprema za vježbe Rješavanje dodjeljenih zadataka Samostalan rad

Obaveze nastavnika Priprema literature za učenje Priprema zadataka za samostalni rad konzultacije

Preduvjeti Osnovna znanja o računalima i programiranju. Poznavanje C programskog jezika Varijable, operatori, kontrola toka, funkcije...dinamička alokacija memorije Poznavanje engleskog jezika

Ispit Kolokviji Ispit Pismeni + usmeni Pismeni: programerski zadaci Dijelovi programa Usmeni: objasniti kod

Sadržaj kolegija Način razmišljanja na objektno orijentiran način Osnove objektno orijentirane paradigme Principi programiranja. Vrste programskih jezika. Programski jezik C++. Varijable, funkcije. Kontola toka programa. Standardni ulaz i izlaz. Pojam klase i objekta. Elementi klase. Konstruktori, destruktori, mutatori pristupnici. Programski blokovi i moduli. Imenički prostori. Apstraktni tipovi podataka. Operatori i preopterećenje operatora. Nasljeđivanje i polimorfizam. Korištenje gotovih klasa lista, string, vektori, stog, red. Generičke klase, generičko programiranje i predlošci Rukovanje iznimkama.

Literatura Slajdovi sa predavanja Elearning portal The Object-Oriented Thought Process (4th Edition) (Developer's Library) by Matt Weisfeld (Author) Addison-Wesley Professional; 4 edition (March 23, 2013) Code Complete: A Practical Handbook of Software Construction, Second Edition, by Steve McConnell (Author) Microsoft Press; 2nd edition Object-Oriented Analysis and Design with Applications (3rd Edition), by Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, Kelli A. Houston (Authors) Addison- Wesley Professional Na hrvatskom Julijan Šribar i Boris Motik, Demistificirani C++

Razvojna okolina Microsoft Visual Studio ECLIPSE + CDT (C/C++ Development Tooling)

Kako naučiti C++ u 21 dan

Kako naučiti programirati

Zašto? Dobiti ocjenu? Završiti fakultet? Lakše se zaposliti? Rješavanje problema Automatizacija akcija Umjetna inteligencija Pametni okoliši...

Programiranje Računalno programiranje ili kodiranje Programiranje je pisanje uputa računalu što i kako učiniti, izvodi se u nekom od programskih jezika. Programiranje je umjetnost i umijeće u stvaranju programa za računala. sadrži u sebi elemente dizajna, umjetnosti, znanosti, matematike kao i inžinjeringa. Osoba koja stvara program zove se programer. wikipedia

Programiranje Vještina programiranja objedinjuje najbolje od: Matematike: koristi formalni jezik za označavanje ideja Inženjerstva : dizajniranje novih proizvoda, slaganje i kombiniranje dostupnih komponenti, uspoređivanje uspješnosti konkurentnih rješenja Prirodnih znanosti: pročavanje ponašanja kompleksnih sustava, prredviđanje ponašanja..

Osnovni dijelovi računala Memorija Procesor Ulazno izlazni uređaji

Osnovni dijelovi računala Procesor : srce (ili mozak) računala Izvršava instrukcije Obično jedan čip koji je u stanju izvršavati naredbe napisane strojnim jezikom Razumije svoj strojni jezik Memorija Radna memorija (RAM) Procesor čita naredbe iz memorije Memorija se koristi i za pohranu podataka koje koristi procesor u izvršavanju naredbi

Memorija Memorija je organizirana kao niz memorijskih lokacija Neke lokacije sadrže naredbe(program - code) Neke sadrže podatke (data) Stack automatske varijable korištene u funkcijama Heap dinamički alocirana memorija Podatke program dohvaća, čita i mijenja Stack Heap Static Data Code Process

Uređaji za ulaz/izlaz

Programski jezici Više razine Niže razine Kompajlerski Interpreterski

Nestrukturirano programiranje Prvi programi su obično niz naredbi u main modulu bez struktrure

Proceduralno Niz povezanih naredbi koje ispunjavaju jedan zadatak su grupirane u procedure (funkcije) Glavni program koristi pozive procedure za izvršavanje niza naredbi Procedure mogu primati parametre

Modularno Skup procedura koje čine logičku cjelinu grupira se u module Podaci: svaki modul brine se o svojim podacima Podaci modula = unutarnje stanje Svaki modul jednom se uključuje u program

Objektno orjentirano Mane modula: ne možemo uključivati više puta imati više verzija unutarnjih stanja Objekti su bolje rješenje Realni svjet sastavljen je od objekata a ne od funkcija

Objektno orjentirano programiranje Udruživanje podataka sa radnjama na njima Event driven programiranje Enkapsulacija Skrivanje podataka Nasljeđivanje Polimorfizam

Rješavanje problema Rješavanje problema: Formulirati problem Kreativno razmisliti o rješenju Izraziti rješenje točno i precizno Usvjanjem vještine programiranja: 1: problem: naučiti programirati 2: koristiti vještinu programiranja u rješavanju problema

Zahtjevi programiranja Pouzdanost - program mora raditi ono što se od njega traži. Za dobre podatke davati dobre rezultate Robustnost nepodložan pogreškama sustava. Iskoristivost (usability) ergonomičnost programa. Lak za korištenje krajnjim korisnicima Prenosivost izvoditi se na različitim softverskim i hardverskim platformama Lako održavanje proširenje, ispravke pogrešaka Efikasnost performansi - brzina izvođenja, zahtjev za memorijom, resursima...

Kako napisati svoj prvi program u c++ Instalirati C++ kompajler Kopirati #include <iostream> using namespace std; int main() { cout<<"dobar Dan!!"<< endl; } U tekstualnu datoteku Pohraniti datoteku na disk s imenom hello.cpp Kompajlirati kod Pokrenuti aplikaciju

Kompajliranje Pisanje uputa računalu Izvorni kod: upute napisane u nekom programskom jeziku Tekstualna datoteka!! Objektna datoteka Izvorni kod nakon obrade kompajlera Strojni kod.obj (win) ili.o (linux) datoteke Izvršna datoteka.exe nakon linkanja

Linkanje Broj.cpp i.obj datoteka je odnosa 1:1 Jedna datoteka izvornog koda kompajlira se u jedan objektni kod Za dobiti izvršnu datoteku potrebno je još povezati obj u exe Linker Cl, gcc i c++ su istovremeno i kompajleri i linkeri Make

Kompajleri Windows Microsoft Visual C++ (cl) MinGW (c++ ) Linux gnu c compiler (gcc) Razvojna okolina Visual studio ECLIPSE

C++ Nije potpuno objektno orjenitran (hibridni jezik) C with classes Potpuno komatibilan sa C jezikom Brz

C++ Bjarne Stroustrup Autor c++ jezika

Hello world! #include <iostream> using namespace std; //comment!! int main() { cout<<"dobar Dan!!"<< endl; }

Ulaz / izlaz Std namespace cin i cout Operator toka << i >> endl cout<<"hello! <<endl; cout<<"pick a number <<endl; cin>>x;

Varijable Memorijski objekti: podaci koji se nalaze u memoriji za vrijeme izvršavanja programa Memorijska adresa: redni broj lokacije u memoriji na kojoj je podatak nalazi Procesor : može mijenjati podatke u memoriji. Varijable : promjenjivi memorijski objekti Imaju ime Imaju tip

Deklaracija i inicijalizacija Deklaracija : ime i tip varijable Rezervira se prostor za memorijski objekt Tip određuje veličinu prostora Inicijalizacija : deklaracija u kojoj se određuje i početna vrijednost varijable.

Varijable Strongly typed (vs. weak ) Staticly typed (vs. Dynamicly) Deklaracija varijable: int i; float j; char z; double d;...

Tip podatka Određuje : način kodiranja podatka, način kako zauzima memoriju računala operacije koje su nad tim podatkom dozvoljene U većini programskih jezika standardni su tipovi podataka: numerički (cjelobrojni ili realni) logički znakovni

Osnovni tipovi podataka

// sizeof.cpp - Program koji ispisuje zauzeće memorije // za sve proste tipove C++ jezika #include <iostream> using namespace std; int main() { cout << "Sizeof(bool) = " << sizeof(bool) << endl; cout << "Sizeof(unsigned char) = " << sizeof(unsigned char) << endl; cout << "Sizeof(char) = " << sizeof(bool) << endl; cout << "Sizeof(short) = " << sizeof(short) << endl; cout << "Sizeof(unsigned short)= " << sizeof(unsigned short)<< endl; cout << "Sizeof(int) = " << sizeof(int) << endl; cout << "Sizeof(unsigned int) = " << sizeof(unsigned int) << endl; cout << "Sizeof(long) = " << sizeof(long) << endl; cout << "Sizeof(unsigned long) = " << sizeof(unsigned long) << endl; cout << "Sizeof(float) = " << sizeof(float) << endl; cout << "Sizeof(double) = " << sizeof(double) << endl; return 0; }

/* limits.cpp * Program koji ispisuje maksimalnu i minimalnu vrijednost * numeričkih tipova C++ jezika */ #include <iostream> #include <limits.h> #include <float.h> using namespace std; int main( void ) { cout << "Tip " << "Interval vrijednosti\n" << endl; cout << "bool " << false << "..." << true << endl; cout << "char " << CHAR_MIN << "..." << CHAR_MAX << endl; cout << "short int " << SHRT_MIN << "..." << SHRT_MAX << endl; cout << "int " << INT_MIN << "..." << INT_MAX << endl; cout << "long int " << LONG_MIN << "..." << LONG_MAX << endl; cout << "float " << FLT_MIN << "..." << FLT_MAX << endl; cout << "double " << DBL_MIN << "..." << DBL_MAX << endl; cout << "long double " << LDBL_MIN << "..." << LDBL_MAX << endl; return 0 ; }

char int Tip konstante unsigned float double a A \035 \x29 \n 156 0234 0x9C Literalni zapis 156U 0234U 0x9cU 15.6F 1.56e1F 15.6 1.56E1L Konstante Značenje znakovna konstanata a znakovna konstanata A znakovna konstanata 35 oktalno znakovna konstanata 29 heksadecimalno kontrolni znak nova linija decimalna notacija oktalna notacija cjelobrojne konstante heksadecimalna notacija decimalno oktalno heksadecimalno (sufiks U određuje kardinalni broj) realni broj jednostruki format određen je primjenom sufiksa F ili f konstante su tipa "double" ukoliko se ne koristi prefiks F. Nije nužno pisati sufiks L.

Aritmetički operatori Demistificirani c++

// area1.cpp - Program koji računa površinu kruga radijusa 2.1 m #include <iostream> using namespace std; int main() { cout << "Povrsina kruga radijusa 2.1 m je " << 2.1*2.1*3.14<< "m" << endl; cout << "Povrsina kruga radijusa 2 m je " << 2*2*3.14<< "m" << endl; return 0; }

// charvalue.cpp-program kojim se ispituje znakovne konstante #include <iostream> using namespace std; int main() { char c; // deklaracija varijable c tipa char int x; // deklaracija varijable x tipa int c = 'A'; // objema varijablama može se pridijeliti x = 'A'; // vrijednost znakovne konstante 'A' cout << "c = " << c << endl; cout << "Sizeof c = " << sizeof (c) << endl; cout << "x = " << x << endl; cout << "sizeof x = " << sizeof(x) << endl; cout << "Sizeof 'A' = " << sizeof('a') << endl; cout << 0.156e2<<endl; return 0; }

Posebni znakovi Znak Opis \b oznaka za povrat unatrag - backspace BS \f oznaka za stranicu unaprijed - form feed FF \n oznaka nove linije - new line NL \r oznaka za povrat na početak reda CR \t oznaka za horizontalni tabulator - HT \v oznaka za vertikalni tabulator \" uznaka za dvostruki navodnik \ oznaka za jednostruki navodnik \\ oznaka za znak \ - backslash \ooo \xhh znak kojem je ASCII kod zapisan oktalnim znamenkama ooo. znak kojem je ASCII kod zapisan heksadecimalnim znamenkama hh.

Konstante niz literalnih znakova String Niz znakova unutar dvostrukuh navodnika "Hello World!\n cout << "Hello World!" << endl; cout << "Hello World!" << \n ; cout << "Hello World!\n"; "Ovaj string je zapisan \ u dva retka" "Ovaj string" "ce biti pretvoren" "u jedan string" "Ovaj \"string\" sadrži znak \ a\ "

Logičke konstante Vrijednosti logičke istine i neistine 0 false Sve ostalo true Eksplicitno: true =1 false=0

Inicijalizacija varijabli int main() { int y, x; // deklaracija varijabli x i y x = 77; // početna vrijednost varijable x y = x + 7; // početna vrijednost varijable y... int main() { int y, x = 77; // deklaracija varijabli x i y // i inicijalizacija x na vrijednost 77 y = x + 7; // početna vrijednost varijable y... int a(76); //c++ je ekvivalentno iskazu: int a = 76;

Deklaracija simboličkih konstanti const double PI = 3.141592653589793; const char tab = '\t'; const zip = 12440; //podrazumjeva se tip int Vrijednost konstanti se ne mijenja u toku programa PI=PI+1; Pokušaj izmjene greška u kompajliranju

#define - direktiva Pretprocesorska direktiva #define PI 3.141592653589793 Kompajler će u kodu svaku pojavi znaka PI zamijeniti njegovom vrijednosšću Pretprocesorska direktiva: - svaki program u C-u mora imati barem jednu pretprocesorsku direktivu - to su naredbe pretprocesoru te ne završavaju znakom točkazarez #include uljučivanje datoteka zaglavlja #define definiranje simboličkih konstanti

#include <iostream> using namespace std; #define MESSAGE "Vrijednost broja pi = " #define PI 3.141592653589793 #define ENDL cout << "\n" int main( void) { cout << MESSAGE; cout << PI; ENDL; return 0; }

Korištenje standardnog ulaza Cin Dio biblioteke iostream int i; double x; char c;... cin >> i >> x >> c;

/* cin.cpp obrazac unosa i ispis podataka pomoću cin i cout */ #include <iostream> using namespace std; int main(void) { // 1. definiraj varijablu čiju vrijednost će unositi korisnik int unos; // 2. ispiši poruku korisniku da program očekuje unos broja: cout << "Molim otipkajte jedan cijeli broj >"; // 3. Za unos podataka koristi se standardni ulazni objekt - cin cin >> unos; // 4. obavi radnje s tom varijablom... // 5. ispiši rezultat obrada c cout << "Otkucali ste broj" << unos << endl ; return 0; }

Zadaci za vježbu 1. Napisati program koji pozdravlja korisnika po imenu 2. Napisati program koji zbraja dva unesena broja 3. Napisati program koji računa površinu kruga 4. Napisati program koji računa rješenja kvadratne jednadžbe