PowerPoint Presentation

Величина: px
Почињати приказ од странице:

Download "PowerPoint Presentation"

Транскрипт

1 Објектно орјентисано програмирање Владимир Филиповић Александар Картељ

2 Класе и објекти у програмском језику Јава Владимир Филиповић Александар Картељ

3 Дефиниција класе у Јави 3/64 Цео Јава код се налази унутар класа. Једној класи одговара једна датотека са екстензијом.java. Назив класе и назив датотеке треба да буду исти. Класа се дефинише коришћењем кључне речи class. На пример, наредбом: class Duzina је дефинисана нова класа са називом Duzina, а блок (тј. кôд између витичастих заграда), који следи, описује каква је структура новонаправљене класе.

4 Дефиниција класе у Јави (2) 4/64 Синтаксни дијаграм за декларисање класа има следећи облик: Модификатор је резервисана реч која мења основно значење неке конструкције у Јави: <modifikator>::= public private protected abstract final static native strictfp synchronized transient volatile

5 Дефиниција класе у Јави (3) 5/64 Металингвистичка променљива pridruživanje oдређује из које класе је дата класа изведена, односно, да ли дата класа имплементира неке интерфејсе: Металингвистичка променљива ime може бити индентификатор или идентикатори раздвојени тачком, док је lista imena низ имена раздвојених зарезима:

6 Дефиниција класе у Јави (4) 6/64 Тело класе представља блок у којем се наводе разне декларације:

7 Класе у Јави поља 7/64 Постоји неколико врста променљивих: 1. поља - променљиве декларисане у самој класи представљају чланове-податке унутар класе, тј. описују атрибуте објекта који је примерак дате класе; 2. локалне променљиве - променљиве декларисане у телу метода или блоку; 3. формални аргументи - променљиве декларисане у заглављу метода. У даљем разматрању се концентришемо на променљиве чланове, тј. поља.

8 Класе у Јави поља (2) 8/64 Декларација поља се састоји од три компоненте: 1. модификатора (који се опционо појављују), 2. типа поља (тип) 3. и имена поља (идентификатор). Модификатори омогућују: да се подеси видљивост дате променљиве члана (тј. поља), да се одреди да ли се ради о променљивој примерка (инстанцној променљивој) или о класној (статичкој) променљивој, као и да ли вредност променљиве постаје непроменљива непосредно по креирању (финална тј. константна). У том смислу, разликују се: променљива примерка, класна променљива и константа.

9 Класе у Јави поља (3) 9/64 Променљиве примерка Сваки од креираних објеката дате класе садржи сопствени примерак те променљиве. Променљивој примерка се може приступити само ако се референцира примерак класе који садржи ту променљиву. Промена вредности једне променљиве примерка нема утицаја на остале. Пример. class Point extends GeometryObject { int x; int y;..

10 Класе у Јави поља (4) 10/64 Као што је раније истакнуто, компонентама објекта приступа се преко тзв. тачка-нотације То се односи и на инстанцне променљиве и на инстанцне методе Пример. Пример. prviobjekt.prom; prviobjekt.prom.stanje; prviobjekat.prom.stanje = true; tackaa.x = 23; int xkoord = tackaa.x; tackaa.y = 94; System.out.println(tackaA.x +, + tackaa.y);

11 Класе у Јави поља (5) 11/64 Класне променљиве Класа садржи само једну копију класне променљиве и та променљива је дељена међу свим објектима дате класе. Она постоји чак иако се не креира ниједан примерак дате класе. Она припада класи и њу могу сви да референцирају, а не само примерци дате класе. Класна променљива се декларише коришћењем модификатора static.

12 Класе у Јави поља (6) 12/64 class ClanPorodice { static String prezime= Jankovic ; // klasna promenljiva int uzrast; // instancna promenljiva. String ime; // instancna promenljiva ClanPorodice otac = new ClanPorodice( Nikola, 52); ClanPorodice sin = new ClanPorodice( Petar, 21); ClanPorodice prezime sin otac Jankovic uzrast ime 21 Petar 52 Nikola

13 Класе у Јави поља (7) 13/64 За приступ класној променљивој се користи тачка-нотација, при чему се као прималац поруке може користити: име класе или име неке инстанце класе. Препоручује се коришћење имена класе. Пример. class ClanPorodice { static String prezime = Jankovic ; String ime; int godine; и креиран примерак sin: ClanPorodice sin = new ClanPorodice(); Класној променљивој prezime можемо приступити на следеће начине: System.out.println( Porodicno prezime je: + sin.prezime); System.out.println( Porodicno prezime je: + ClanPorodice.prezime);

14 Класе у Јави поља (8) 14/64 Константе (финалне променљиве) Модификатор final дефинише да када једном променљива добије вредност није допуштена даља промена њене вредности. Може се примењивати и код класних и код инстанцних променљивих као и код локалних променљивих. Пример. final float STOPA = 2.3f; final boolean NETACNO = false; final int BROJ_STRANA = 200;

15 Класе у Јави this 15/64 У оквиру метода примерка или конструктора, променљива this представља референцу на сам тај објекат. Коришћењем this се може реферисати на ма које поље текућег објекта над којим се позива метод примерка или конструктор. Пример. { this.x =0; this.y=0; У претходном примеру се кључна реч this може изоставити.

16 Класе у Јави this (2) 16/64 Најчешћи разлог за коришћење ове променљиве је то што поље класе буде сакривено параметром метода или параметром конструктора. Пример. public void pomeri(int x, int y) { this.x =x; this.y=y; Овде је кључна реч this неопходна да подвуче разлику између инстанцних променљивих и параметара метода. Сваки од аргумента метода сакрива по једно поље објекта, тако да је унутар метода x ознака локалне копије првог аргумента. Да би се реферисало на поље x примерка класе Point, унутар метода се мора користити this.x.

17 Класе у Јави this (3) 17/64 Примери: У наредбама које следе се користи кључна реч this: t = this.a; // a -instancna promenljiva tekućeg objekta this.prvimetod(this); // poziva se metod return this; //vraća se tekući objekt iz metoda У неким од наведених случајева може се изоставити: t = a; prvimetod(this); У некима не може: return this;

18 18/64 Опсег важења променљиве је део програма у којем име променљиве може да се користи. Код локалних променљивих, опсег важења променљиве је блок у којем је дефинисана од места где је дефинисана. Пример. { Опсег важења променљиве int a=1; //ovde se može pozivati a, ali ne i b! { //ovde se može pozivati a, ali ne jos b! int b=2; // ovde se mogu pozivati a i b! // ovde se može pozivati a, ali ne i b! // ovde se ne mogu koristiti niti a, niti b!

19 19/64 Опсег важења променљиве (2) Класним променљивима се може приступати у сваком тренутку рада програма. Променљивима примерка се може приступати сво време док постоји објекат примерак дате класе. Пример. class Opseg { int n, probna = 10; void stampaprobnu() { n=probna; int probna = 30; System.out.println( Lokalna probna = +probna); Ако треба да се унутар метода приступи сакривеном пољу probna, то се постиже помоћу this.probna.

20 20/64 Класе у Јави - методи Методи се појављују у телу класе. Они садрже декларације локалних променљивих и друге Јава наредбе које се извршавају при позиву метода. Аргументи метода се наводе у заградама иза имена метода (број аргумената може бити нула). Приликом декларације метода у класи, наводи се тип аргумената. При позиву метода наводе се стварни аргументи.

21 Класе у Јави методи (2) 21/64 Метод је самостални блок кода који има име и својство вишеструке употребљивости. Параметри омогућавају да се унесу вредности у метод: ( ) Металингвистичка променљива blok је дефинисана у једној од претходних презентација.

22 Класе у Јави методи (3) 22/64 Метод може вратити вредност и онда је потребно навести тип повратне врености. Уколико метод не враћа вредност, његов тип је void. Повратна вредност из метода се враћа преко return наредбе: Синтакса израза је дефинисана на слајдовима претходне презентације.

23 Класе у Јави методи (4) 23/64 Методи могу бити: 1. инстанцни (метод примерка) 2. и класни (статички). Класни методи се не односе на инстанцне променљиве, тј. не мора постојати ни једна инстанца, а метод се може користити! У телу класног метода се не може реферисати на променљиве примерка дате класе, већ само на класне променљиве за дату класу. Метод main(string args[]), који је неопходан у апликацијама, је увек класни, јер пре његовог стартовања не постоји ни једна инстанца. Не прави се копија класног метода за сваку инстанцу, већ се он једанпут дефинише.

24 Класе у Јави методи (5) 24/64 Методи омогућавају да се дугачак код разбије у мање целине и на тај начин доприносе прегледности кода. Основна структура метода: povratni- tip imemetoda(arg1, arg2,,argn) { // Kod metoda Telo metoda Да би метод вратио вредност, мора имати бар једну наредбу return.

25 Класе у Јави методи (6) 25/64 Име метода заједно са типом и редоследом параметара чини потпис метода. Потпис два метода у класи мора бити различит, како би компајлер могао да одреди који метод се позива. povratni-tip imemetoda(arg1, arg2,,argn) { // Kod metoda Potpis metoda Приликом позива метода, на место формалних аргумената (параметара), наводе се стварни аргументи. Код навођења формалних аргумената, за сваки аргумент мора се навести тип аргумента.

26 Класе у Јави методи (7) 26/64 У наредбама у телу метода се могу користити четири потенцијална извора података: 1. формални аргументи метода, 2. инстанцне и класне променљиве, 3. локалне променљиве, дефинисане у телу метода и 4. вредности које враћу други методи који су позвани у текућем.

27 Преоптерећење метода 27/64 Дефинисање метода са истим именом, али различитим параметрима назива се преоптерећење метода. Пример. class Pravougaonik { int x1=0; int x2 = 0 int y1 = 0; int y2 = 0; Pravougaonik gradi(int x1, int y1, int x2, int y2) { this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; return this;

28 Преоптерећење метода (2) 28/64 Pravougaonik gradi(point gorelevo, Point doledesno) { x1 = gorelevo.x; y1= gorelevo.y; x2 = doledesno.x; y2 = doledesno.y; return this; Pravougaonik gradi(point gorelevo, int l, int h){ x1 = gorelevo.x; y1 = gorelevo.y; x2 = gorelevo.x + l; y2 = gorelevo.y + h; return this; void printprav(){ System.out.println( Pravougaonik :[ (+x1+, +y1+ ),( +x2+, +y2+ )] );

29 Преоптерећење метода (3) 29/64 public static void main (String args[]){ Pravougaonik p = new Pravougaonik(); p.gradi(10,20, 30,40); p.printprav(); p.gradi(new Point(10,10), new Point(30,30)); p.printprav(); p.gradi (new Point (10,10), 20, 30); p.printprav();

30 30/64 Конструктор Приликом креирања конкретног примерка неке класе (преко оператора new), увек се позива конструктор те класе. Конструктор је метод класе који се позива приликом креирања новог примерка дате класе. Карактеристике конструктора: никад не враћа вредност његово име се поклапа са именом класе. Као и код осталих типова метода, типови и бројеви формалних параметара при декларацији и позиву се морају поклапати.

31 31/64 Конструктор (2) Уколико програмер није дефинисао конструктор за дату класу, преводилац позива подразумевани конструктор. Подразумевани конструктор: нема аргумената; иницијализује све инстанцне и класне променљиве на подразумеване вредности. Ако је програмер дефинисао бар један конструктор за дату класу, онда подразумевани конструктор више не постоји.

32 32/64 Конструктор (3) class Knjiga { String autor; String naslov; int brojstrana; Knjiga(String a, String n, int bs) { autor = a; naslov = n; brojstrana = bs; void stampapod() { System.out.println( Autor: +autor); System.out.println( Naslov: +naslov); System.out.println( Bro strana: +brojstrana); public static void main(string args[]) { Knjiga jedina; jedina = new Knjiga( Ivo Andric, Gospodjica, 257); jedina.stamppod();

33 Преоптерећење конструктора 33/64 Конструктори могу бити преоптерећени, исто као и остали методи. Ако постоји додатни конструктор, који има неке нове особине, у њему се може позвати већ постојећи конструктор употребом кључне речи this на следећи начин: this(arg1, arg2, );

34 34/64 Преоптерећење конструктора (2) class Knjiga2 { String autor; String naslov; int brojstrana; Knjiga2(String a, String n, int bs) { autor = a; naslov = n; brojstrana = bs; Knjiga2(String a, String n) { this( a, n, 200); Knjiga2(String a) { this( a, Gorski vijenac, 140); Knjiga2() { this( Njegos, Gorski vijenac, 140);

35 35/64 Преоптерећење конструктора (3) void stampapod() { System.out.println( Autor: +autor); System.out.println( Naslov: +naslov); System.out.println( Bro strana: +brojstrana); public static void main(string args[]) { Knjiga2 prva; prva = new Knjiga2( Ivo Andric, Gospodjica, 257); prva.stamppod(); Knjiga2 druga = new Knjiga2(); druga.stamppod(); prva = new Knjiga2( Dzordz Orvel ); prva.stamppod(); druga = new Knjiga2( Borislav Pekic, Atlantida ); druga.stamppod();

36 Копирајући конструктор Објекат чије унутрашње стање (тј. вредност неког поља) може да се промени назива се мутирајући објекат. У супротном се ради о немутирајућем објекту. Стога треба пажљиво радити са конструкторима мутирајућих објеката. Наиме, може се догодити да се, при извршавању конструктора, вредност поља новокреираног објекта постави тако да садржи вредност аргумента конструктора: У том случају стварни аргумент конструктора и поље новокреираног објекта постају везани и реферишу на исти објекат. Због тога промена објекта аргумента конструктора доводи до промене поља новокреираног објекта и обрнуто. 36/64

37 Копирајући конструктор (2) 37/64 class Line extends GeometryObject { Point a; Point b; Line( Point a, Point b ) { this.a = a; this.b = b; public static void main( String[] argskl ) { Point tackaa = new Point( 19, 20 ); Point tackab = new Point( 7, 52 ); Line linijaab = new Line( tackaa, tackab ); tackaa.setx(200); // ovde je doslo do promene vrednosti linijaab // sa [(19,20)-(7, 52)] na [(200,20)-(7, 52)] // iako nije radjeno sa linijaab, vec sa tackaa

38 38/64 Да би се избегле такве ситуације, потребно је уместо употребе референце на исти објекат направити копију објекта. Пример. Копирајући конструктор (3) class Line extends GeometryObject { Point a; Point b; Line( Point a, Point b ) { this.a = new Point( a.x, a.y ); this.b = new Point( b.x, b.y );

39 Копирајући конструктор (4) 39/64 Сада више нема везивања поља и аргумента. Међутим, запис је рогобатан: нарочито у случају када мутирајући објекат који представља поље новог објекта има сложену структуру. У прошлом случају било би јако добро када би постојала могућност да се једноставном наредбом направи нова копија. Да би се то постигло, потребно је да у класи која описује тип поља постоји тзв. копирајући конструктор. Да би се истакло да копирајући конструктор не може да модификује своје аргументе користи се модификатор final.

40 40/64 Копирајући конструктор (5) class Point extends GeometryObject { int x; int y; Point( int x, int y ) { this.x = x; this.y = y; Point( final Point tacka ) { this.x = tacka.x; this.y = tacka.y;

41 Копирајући конструктор (6) 41/64 class Line extends GeometryObject { Point a; Point b; Line( Point a, Point b ) { this.a = new Point( a ); this.b = new Point( b ); public static void main( String[] argskl ) { Point tackaa = new Point( 19, 20 ); Point tackab = new Point( 7, 52 ); Line linijaab = new Line( tackaa, tackab ); tackaa.setx(200); // promena kod tackaa ne menja vrednost linijaab

42 Превазилажење метода 42/64 Процес дефинисања метода у поткласи који има исти потпис као и метод у наткласи назива се превазилажење метода. Способност подкласе да превазиђе метод омогућује да нека класа: 1. наследи довољно блиску надкласу 2. и да по потреби модификује њено понашање. Нови метод има исто име, исти број и типове параметара и враће резултат истог типа као метод надкласе који се превазилази. Нови метод може да врати и подтип типа који враћа метод надкласе, што се назива коваријантни тип резултата.

43 Превазилажење метода (2) 43/64 Када се превазилази метод пожељно је користи На тај начин се даје компајлеру да желимо да урадимо превазилажење и он нас упозорава уколико метод са таквим потписом не постоји у надкласи. public class Line { void drawline(){ //implementacija crtanja linije u nadklasi public class DottedLine extends void drawline() { //prevazilazimo implementaciju iz nadklase

44 44/64 Превазилажење метода (3) Позивање одговарајућег метода дефинисаног у наткласи дате класе, а који је превазиђен у поткласи, реализује се коришћењем кључне речи super. Пример. void mojmetod( int x, int y) { // nekе naredbe super.mojmetod(x,y); // jos naredbi void mojmetod2( int x, int y) { // nekе naredbe mojmetod(x,y); // poziva se metod definisan u istoj ovoj klasi super.mojmetod(x,y); // poziva se metod definisan u nadklasi // jos naredbi

45 45/64 Превазилажење метода (4) Превазилажење конструктора се не може извршити, јер конструктор има исто име као класа у којој се налази. Приликом конструисања примерка поткласе, тј. извршења конструктора поткласе бива позван конструктор наткласе. Ако у наткласи није дефинисан конструктор, тада бива позван подразумевани имплицитни конструктор наткласе. Експлицитно позивање конструктора наткласе се може реализовати кључном речју super као у случају позива метода. super(arg1, arg2, )

46 46/64 Превазилажење метода (5) Пример. class LabeledPoint extends Point { String label; LabeledPoint (int x, int y, String label) { super(x,y); this.label = label;

47 Рекурзивни методи 47/64 Јава омогућава креирање рекурзивних метода. Шта је то рекурзија? Рекурзивни методи се извршавају: 1. или тако што метод позива самога себе (тзв. саморекурзија) 2. или тако што се у оквиру једног метода позива неки други, који опет позива овај први итд. (тзв. узајамна рекурзија) Који концепти код Јава виртуелне машине омогућавају успешан рад рекурзивних метода у Јави? Навести као илустрацију пример неког метода који је реализован на рекурзивни начин.

48 Mетод финализатор 48/64 Метод финализатор је дефинисан у оквиру класе Object, па свака класа у Јави може да га превазиђе. Овај метод се може бити позван при сакупљању отпадака. Имплементација овог метода у класи Object не ради ништа. Програмер може одлучити да у методу класе који га превазилази извршава нпр. ослобађање ресурса са којима не управља Јава виртуелна машина. Метод се позива са finalize(). Може се превазићи у сопственој класи са: protected void finalize() { Обично није неопходно његово коришћење.

49 49/64 Апликација и метод main Свака Јава апликација се састоји из одређеног броја класа и обавезног метода main. Заглавље метода main има облик: име низ аргумената типа String public static void main (String args[]) {. јавни класни не враћа вредност Јава апликацији се могу проследити аргументи типа String са командне линије C:> java MojaAplikacija prvi C:> java Prvi Ovo su argumenti C:> java Prvi Ovo su argumenti

50 Објекти 50/64 За креирање примерака (конкретних објекта неке класе) користи се оператор new. Примери: String niska = new String(); Random slicajan = new Random(); Knjiga x = new Knjiga(); Point t = new Point(20 30); Описати аутоматско управљање меморијом за објекте. Описати улогу сакупљача отпадака.

51 Објекти (2) 51/64 Компоненте објекта су: инстанцне променљиве и методи. Као што је већ истакнуто, компонентама објекта приступа се преко тзв. тачка-нотације. Пример. (а) Приступ променљивим примерка: prviobjekt.prom; prviobjekt.prom.stanje; prviobjekat.prom.stanje = true; prviobjekat.stampajme(); (б) Приступ методима: prviobjekat.uzmiime(); prvi objekat.postavivelicinu(20); prviobjekat.prom.metod3(arg1, arg2, arg3); // pozvan preko promen. prviobjekat.getclass().getname(); // metod iz metoda

52 Објекти (3) 52/64 Када се креира објекат, променљива којој се додељује представља показивач (референцу) на тај објекат. При позиву метода, у случају аргумената који представљају објекте, прослеђује се вредност референце на објекат, а не сам објекат! Обрнуто важи за аргументе метода примитивног типа, ту променљива садржи податак и дупликат текуће вредности променљиве тј. податка се прослеђује методу. Дакле, у оба случаја се врши супституција вредности, само што је код објектних аргумената у питању вредност референце. tacka1 Objekat tacka2 x: 20 y: 20

53 Објекти (4) 53/64 Поређење објеката Могуће је примењивати два оператора за поређење: = =!= У овом случају, објекти се сматрају једнаким ако заузимају исти простор у меморији. Не постоји могућност преоптерећења оператора у програмском језику Јава, па самим тим ни оператора = = и!=. Други начин не употребом метода equals који је дефинисан у оквиру класе Object, па свака класа у Јави може да га превазиђе. Имплементација овог метода у класи Object проверава да ли су објекти идентички једнаки. Програмер може одлучити да у својој класи превазиђе овај метод нпр. тако да враће true нпр. када су садржаји свих поља исти.

54 Објекти (5) 54/64 Одређивање класе објекта Може се постићи коришћењем метода getclass, који је дефинисан у класи Object и тај метод се не може се превазићи. Он враће објекат типа Class, који садржи методе (више од 50) помоћу којих се могу добити информације о датој класи. О томе ће бити више речи у делу који се односи на рефлексију. Пример. String runtimeclassname = objekat.getclass().getname(); Припадност објекта класи Реализује се помоћу оператора instanceof Пример. bilo sta instanceof String // true Point tacka = new Point(10,10); tacka instanceof String // false

55 Конверзија типова 55/64 Када се говори о конверзији типова, може се говорити о: (а) конвертовању примитивних типова у примитивне (imetipa) vrednost Пример. (int)(x/y); (б) конвертовању објеката у објекте Могуће је само код класа повезаних наслеђивањем и класа и интерфејса повезаних имплементацијом. (imeklase) objekat Пример. Vozilo x; Kamion y; Kamion y; Vozilo x = new Kamion(); y = new Kamion(); y = (Kamion) x; x= y; // Eksplicitna konverzija nеpotrebna

56 Конверзија типова (2) 56/64 (в) конвертовању примитивних типова у објекте и обрнуто. У принципу, није могуће, осим код тзв. класа-омотача примитивних типова. У пакету java.lang постоје класе: Integer, Float, Boolean, Пример. Integer ceoobj= new Integer(45); int ceo = ceoobj.intvalue(); Integer ceoobj2 = new Integer( 2*ceo ); Почев од верзије 6, Јава подржава и аутоматску конверзију између података примитивног типа и објеката у одговарајућим класама-омотачима.

57 Иницијализациони блокови 57/64 Иницијализациони блок је блок који се налази у оквиру дефиниције класе. Разликују се: 1. Иницјализациони блок примерка (инстанцни инцијализациони блок) 2. Иницијализациони блок класе (статички инцијализациони блок) static int staticvariable; int nonstaticvariable; // Staticki inic. blok se izvrsava jednom po klasi. static { System.out.println("Static initalization."); staticvariable = 5; // Instanci se poziva pre konstruktora { System.out.println("Instance initialization."); nonstaticvariable = 7;

58 Стрингови 58/64 Стринговни тип је објектни тип који се користи за представљање текста, који се чува као низ знакова. Примерци класе String не могу да мутирају, тј. да мењају вредност. Дакле, када се извршава операција над постојећим стринг објектом, као резултат се увек креира нови примерак класе String. Као код других објеката, може се користити литерал null за одбацивање објекта на који тренутно реферише дата String променљива. Пример. Постављање променљиве тако да не указује ни на шта. String nulastring = null; /* String promenljiva koja ne referiše ni na jedan string */

59 Стрингови (2) 59/64 Дужина стринга одређује се позивом метода length(). Надовезивање, тј. конкатенација стрингова врши се оператором +. Као резултат се креира нови објекат класе String који садржи новодобијени стринг. Пример. Пример надовезивања стрингова. String date = 13. ; String month = May ; String day = date + month; // rezultat je 13. May За доделу надовезаних стрингова се може користити и оператор += Пример. Пример коришћења доделе уз надовезивање стрингова. String phrase = The quick brown fox ; phrase += jumps over the lazy dog ;

60 Стрингови (3) 60/64 Метод за превођење у стринг је дефинисан у оквиру класе Object, па свака класа у Јави може да га превазиђе. Метод tostring() у класи Object враће стринг репрезентацију датог објекта. Стринг репрезентација сваког од објеката потпуно зависи од структуре тог објекта и то је разлог због код се метод tostring() обично превазилази у новонаправљеним класама. Дакле, препоручује се да свака од класа има своју реализацију метода за превођење у public String tostring() {.

61 Стрингови (4) 61/64 Израз string1 == string2 проверава да ли две променљиве типа String реферишу на исти објекат у меморији. Дакле, не пореде се садржаји String објеката, већ се пореде референце на стринг објекте. За поређење String oбјеката у односу на садржај користи се equals() или equalsignorecase(). Лексикографско поређење стрингова врши се позивом метода compareto(string), Метод враће следећу вредност: 1. < 0 oбјекат је лексикографски испред тј. мањи од аргумента 2. = 0 објекат је једнак аргументу 3. > 0 oбјекат је лексикографски иза тј. већи од аргумента

62 Стрингови (5) 62/64 Остале методе valueof() Статички метод који креира String објекат од вредности произвољног примитивног типа. startswith(string s), endswith(string) Овим методама се провера да ли стринг има прослеђени стринг као део садржаја на свом почетку или крају. indexof(int ch), indexof(string str) Овим методама се реализује претраживање датог стринга, слева удесно тј. од почетка према крају. Метод враћа (нула-базиран) индекс прве појаве датог елемента или -1 елеменат ниј пронађен. lastindexof(int ch), lastindexof(string str) Овим методама се реализује претраживање датог стринга, сдесна улево тј. од краја према почетку. Метод враћа (нула-базиран) индекс прве појаве датог елемента или -1 елеменат ниј пронађен.

63 Стрингови (6) 63/64 Остале методе String substring(int) Метод враћа подстринг датог стринга који почиње од (нула базираног) индекса start задатог као аргумент. String substring(int start, int end) Метод враћа подстринг датог стринга који почиње од (нула базираног) индекса start, a завршава са индексом end-1 String replace(char, char) Метод сваку појаву првог знакау стрингу замењује другим знаком, и као резултат вратити новодобијени стринг. String trim() Метод брише белине са почетка/краја стринга и као резултат враћа новодобијени стринг. char[] tochararray() Метод прави низ знакова на основу садржаја датог String објекта String.copyValueOf(char[]); Статички метод креира String објект на основу низа знакова који су прослеђени као аргумент.

64 Захвалница 64/64 Велики део материјала који је укључен у ову презентацију је преузет из презентације коју је раније (у време када је он држао курс ) направио проф. др Душан Тошић. Хвала проф. Тошићу што се сагласио са укључивањем тог материјала у садашњу презентацији, као и на помоћи коју ми је пружио током конципцирања и реализације курса.

3.Kontrlne (upravlja~ke) strukture u Javi

3.Kontrlne (upravlja~ke) strukture u Javi Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ

Више

PowerPoint Presentation

PowerPoint Presentation Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Сопствени пакети и унутрашње класе Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ

Више

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode] OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Deklaracija promenljivih Inicijalizacija promenljivih Deklaracija promenljive obuhvata: dodelu simboličkog imena promenljivoj i određivanje tipa promenljive (tip određuje koja će vrsta memorijskog registra

Више

Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности подата

Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности подата Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности података и операције над њима Дефиниција класе садржи само

Више

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

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 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 demonstrirana upotreba konstruktora, svojstava, metoda klase,

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Niz (array) Nizovi Niz je lista elemenata istog tipa sa zajedničkim imenom. Redosled elemenata u nizovnoj strukturi je bitan. Konkretnom elementu niza pristupa se preko zajedničkog imena niza i konkretne

Више

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

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode] Osnove programiranja Funkcije - Metode Prenos parametara Po vrednosti Po referenci Po izlazu Sadržaj Opseg važenja promenljive u drugim strukturama Rekurzije Prenos parametara Metoda može vratiti isključivo

Више

Slide 1

Slide 1 Funkcionalno programiranje Interoperabilnost jezika Scala i Java, 2019. Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Obeležene petlje Obeležene petlje Obeležavanje petlje nekim identifikatorom omogućava da se programski tok usmeri na mesto u programu specificirano tim identifikatorom. Ako se iza naredbi break ili continue

Више

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

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 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 od tih jezičkih razlika su: Java kod se prevodi u.class

Више

Tutoring System for Distance Learning of Java Programming Language

Tutoring System for Distance Learning of Java Programming Language Uvod u programiranje dr Ninoslava Savić Predavanja (3) sreda: 11:15 13:50 Učionica 16 Konsultacije sreda: 15 17 h Kabinet 43 Uvod u programiranje Fond časova: 3+3 Broj ESPB: 7 Ocena znanja (max. broj poena

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode] Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija

Више

Funkcije predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa

Више

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode] Osnove programiranja Funkcije - Metode http://www.introprogramming.info/english-intro-csharp-book/read-online/ Sadržaj Funkcije Metode Definisanje Pozivanje Povratne vrednosti Parametri Metode (1) Metoda

Више

PowerPoint Presentation

PowerPoint Presentation Java konkurentno programiranje Životni ciklus niti i problemi sinhronizacije resursa Multitasking Multithreading Životni ciklus niti http://www.roseindia.net/java/thread/lifecycle-of-threads.shtml Životni

Више

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

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić projektni zadatak projektovanje programa (algoritmi) pisanje programskog koda, izvorni kod,

Више

Microsoft Word - 11 Pokazivaci

Microsoft Word - 11 Pokazivaci Pokazivači U dosadašnjem radu smo imali prilike da koristimo promenljive koje smo deklarisali na početku nekog bloka. Prilikom deklaracije promenljiva dobija jedinstveni naziv i odgovarajući prostor u

Више

PowerPoint Presentation

PowerPoint Presentation Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Енумерисани и генерички типови Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ

Више

PowerPoint Presentation

PowerPoint Presentation Tehnička škola 9. maj Bačka Palanka Programiranje III razred Tok izvršavanja programa Tok izvršavanja programa Dosadašnji kod se izvršavao praktično linearno. Nije postojala nikakva uslovna ili brojačka

Више

Inženjering informacionih sistema

Inženjering informacionih sistema Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)

Више

Zadatak 011 Razmotrite sljedeći primjer. package hr.fer.oopj.primjeri.p011; public class Main { } public static void main(string[] args) { obrada(2.71

Zadatak 011 Razmotrite sljedeći primjer. package hr.fer.oopj.primjeri.p011; public class Main { } public static void main(string[] args) { obrada(2.71 Zadatak 011 Razmotrite sljedeći primjer. package hr.fer.oopj.primjeri.p011; public class Main { public static void main(string[] args) { obrada(2.7182818284590452354); private static void obrada(double

Више

12 Stanje

12 Stanje Projektovanje softvera (1) Ime i klasifikacija: (engl. State) objektni uzorak ponašanja Namena: omogućava objektu da pouzdano menja svoje ponašanje kada se menja njegovo unutrašnje stanje izgleda kao da

Више

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

Računarski praktikum I - Vježbe 03 - Implementacija strukture string Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 03 - Implementacija strukture string v2018/2019. Sastavio: Zvonimir Bujanović Stringovi u C-u String

Више

PROMENLJIVE, TIPOVI PROMENLJIVIH

PROMENLJIVE, TIPOVI PROMENLJIVIH PROMENLJIVE, TIPOVI PROMENLJIVIH Šta je promenljiva? To je objekat jezika koji ima ime i kome se mogu dodeljivati vrednosti. Svakoj promenljivoj se dodeljuje registar (memorijska lokacija) operativne memorije

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Ulaz i izlaz podataka Ulaz i izlaz podataka Nakon odslušanog bit ćete u stanju: navesti sintaksu naredbi za unos/ispis znakova znakovnih nizova cijelih brojeva realnih brojeva jednostruke i dvostruke preciznosti

Више

Programski jezik C

Programski jezik C Pojam funkcije Deklaracija i definicija funcije Poziv funkcije Memorijske klase promjenljivih Primjeri. Za kompajliranje koda koristen DEV-C++ 4.9.9.2 Compiler!!!! Moze is koristiti I bilo koji drugi standardni

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode] Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева

Више

Microsoft Word - 02 Elementi programskog jezika Pascal

Microsoft Word - 02 Elementi programskog jezika Pascal Elementi programskog jezika Pascal Osnovni elementi jezika Osnovni simboli U programskom jeziku Pascal sve konstrukcije se grade od skupa osnovnih simbola jezika koji čine slova, cifre i specijalni znaci.

Више

Projekti šabloni

Projekti šabloni Projekti obrasci Kreiranje objekata Uvod Enkapsuliraju znanje o tome koje konkretno klase koristi sistem Sakrivaju instanciranje objekata i načine na koji se oni povezuju i reprezentuju Ostatak sistema

Више

Microsoft Word - Java_introduction_NEW_SYLLABUS.doc

Microsoft Word - Java_introduction_NEW_SYLLABUS.doc [Complete introduction into Java programming language] Syllabus Semestar, Godina Informacije o instruktoru Instruktor(i) Email Lokacija i dostupnost 1. Ime, prezime 2. Emir, Puška E-mail adresa emirpuska1988@gmail.com

Више

P1.2 Projektovanje asemblera

P1.2 Projektovanje asemblera ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)

Више

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005 Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005 2 Sadržaj 1 5 1.1 Specifikacija sintakse programskih

Више

Strukture predavač: Nadežda Jakšić

Strukture predavač: Nadežda Jakšić Strukture predavač: Nadežda Jakšić složeni tip podatka; kolekcija promenljivih različitog tipa koje su sakupljene radi lakše manipulacije sintaksa: struct [oznakastrukture] navede { definicija člana strukture;

Више

Sveucilište u Zagrebu

Sveucilište u Zagrebu Proširivanje Pythona programskim jezicima C/C++ Ivo Majić Mentor: Doc. dr. sc. Domagoj Jakobović Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Ak. god. 2011/12 Ivo Majić (FER) Sveučilište

Више

Microsoft Word - CAD sistemi

Microsoft Word - CAD sistemi U opštem slučaju, se mogu podeliti na 2D i 3D. 2D Prvo pojavljivanje 2D CAD sistema se dogodilo pre više od 30 godina. Do tada su inženjeri koristili table za crtanje (kulman), a zajednički jezik komuniciranja

Више

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

Računarski praktikum I - Vježbe 09 - this, static Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 09 - this, static v2018/2019. Sastavio: Zvonimir Bujanović Pokazivač this Kako funkcija članica

Више

Model podataka

Model podataka Fakultet organizacionih nauka Uvod u informacione sisteme Doc. Dr Ognjen Pantelić Modeliranje podataka definisanje strategije snimanje postojećeg stanja projektovanje aplikativno modeliranje implementacija

Више

Datum: 20

Datum: 20 Osnove JAVE Uvod CPU računara može direktno izvršavati samo skup jednostavnih naredbi koje se nikada ne koriste u programiranju. Skoro svi programi su pisani u višim programskim jezicima kao što su Java,

Више

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Brkić SI 29/15 Zrenjanin 2018. Softversko inženjerstvo

Више

PowerPoint Presentation

PowerPoint Presentation II Karakteristike C jezika Programski jezik C je viši programski jezik opšte namene. Tesno je povezan sa UNIX OS uz koji je razvijan. Razvio ga je Dennis Ritchie 1970 u Bell Telephone Laboratories, Inc.

Више

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1 Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1 Sadržaj 1 Pokazivači - ponavljanje 3 2 Pokazivači - veza sa nizovima 5 2 1 Pokazivači - ponavljanje 1.

Више

Dijagrami sekvenci

Dijagrami sekvenci Dijagrami sekvenci Izrada dijagrama sekvenci Dijagram sekvenci koristi se za specifikaciju vremenskih zahteva u opisu složenih scenarija opis toka poruka između objekata kojima se realizuje odgovarajuća

Више

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Microsoft PowerPoint - 07-DinamickeStrukturePodataka Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и

Више

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft PowerPoint - Datoteke [Compatibility Mode] Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније

Више

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

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 Programiranje 2 0. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/48 Sadržaj predavanja Ponavljanje onog dijela C-a koji

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Pokazivači Pointeri Definicija pokazivača Pokazivač na tip je varijabla koja sadrži adresu varijable tipa tip. Definicija pokazivača: mem_klasa tip * p_var; Primjer: static int * pi; double *px; char*

Више

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

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 07 - Podstrukture, const, reference v2018/2019. Sastavio: Zvonimir Bujanović Podstrukture Član

Више

070-ALIP2-udzbenik.indb

070-ALIP2-udzbenik.indb 0. U uvodnom ćemo poglavlju ponoviti osnove programskog jezika C s kojima smo se susreli u. razredu. U kratkom pregledu navedeni su operatori (aritmetički, relacijski i logički), neke od funkcija iz biblioteka

Више

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

Grananje u programu predavač: Nadežda Jakšić Grananje u programu predavač: Nadežda Jakšić u okviru linijske strukture izvršavaju se sve naredbe u okviru razgranate strukture uvek se ispituje neki uslov; u zavisnosti od toga da li je uslov ispunjen

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Programiranje 2 doc.dr.sc. Goranka Nogo PMF Matematički odsjek, Zagreb Kontakt ured: 228, drugi kat e-mail: nogo@math.hr konzultacije: četvrtak, 12:00-14:00 petak, 11:00-12:00 neki drugi termin, uz prethodni

Више

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

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 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 realan broj od 0 i 1. Na standardni izlaz ispisati

Више

Microsoft PowerPoint - JavaP9_2019

Microsoft PowerPoint - JavaP9_2019 Programski jezik JAVA PREDAVANJE 9 2019 www.etf.ac.me Datoteke u Javi U paketu java.io nalaze se klase za rad sa datotekama i direktorijumima. Funkcionalnost koju omogućavaju te klase sastoji se od kreiranja,

Више

P11.3 Analiza zivotnog veka, Graf smetnji

P11.3 Analiza zivotnog veka, Graf smetnji Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи

Више

Podela ra~unarskih sredtava

Podela ra~unarskih sredtava Објектно орјентисано програмирање Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs 2/56 Карактеристике програмског језика Јава Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs Настанак

Више

Upitni jezik SQL

Upitni jezik SQL Šta je SQL? SQL (Structured Query Language) je jezik koji je Američki Institut za Nacionalne Standarde (ANSI - American National Standards Institute) prihvatio kao standardni jezik za relacione baze podataka.

Више

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Microsoft PowerPoint - Bitovi [Compatibility Mode] Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)

Више

P9.1 Dodela resursa, Bojenje grafa

P9.1 Dodela resursa, Bojenje grafa Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.

Више

Primenjeno programiranje - vezbe GUI i baze podataka

Primenjeno programiranje - vezbe GUI i baze podataka Primenjeno programiranje - Vežbe Java i NetBeans IDE 6.5 Kreiranje korisničkog interfejsa Primer jednostavne aplikacije: 1. Odabrati opciju File > New Project 2. Meñu kategorijama odabrati Java i podkategoriju

Више

PowerPoint Presentation

PowerPoint Presentation Visoka škola strukovnih studija za informacione i komunikacione tehnologije Grupisanje ruta i patterni Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž

Више

P1.3 Projektovanje makroasemblera

P1.3 Projektovanje makroasemblera ПРОЈЕКТОВАЊЕ МАКРОАСЕМБЛЕРА Макроасемблер Потребна проширења асемблера 1 МАКРОАСЕМБЛЕР Макроасемблер преводи полазни програм написан на макроасемблерском језику у извршиви машински програм. Приликом израде

Више

Рачунарска интелигенција

Рачунарска интелигенција Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic

Више

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

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite

Више

Pojačavači

Pojačavači Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici dr Dejan S. Aleksić, vanredni profesor Kabinet 307 (treći sprat), lab. za elektroniku

Више

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Microsoft PowerPoint - 6. CMS [Compatibility Mode] Visoka škola strukovnih studija za informacione i komunikacione tehnologije Beograd WEB TEHNOLOGIJE Drupal CMS(Content Managment System) Školska 2012/13. Marko M. Spasojević, spec. inž. Dr Nenad Kojić,

Више

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode] Osnove programiranja Nizovi Sadržaj Definicija niza Vrste i elementi nizova Deklarisanje nizova Dodele (početne) vrednosti nizovima Jednodimenzionalni nizovi Primeri dodele vrednosti Petlja foreach Nizovi

Више

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1 ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1 do 5. Obezbediti ispis uspeha za unetu ocenu (1=nedovoljan,

Више

Programski jezik JAVA PREDAVANJE

Programski jezik JAVA PREDAVANJE Programski jezik JAVA PREDAVANJE 8 2019 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom

Више

Увод у организацију и архитектуру рачунара 1

Увод у организацију и архитектуру рачунара 1 Увод у организацију и архитектуру рачунара 2 Александар Картељ kartelj@matf.bg.ac.rs Напомена: садржај ових слајдова је преузет од проф. Саше Малкова Увод у организацију и архитектуру рачунара 2 1 Секвенцијалне

Више

PowerPoint Presentation

PowerPoint Presentation Visoka škola strukovnih studija za informacione i komunikacione tehnologije MVC - Modeli Školska 2017/18. Dr Nenad Kojić, dipl. inž. Luka Lukić, struk. inž. Danijela Nikitin, spec.stuk.inž MVC.htaccess

Више

Računarski praktikum I - Vježbe 11 - Funktori

Računarski praktikum I - Vježbe 11 - Funktori Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 11 - Funktori v2018/2019. Sastavio: Zvonimir Bujanović Funkcijski objekti (funktori) Objekt klase

Више

Primenjeno programiranje - Vežbe

Primenjeno programiranje - Vežbe VISOKA POSLOVNA ŠKOLA STRUKOVNIH STUDIJA NOVI SAD Primena integrisanih razvojnih alata Java i NetBeans IDE 7.0 vežba 9 i 10 Kreiranje desktop aplikacije sa konekcijom na bazu Pokrenuti NetBeans, u kartici

Више

Fortran

Fortran FORTRAN Uvod Računala su samo strojevi: neznaju ništa, ne razmišljaju ni o čemu, ali mogu izuzetnom brzinom i vrlo točno, slijediti precizno napisane upute. Takve upute moraju se napisati u posebnom jeziku

Више

Programiranje za UNIX Okruženje unix procesa

Programiranje za UNIX Okruženje unix procesa Programiranje za UNIX Okruženje unix procesa Sadržaj Memorijska slika UNIX procesa Argumenti naredbenog retka i varijable okruženja Životni ciklus procesa Izlazni status procesa 2 Memorijska slika UNIX

Више

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode] Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба

Више

Uvod u PHP

Uvod u PHP Uvod u PHP Marijan Šuflaj FER, 2018 Sadržaj PHP Općenito Sintaksa Osnove Kontrola toka Zadatci Resursi Općenito Naziv od PHP Hypertext Preprocessor Obično koristi ekstenziju.php Tipovi su dinamički Trenutno

Више

Slide 1

Slide 1 Kako jednostavnije preći na višu verziju Formsa Ivan Lovrić, Vedran Latin 14.10.2009. Sadržaj prezentacije Predmet migracije Razlozi za migraciju Infrastruktura potrebna za migraciju Pilot migracija Migracija

Више

Програмирај!

Програмирај! Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком

Више

Microsoft Word - MySQL_3.doc

Microsoft Word - MySQL_3.doc 7. Data Manipulation Language (DML) Jezik za rad sa podacima (Data Manipulation Language (DML)) služi za umetanje, brisanje i ažuriranje podataka u bazi. 7.1. Umetanje novih redova u tabelu INSERT sintaksa

Више

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

NAPOMENA: Studenti na ispit donose kod urađenog zadatka Пројекат из предмета Интернет програмирање за августовски и септембарски испитни рок школске 2018/19. године Коришћењем PHP технологије, технологије AJAX и MySQL базе података, реализовати следећу веб

Више

No Slide Title

No Slide Title Објектно орјентисано програмирање Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs Улаз и излаз, серијализација Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs Токови, читачи и писачи

Више

Пројектовање Информационих система

Пројектовање Информационих система 1 РЕЧНИК ПОДАТАКА 2 Речник података Увод Правила креирања речника података Хијерархијска декомпозиција ДТП Пример ДТП 3 Увод Речник података даје опис структуре и садржаја свих токова и складишта података.

Више

Microsoft PowerPoint - 11_JavaScript_1.ppt [Compatibility Mode]

Microsoft PowerPoint - 11_JavaScript_1.ppt [Compatibility Mode] Java Script dr Suzana Marković, dipl.ing. el. suzana.markovic@bss.edu.rs Programski jezici Kompajlerski jezici - programski kôd konvertuje se u mašinski pre nego što se i pokrene, što znači da će se ta

Више

Slide 1

Slide 1 predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni

Више

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

Računarske mreže Čas 2 Ivana Tanasijević   Matematički fakultet, Beograd 1 Računarske mreže Čas 2 Ivana Tanasijević e-mail: ivana@matf.bg.ac.rs Matematički fakultet, Beograd 1 Utvrđivanje gradiva sa prethodnog časa: popunjavanje adresne strukture, kreiranje soketa, privezivanje

Више

Programski jezik C

Programski jezik C SPR, 2016 Rad sa datotekama Komunikacija sa OS Rad sa datotekama Vrste datoteka Otvaranje / zatvaranje datoteka Pristup datotekama za upis / čitanje Funkcije za rad sa datotekama Ulazno / izlazni tokovi

Више

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe 6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju

Више

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera CILJ VEŽBE Cilj ove vežbe je da se studenti kreiranjem

Више

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

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj Programiranje 1 5. predavanje dodatak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanje dodatak p. 1/60 Sadržaj predavanja dodatka Primjeri

Више

Microsoft Word - Lekcija 11.doc

Microsoft Word - Lekcija 11.doc Лекција : Креирање графова Mathcad олакшава креирање x-y графика. Треба само кликнути на нови фајл, откуцати израз који зависи од једне варијабле, например, sin(x), а онда кликнути на дугме X-Y Plot на

Више

Classroom Expectations

Classroom Expectations АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних

Више

KDP

KDP Региони Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион

Више

Računarski praktikum I - Vježbe 01 - Uvod

Računarski praktikum I - Vježbe 01 - Uvod Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 01 - Uvod v2018/2019. Sastavio: Zvonimir Bujanović Gradivo i način polaganja Gradivo: osnove jezika

Више

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

POSLOVNI INFORMACIONI SISTEMI  I RA^UNARSKE ZNAČAJ RAČUNARSKIH KOMUNIKACIJA U BANKARSKOM POSLOVANJU RAČUNARSKE MREŽE Računarske mreže su nastale kombinacijom računara i telekomunikacija dve tehnologije sa veoma različitom tradicijom i istorijom.

Више

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijski program: Informacioni inženjering Informacioni inženjering 1 Rekurzivne funkcije Binarna stabla Informacioni

Више

PowerPoint Presentation

PowerPoint Presentation Prof. dr Pere Tumbas Prof. dr Predrag Matkovid Identifikacija i izbor projekata Održavanje sistema Inicijalizacija projekata i planiranje Implementacija sistema Dizajn sistema Analiza sistema Faze životnog

Више

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,

Више

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p 1 Rezultati i uvidi u kolokvije: Rezultati u petak 3.5. navečer na webu a uvidi u ponedjeljak 6.5. u 16 sati. Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje te službeni podsjetnik.

Више