Slide 1
|
|
- Звездан Бабић
- пре 5 година
- Прикази:
Транскрипт
1 Funkcionalno programiranje Klase -- Funkcionalno programiranje -- ETF Beograd, 2019.
2 Motivacija Scala je OO jezik potreba za klasama je evidentna Uloga klasa se nije promenila enkapsulacija podataka grupisanje srodnih funkcionalnosti polimorfizam... Scala se snažno oslanja na Javu (mada su moguće i drugačije implementacije) sve klase se implicitno izvode iz java.lang.object preciznije: iz scala.anyref, koji je alias za java.lang.object Scala može da koristi sve Java klase -- Funkcionalno programiranje -- ETF Beograd 2
3 Klase Osnovni elementi class X { var vrednost = 0 val x1 = new X val x2 = new X // podrazumeva se public x1 vrednost 0 x2 vrednost Podsetnik: val ne znači da je objekat nepromenljiv, već da dato ime ne može da se odnosi na drugi objekat x1.vrednost = 3 x1 = new X // u redu // greška 3
4 Klase Primer klase Racionalnih brojeva class Rational(x: Int, y: Int) { def numer = x def denom = y Uveden je novi tip Klasa direktno prima parametre, umesto da se piše poseban konstruktor. Parametri nisu vidljivi van tela klase. Implicitno definisan primarni konstruktor Objekti se stvaraju kao u Javi: new Rational(1,2) Članovima se pristupa, kao u Javi, infiksim operatorom. val x = new Rational(1,2) // val x: Rational = new... x.numer // 1 x.denom // 2 x.numer = 2 // greška 4
5 Klase class Rational(x: Int, y: Int) { println("racionalni broj: " + x + "/" + y) Sav kod koji nije deo definicije polja ili metode biće ugrađen u primarni konstruktor Ugrađivanje se vrši u redosledu pojavljivanja u kodu Kada je potrebna provera validnosti parametara koristi se metoda require (definisana u objektu Predef) class Rational(x: Int, y: Int) { require(y!= 0) Baca izuzetak IllegalArgumentException ako uslov nije ispunjen; u suprotnom nema efekta 5
6 Metode Namena je ista kao u "klasičnim" OO jezicima (C++, Java) definišu ponašanje objekata dozvoljeno preklapanje operatora kao i definisanje novih operatora class Rational(x: Int, y: Int) { private def gcd(a: Int, b: Int): Int = if(b==0) a else gcd(b, a%b) //razmotriti neg. vred. private val g = gcd(x, y) def numer = x / g def denom = y / g // x.abs, y.abs // ili: val numer: Int = x / g // ili: val denom: Int = y / g override def tostring() = numer + "/" + denom def ili val isto se koriste, ali šta je bolje? def se izračunava pri svakom pozivu val samo jednom 6
7 Metode Metode često imaju samo bočni efekat, a to je promena stanja objekta Takve metode su po tipu Unit (što odgovara Javinom void) Povratni tip nije neophodno pisati, ali tada telo metode mora biti u vitičastim zagradama, a ne prethodi znak = class X { private var vrednost = 0 // private[this] samo this obj. def promeni(v: Int) { vrednost = v // isto kao: def promeni(v: Int): Unit = vrednost = v -- Funkcionalno programiranje -- ETF Beograd 7
8 Konstruktori Primarni konstruktor se implicitno generiše jedino on može da pozove konstruktor roditeljske klase može biti proglašen privatnim: class Klasa private {... Moguće je napisati pomoćne (auxiliary) konstruktore Zovu se this class Rational(x: Int, y: Int) {... def this(x: Int) = this(x, 1) // poziv primarnom k. Svaki pomoćni konstruktor mora da pozove neki drugi konstruktor kao svoju prvu aktivnost može da pozove primarni može da pozove pomoćni koji je ranije definisan Alternativno: y: Int = 1 dakle, primarni će uvek biti pozvan, nema mogućnosti ciklusa 8
9 Konstruktori Telo klase se uslovno može posmatrati kao telo primarnog konsturktora svaki poziv metode će biti izvršen prilikom stvaranja objekta class Student(ime: String, brind: String) { println("stvaram studenta")... var s = new Student("Pera", "123/456")//> Stvaram studenta -- Funkcionalno programiranje -- ETF Beograd 9
10 Konstruktori Parametri konstruktora mogu imati modifikatore [private] var ili val parametar postaje atribut klase automatski se generišu metode za pristup atributu var: generišu se inspektor i mutator val: generiše se inspektor s.ime = "Mika" s.brind = "122/345" // greška // greška class Student2(var ime: String, val brind: String) { println("stvaram studenta2") val s2 = new Student2("Pera", "123/456")//> Stvaram studenta2 s2.ime = "Mika" s2.brind = "122/345" // greška println(s2.brind) 10
11 Operatori Svaka metoda sa jednim parametrom može biti korišćena kao infiksni operator class Rational(x: Int, y: Int) { Parametri klase su dostupni samo preko this... def add(r: Rational) = x + r.x... // greška new Rational(numer*r.denom + r.numer*denom, denom*r.denom ) Dakle, može se napisati: r add s umesto: r.add(s) 1+2 je zapravo poziv metode "+" nad Int objektom (1), gde je (2) parametar: 1.+(2) U tom smislu, ne postoji "klasično" preklapanje operatora 11
12 Operatori Mogu se definisati novi operatori Identifikatori mogu biti: slovo, praćeno sekvencom slova ili cifara simbol operatora, praćen drugim simbolima operatora mešovit identifikator: alfanum_operator - primer: unary_+ Prioritet operatora je određen prvim znakom Asocijativnost je određena poslednjim znakom 12
13 rastući prioritet Operatori op. dodele (i svi drugi koji se završavaju op. =, osim <= >= ==!=) bilo koje slovo (ne preporučuje se upotreba slova $) ^ & < > =! // samo = nije validan identifikator, ne može se preklopiti : // asocijativnost s desna ulevo ako se ime operatora završava sa : + - * / % svi drugi specijalni znaci (ne preporučuje se _ jer ima specijalnu ulogu) 13
14 Operatori Primeri operatorskih identifikatora + ++ ::: <?> :-> Scala kompajler interno prevodi identifikatore operatora u validne Java identifikatore. :-> bi postao $colon$minus$greater Obratiti pažnju Scala operatori mogu imati proizvoljnu dužinu U Javi, izraz x<-y bi se interpretirao kao x < (- y) Scala interpretacija je: x <- y Ako se želi Java interpretacija, potreban je razmak < - Operandi se uvek računaju s leva udesno, nebitna asocijativnost Primeri: x *= y+1 tumači se kao x.*=(y+1) a:::b tumači se kao b.:::(a), prvo se računa a, onda b 14
15 Operatori class Rational(x: Int, y: Int) {... def + (r: Rational) = new Rational(numer * r.denom + r.numer * denom, denom * r.denom ) def - (r: Rational) = new Rational(numer * r.denom - r.numer * denom, denom * r.denom ) def * (r: Rational) = new Rational(numer * r.numer, denom * r.denom ) val x = new Rational(1,2) val y = new Rational(1,3) x*x + y*y // 13/36 15
16 Operatori - detaljnije u poglavlju 21 - Nije moguće napisati val r = new Rational(2,3) val r1 = r*2 Oba operanda moraju biti tipa Rational Rešenje: preklapanje operatora def * (i: Int): Rational = new Rational(numer + i * denom, denom) Sada je moguće napisati val r1 = r*2 Ali još uvek nije moguće napisati val r1 = 2*r Potrebna konverzija levog operanda implicitna konverzija koja izraz 2 * r prevodi u new Rational(2) * r moguće neimplicitne konverzije se ne razmatraju implicit def inttorational(x: Int) = new Rational(x) 16
17 Operatori Tehnički, Scala nema preklapanje operatora 1+2 je zapravo poziv metode + nad objektom 1: (1).+(2) Elementima nizova se pristupa oblim zagradama obj(i) je zapravo poziv obj.apply(i) dakle pristup elementu i je zapravo poziv metode sa arg. i Ovo nije ograničeno samo na nizove važi za svaki objekat (ako tip ima definisanu metodu apply) Slično: obj(i) = neka_vrednost poziva se obj.update(i, neka_vrednost) -- Funkcionalno programiranje -- ETF Beograd 17
18 Unikatni (singleton) objekti Scala je u nekim svojim aspektima više objektno-orijentisana od Jave Ne postoje statički članovi u jeziku Scala Umesto njih, Scala propisuje unikatne objekte Definicija unikatnog objekta: umesto class dolazi object Ne može da se instancira ne koristi se new Unikatni objekat može biti nazvan isto kao i neka klasa tada je on prateći objekat (companion object) toj klasi, a ona je prateća klasa (companion class) tom objektu moraju oba (klasa i objekat) biti definisani u istom fajlu uzajamni odnos prijateljstva pristup čak i privatnim članovima U suprotnom to je samostalni (standalone) objekat 18
19 Unikatni (singleton) objekti U unikatnim objektima se mogu pisati metode i atributi poput statičkih metoda i atributa u Javi sintaksa pristupa je ista (naziv_objekta. naziv_metode ili atributa) Ali unikatni objekat je objekat (postoji u memoriji) može biti izveden iz druge klase i mogu mu se pridružiti osobine - crte (traits) može mu se obraćati kao i drugim objektima može se prosleđivati tamo gde se očekuju objekti Međutim ne definiše tip podatka to radi prateća klasa (ako postoji) ne instancira se (ne dobija parametre prilikom stvaranja) inicijalizuje se pri prvoj upotrebi -- Funkcionalno programiranje -- ETF Beograd 19
20 Pravljenje Scala aplikacije Scala program mora da poseduje najmanje jedan samostalni unikatni objekat sa main metodom Alternativno: extends App main metoda ima jedan parametar, tipa Array[String] Program se pokreće imenovanjem samostalnog objekta Scala implicitno uvozi: paket java.lang paket scala unikatni objekat scala.predef println je zapravo Predef.println -- Funkcionalno programiranje -- ETF Beograd 20
21 Pravljenje Scala aplikacije // strquote.scala package w02 object strquote { def quote(s: String) = ">>"+s // testapp.scala package w02 import strquote.quote object testapp { def main(args: Array[String]) { for( arg <- args ) println(quote(arg)) C:\> scalac strquote.scala testapp.scala C:\> scala testapp xyz >>xyz scala w02.testapp xyz 21
22 Apstraktne klase i nasleđivanje Apstraktne klase: ne mogu da se instanciraju abstract class IntSet { def incl(x: Int): IntSet def contains(x: Int): Boolean Nasleđivanje class Empty extends IntSet { def contains(x : Int): Boolean = false def incl(x : Int): IntSet = Ovde se daje primer implementacije skupa preko binarnog stabla new NonEmpty(x, new Empty, new Empty) Primetiti: za apstraktne metode ne mora da se piše override u izvedenim klasama 22
23 Apstraktne klase i nasleđivanje class NonEmpty(elem: Int, left: IntSet, right: IntSet) extends IntSet { def contains(x : Int): Boolean = { if (x < elem) left contains x else if (x > elem) right contains x else true def incl(x : Int): IntSet = { if (x<elem) new NonEmpty(elem, left incl x, right) else if (x>elem) new NonEmpty(elem, left, right incl x) else this -- Funkcionalno programiranje -- ETF Beograd 23
24 Apstraktne klase i nasleđivanje val x = new NonEmpty(10, new Empty, new Empty) val y = x incl 5 incl 15 incl 7 incl 3 val z = y incl 1 10 z E 10 x E E 1 3 E 5 10 y Primetiti: ovakva konstrukcija ima smisla zato što se pretpostavljaju nepromenljivi objekti E E E E E E 24
25 Apstraktne klase i nasleđivanje abstract class Entity { def name: String override def tostring = name metoda bez parametara (parameterless) razlikuje se od metoda sa praznim zagradama (empty-paren) class Constant extends Entity { override val name = "Constant" nadjačava metodu iz osnovne klase class Robot(id: Int) extends Entity { def name = "T-" + id class Person(override val name: String) extends Entity parametarsko polje: kad ima modifikator var ili val, postaje atribut klase val e = new Constant println(e.name) // Constant val e2 = new Person("Pera") println(e2.name) // Pera val e3 = new Robot(800) println(e3.name) // T
26 Apstraktne klase i nasleđivanje Preporučuje se upotreba metoda bez parametara kada nema parametara i kada je metoda inspektor (samo čita stanje) Posledica klijentski kod ne zna kako je realizovan atribut (vrednost ili metoda) moguće je jednostavno zameniti implementaciju po potrebi to je princip uniformnog pristupa (uniform access principle) vrednost zauzima više memorije, ali se brže (?) izvršava Scala pravi razliku između metoda bez parametara i metoda sa praznim zagradama ali dozvoljava njihovo mešanje (jedna može da nadjača drugu, itd) nije neophodno pisanje zagrada pri pozivu ipak se preporučuje pisanje () kada poziv nije dohvatanje vrednosti 26
27 Apstraktne klase i nasleđivanje Parametarska polja class Person(val name: String) extends Entity istovremeno postaje parametar i (nepromenljiv) atribut klase ekvivalentno: class Person(n: String) extends Entity { val name = n umesto val može i var Mogući modifikatori su private ili private[this] protected override class Cat { val dangerous = false class Tiger( override val dangerous: Boolean, private var age: Int ) extends Cat 27
28 Apstraktne klase i nasleđivanje Pozivanje konstruktora roditeljske klase class Cat(val name: String) { val dangerous = false class Tiger( name: String, override val dangerous: Boolean, private var age: Int ) extends Cat(name) Može se pozvati bilo koji konstruktor roditeljske klase -- Funkcionalno programiranje -- ETF Beograd 28
29 Apstraktne klase i nasleđivanje Sprečavanje izvođenja odnosno nadjačavanja modifikator final, kao u Javi ispred class za sprečavanje izvođenja ispred člana čije nadjačavanje treba sprečiti (atribut ili metoda) final class Cat(val name: String) { val dangerous = false ili class Cat(val name: String) { final val dangerous = false Modifikator sealed dati tip mogu naslediti samo drugi tipovi definisani u istom fajlu sealed abstract class Expr class Var(name: String) extends Expr 29
30 Primer: singleton Napraviti klasu prema projektnom uzorku unikat (singleton) Analiza: obezbediti da klasa ne bude apstraktna ne može direktno da se instancira objekat date klase metoda koja vrši dohvatanje jedinstvene instance Rešenje: učiniti primarni konstruktor privatnim napraviti prateći objekat sa metodom getinstance -- Funkcionalno programiranje -- ETF Beograd 30
31 Primer: singleton class NarodnaBiblioteka private { override def tostring : String = "Narodna biblioteka" object NarodnaBiblioteka { val instance = new NarodnaBiblioteka def getinstance = instance val tt = NarodnaBiblioteka.getInstance 31
32 Hijerarhija klasa 32
33 Hijerarhija klasa U korenu hijerarhije je klasa Any final def ==(that: Any): Boolean final def!=(that: Any): Boolean def equals(that: Any): Boolean def ##: Int def hashcode: Int def tostring: String -- Funkcionalno programiranje -- ETF Beograd 33
34 Hijerarhija klasa Klasa AnyVal Roditeljska klasa za svaku ugrađenu vrednosnu klasu a) Byte, Short, Char, Int, Long, Float, Double, Boolean (1:1 Java) radi se automatski box-ing u odgovarajući tip pr. java.lang.integer b) Unit (~ void u Javi) rezultat dodele vrednosti, kao i nekih kontrolnih struktura (while,...) Ne mogu se praviti instance (a) pomoću new tip zato što su sve klase deklarisane kao abstract final Postoji jedna instanca (b), označava se () scala> def greet() { println("hi") a = if (true) 1 else false greet: ()Unit scala> greet() == () hi res0: Boolean = true Kog tipa je a? 34
35 Hijerarhija klasa Klasa AnyRef Roditeljska klasa za sve referentne tipove Java java.lang.object.net system.object -- Funkcionalno programiranje -- ETF Beograd 35
36 Hijerarhija klasa Klasa Null tip null reference potklasa svih referentnih tipova (svih koje nasleđuju AnyRef) nije kompatibilna sa vrednosnim tipovima (AnyVal) Klasa Nothing na dnu hijerarhije Scala klasa ne postoje objekti ovog tipa specifični slučajevi upotrebe (izuzetak, tip elementa prazne kolek.) scala.predef def error(message: String): Nothing = throw new RuntimeException(message) def divide(x: Int, y: Int): Int = if (y!= 0) x / y else error("deljenje nulom") 36
37 Uvoz tipova Automatski: sve iz paketa scala sve iz paketa java.lang svi članovi objekta scala.predef Sintaksa: import paket.tip import paket.{tip1, tip2,... import paket._ -- Funkcionalno programiranje -- ETF Beograd 37
38 Jednakost objekata - detaljnije u poglavlju 30 - Razlikuje se u odnosu na pristup jezika Java Smisao operatora == je "prirodna" jednakost za vrednosne tipove, to je jednakost vrednosti za referentne tipove, to je jednakost sadržaja (equals u Javi) Za referentne tipove postoji metoda eq, koja odgovara == u Javi ne koristi se mnogo, jer služi samo kada je od interesa identitet objekta Veza između operatora == i equals u jeziku Scala nije moguće nadjačati == (finalna metoda u klasi Any) op == poziva metodu equals metoda equals može se nadjačati za ref. tip. podrazumevano equals: poredi reference (kao u Javi) dakle, podrazumevano == i equals ponašaju se kao eq final def == (that: Any): Boolean = if (null eq this) {null eq that else {this equals that Ali podrazumevano poredi reference. // principijelno 38
39 Jednakost objekata primer razlike Java Scala Java boolean isequal(integer x, Integer y) { return x == y; System.out.println(isEqual(421, 421)); // false Scala uzima u obzir tip stvarnih argumenata scala> def isequal(x: Int, y: Int) = x == y isequal: (Int,Int)Boolean scala> isequal(421, 421) res10: Boolean = true scala> def isequal(x: Any, y: Any) = x == y isequal: (Any,Any)Boolean scala> isequal(421, 421) res11: Boolean = true 39
40 Jednakost objekata - detaljnije u poglavlju 30 - U klasi Any definisana je metoda hashcode Ugovor ove metode zahteva da ako equals nad dva objekta vraća true onda i hashcode mora vratiti isti celobrojni rezultat Dakle, equals i hashcode se zajedno nadjačavaju Ova stavka ugovora je bitna zbog kolekcija čiji rad se zasniva na toj pretpostavci Voditi računa da se equals i hashcode ne određuju na osnovu promenljivih (atributa) ako je potrebno poređenje objekata klasa koje imaju promenljive atribute, bolje koristiti neko drugo ime -- Funkcionalno programiranje -- ETF Beograd 40
41 Parametrizacija tipom Namena: poput generika u Javi (šablona C++) reupotreba koda kada je algoritam isti drugi vid polimorfizma trait Crta[T] class Klasa1[T] class Klasa2[T](par1 : T, par2 : Klasa1[T]) extends Crta[T] Mogu se i metode parametrizovati: def napravi[t](elem: T) = new Klasa3[T](elem) napravi[int](1) // napravi(1) napravi[boolean](true) // napravi(true) 41
42 Parametrizacija tipom Vrši se brisanje (type erasure), kao u Javi val seq : Seq[String] = Seq(1,2,3) // ne prevodi se val seq : Seq[Int] = Seq(1,2,3) seq.isinstanceof[seq[int]] // true seq.isinstanceof[int] // false seq.isinstanceof[seq[string]] // true 42
43 Parametrizacija tipom Moguće je navesti gornje i donje granice za parametarske tipove gornja granica <: donja granica >: Primer: def assertallpositive[s <: IntSet] (r: S) : S =... S može biti svaki tip koji odgovara tipu IntSet [S >: NonEmpty] S može biti NonEmpty, IntSet, AnyRef i Any [S >: NonEmpty <: IntSet] bilo koji tip u intervalu NonEmpty i IntSet 43
44 Utvrđivanje tipa i konverzija class Any def isinstaceof[t]: Boolean def asinstanceof[t]: T // ClassCastException if (x.isinstanceof[string]) { val s = x.asinstanceof[string] s.length else... Ipak, eksplicitno utvrđivanje tipa treba izbegavati -- Funkcionalno programiranje -- ETF Beograd 44
45 Konverzija tipa u cilju čitanja vrednosti Ponekad je dovoljno dohvatiti vrednost nekog podatka bez obzira na njegov tip Konverzija u cilju čitanja (view bound): specificira da neki tip može biti "posmatran" kao neki drugi Koristi se oznaka <% Potrebna implicitna (automatska) konverzija između tipova Implicitne funkcije to omogućavaju one dozvoljavaju svoju primenu (apply) kada to može dovesti do zadovoljenja tipova u izrazu -- Funkcionalno programiranje -- ETF Beograd 45
46 Konverzija tipa u cilju čitanja vrednosti scala> implicit def strtoint(x: String) = x.toint strtoint: (x: String)Int scala> "123" res0: java.lang.string = 123 scala> val y: Int = "123" y: Int = 123 scala> math.max("123", 111) res1: Int = Funkcionalno programiranje -- ETF Beograd 46
47 Konverzija tipa u cilju čitanja vrednosti scala> class Container[A <% Int] { def addit(x: A) = x defined class Container Ovo znači da A mora biti moguće "posmatrati" kao Int scala> (new Container[String]).addIt("123") res11: Int = 246 scala> (new Container[Int]).addIt(123) res12: Int = 246 scala> (new Container[Float]).addIt(123.2F) <console>:8: error: could not find implicit value for evidence parameter of type (Float) => Int (new Container[Float]).addIt(123.2) 47
48 Crte (traits) Nasleđuje se samo jedna klasa kao u Javi izbegavanje "dijamantske strukture" trait liči na interfejs u Javi... klasa može da nasledi više crta... ali trait može da sadrži polja može da sadrži implementacije metoda trait Planar { def height : Int def width : Int def surface = height*width -- Funkcionalno programiranje -- ETF Beograd class Square extends Shape with Planar with Movable... 48
49 Funkcijske vrednosti su objekti Tip funkcije A => B je zapravo skraćeni način pisanja scala.function1[a, B] trait Function1[T1, R] { def apply(v1 : T1) : R def compose[a](g: A => T1): A => R def andthen[a](g: R => A): T1 => A Dakle: funkcije su objekti sa apply metodom Postoje crte Function2, Function3,... Poziv funkcije je jednostavno poziv metode apply f(a, b) je zapravo f.apply(a,b) -- Funkcionalno programiranje -- ETF Beograd 49
50 Funkcijske vrednosti su objekti (x: Int) => x * x { class some_generic_name extends Function1[Int, Int] { def apply(x: Int) = x * x new some_generic_name Sintaksa anonimne klase: new Function1[Int, Int] { def apply(x:int) = x * x -- Funkcionalno programiranje -- ETF Beograd 50
51 Definicija funkcije nije funkcijska vrednost Definicija metode: def f(x: Int) : Boolean =... nije funkcijska vrednost Ali, ako se f koristi tamo gde se očekuje tip Function, automatski se konvertuje u funkcijsku vrednost (x: Int) => f(x) Odnosno new Function1[Int, Boolean] { def apply(x: Int) = f(x) -- Funkcionalno programiranje -- ETF Beograd 51
52 Primer: ulančane liste S obzirom na favorizovanje rekurzije u funkcionalnim jezicima, lista se može predstaviti iz dva gradivna bloka: Nil prazna lista Kons ćelija koja sadrži element i referencu ka ostatku liste Termin "cons" vodi poreklo iz jezika Lisp Funkcionalni jezici favorizuju nepromenljive liste val testlist = new Elem(1, new Elem(2, new Elem(3, new Nil))) -- Funkcionalno programiranje -- ETF Beograd 52
53 Primer: ulančane liste object list { trait List[T] { def prazna: Boolean def glava: T def rep: List[T] class Nil[T] extends List[T] { def prazna = true def glava = throw new NoSuchElementException("Nil.glava") def rep = throw new NoSuchElementException("Nil.rep") class Elem[T](val glava : T, val rep : List[T]) extends List[T] { def prazna = false 53
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
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
Више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
Више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
Више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,
Више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
Више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
ВишеКласе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности подата
Класе комбинација презентације (Хортона) и к о бајаги скрипте (Ово је прича коју врло радо причам) нови тип података: дефинишу могуће вредности података и операције над њима Дефиниција класе садржи само
Више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
Више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
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
Више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]
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
Више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
Више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,
Више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
Више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
Више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
ВишеPowerPoint Presentation
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Сопствени пакети и унутрашње класе Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
Више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.7182818284590452354); private static void obrada(double
Више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
Више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
Више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
Више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
Више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
Више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
Више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
ВишеPowerPoint Presentation
Python tutorijal - praktični primeri - Sadržaj: 1. Upoznavanje sa razvojnim okruženjem - Python proširenje (PTVS) za Visual Studio 2015 - Druga razvojna okruženja 2. Osnovi Python jezika - Sintaksa i konvencije
Више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
ВишеP1.2 Projektovanje asemblera
ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)
Више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
Више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*
Више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
Више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
Више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.
I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz 3 2 1 4 5 14 Analiza: 1. Odredimo zbir svih 5 unesenih brojeva (i sačuvamo u
ВишеObjektno orjentirano programiranje 2P
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Akademska 2016./2017. godina OBJEKTNO ORIJENTIRANO PROGRAMIRANJE Studij: Preddiplomski studij informatike (dvopredmetni) Godina i semestar: 2. godina, 3. semestar
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
Више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,
Више3.Kontrlne (upravlja~ke) strukture u Javi
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
Више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 - Bitovi [Compatibility Mode]
Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)
ВишеMicrosoft PowerPoint - C-4-1
Pregled iskaza u C-u Izraz; Iskaz dodele, serijski komponovani iskaz; blok Uslovni iskazi i izrazi; složeno grananje Iterativni iskazi Iskaz dodele Promena vrednosti a = Ψ; Izračunava vrednost izraza Ψ,
Више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
ВишеPowerPoint Presentation
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Класе и објекти у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар
ВишеMicrosoft PowerPoint - Datoteke [Compatibility Mode]
Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније
ВишеProgramiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007
Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007 2 Sadržaj 1 Programski jezik C 5 1.1 Oblast važenja lokalnih promenljivih..........................
ВишеUvod u računarstvo 2+2
Datoteke nastavak Funkcija fgets Funkcija koja učitava podatke iz datoteke, liniju po liniju, je char *fgets(char *str, int n, FILE *fp); gdje su str pokazivač na dio memorije (string) u koji će ulazna
Више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
Више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
ВишеTeorija skupova - blog.sake.ba
Uvod Matematika je jedan od najomraženijih predmeta kod većine učenika S pravom, dakako! Zapitajmo se šta je uzrok tome? Da li je matematika zaista toliko teška, komplikovana? Odgovor je jednostavan, naravno
Више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
ВишеProgramiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni podsjetnik. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
Више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,
Више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
ВишеPRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste
PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)
Више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
Више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
ВишеPowerPoint Presentation
Programski jezici i strukture podataka UVOD Izvođači nastave Srđan Popov (JUG 215) Petar Marić (JUG 105) Milena Počuča (JUG 215) Milica Milutinović (JUG 215) Termini konsultacija naknadno Cilj vežbi Sticanje
ВишеMicrosoft PowerPoint - 07-DinamickeStrukturePodataka
Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и
Више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
Више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.
Више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
Више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.
ВишеKonverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić
Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić 1. temperatura u stepenima Celzijusa i stepene Farenhajta tf=1.8*tc+32 2. pretvoriti inče u centimetre 1 inč=2.54cm 3. vreme učitano
Више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
ВишеMicrosoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 03 Zvonimir Bujanović Slaven Kožić Vinko Petričević Mrežno programiranje: SocketAPI Programiramo u aplikacijskom sloju, za ostale se brinu
Више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
ВишеLogicko projektovanje racunarskih sistema I
PRIMERI SA PREDAVANJA 17 Beta asembler Zadatak 1. Posmatrajmo sledeću funkciju napisanu u programskom jeziku C, za računanje najvećeg zajedničkog delioca dva pozitivna cela broja: int gcd(int a, int b)
ВишеFunkcijska sučelja: često korištena za modeliranje objekata koji obavljaju određene poslove Anotirana su signaliziraju da se t
Funkcijska sučelja: često korištena za modeliranje objekata koji obavljaju određene poslove Anotirana su s @FunctionalInterface; signaliziraju da se ta sučelja mogu koristiti za stvaranje objekata u lambda-izrazima
Више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
ВишеMIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU
MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU http://www.mi.sanu.ac.rs/ tanjad (tanjad@mi.sanu.ac.rs) 21. januar 2013. Tatjana
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
ВишеPowerPoint Presentation
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Енумерисани и генерички типови Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
Више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
Programiranje IEEE prikaz brojeva sažetak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog 208, IEEE prikaz brojeva sažetak p. /4 Sadržaj predavanja IEEE standard
ВишеSkripte2013
Chapter 2 Algebarske strukture Preslikivanje f : A n! A se naziva n-arna operacija na skupu A Ako je n =2, kažemo da je f : A A! A binarna operacija na A Kažemo da je operacija f arnosti n, u oznaci ar
ВишеMatematiqki fakultet Univerzitet u Beogradu Iracionalne jednaqine i nejednaqine Zlatko Lazovi 29. mart 2017.
Matematiqki fakultet Univerzitet u Beogradu 29. mart 2017. Matematiqki fakultet 2 Univerzitet u Beogradu Glava 1 Iracionalne jednaqine i nejednaqine 1.1 Teorijski uvod Pod iracionalnim jednaqinama podrazumevaju
Више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
ВишеP1.3 Projektovanje makroasemblera
ПРОЈЕКТОВАЊЕ МАКРОАСЕМБЛЕРА Макроасемблер Потребна проширења асемблера 1 МАКРОАСЕМБЛЕР Макроасемблер преводи полазни програм написан на макроасемблерском језику у извршиви машински програм. Приликом израде
ВишеCelobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica
Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da
ВишеMicrosoft PowerPoint - 6. Query Builder.pptx
Visokaškola strukovnihstudija za informacione i komunikacione tehnologije Query builder Query builder je sastavni deo Laravel framework-a koji pruža pouzdan interfejs za rad sa bazom podataka, kreiranje
ВишеClassroom Expectations
АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних
Више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
Више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.
ВишеNAPOMENA: Studenti na ispit donose kod urađenog zadatka
Пројекат из предмета Интернет програмирање за августовски и септембарски испитни рок школске 2018/19. године Коришћењем PHP технологије, технологије AJAX и MySQL базе података, реализовати следећу веб
ВишеMy_P_Trigo_Zbir_Free
Штa треба знати пре почетка решавања задатака? ТРИГОНОМЕТРИЈА Ниво - Основне формуле које произилазе из дефиниција тригонометријских функција Тригонометријске функције се дефинишу у правоуглом троуглу
Више13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.
13E114PAR, 13S113PAR 29.04.2019. DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa. U okviru svake grupe data je doall ili doacross petlja
Више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.
Више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
Више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;
Више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
Више1
Podsetnik: Statističke relacije Matematičko očekivanje (srednja vrednost): E X x p x p x p - Diskretna sl promenljiva 1 1 k k xf ( x) dx E X - Kontinualna sl promenljiva Varijansa: Var X X E X E X 1 N
Више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.
ВишеKDP
Региони Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион
ВишеOOP1 - domaci 2 (2004/05)
ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ Одсеци ИР, ОС и ОФ Београд, 05.04.2019. Први домаћи задатак из Објектно оријентисаног програмирања 2 У сваком задатку: Грешке пријављивати изузецима типа класа које садрже текст
Више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ž
ВишеNAUČNO-STRUČNA KONFERENCIJA LOGOPEDA SRBIJE INOVATIVNI PRISTUPI U LOGOPEDIJI Nacionalni skup sa međunarodnim učešćem Organizator: Udruženje logopeda S
NAUČNO-STRUČNA KONFERENCIJA LOGOPEDA SRBIJE INOVATIVNI PRISTUPI U LOGOPEDIJI Nacionalni skup sa međunarodnim učešćem Organizator: Udruženje logopeda Srbije Kralja Milutina 52, Beograd Datum održavanja:
Више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
Више