8 LINQ upiti LINQ (Language Integrated Query upit integrisan u jezik) jeste skup mogućnosti koje jezik C# i Framework pružaju za pisanje strukturirani

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

Download "8 LINQ upiti LINQ (Language Integrated Query upit integrisan u jezik) jeste skup mogućnosti koje jezik C# i Framework pružaju za pisanje strukturirani"

Транскрипт

1 8 LINQ upiti LINQ (Language Integrated Query upit integrisan u jezik) jeste skup mogućnosti koje jezik C# i Framework pružaju za pisanje strukturiranih upita za pretraživanje lokalnih kolekcija objekata i udaljenih izvora podataka, na način koji ne narušava bezbednost tipova. LINQ je uveden u verziji C# 3.0 i Framework 3.5. LINQ omogućava pretraživanje svake kolekcije koja implementira interfejs IEnumerable<T>, bez obzira na to da li je u pitanju niz vrednosti, lista ili XML DOM dokument, kao i udaljene izvore podataka, poput tabela na SQL Serveru. LINQ pruža prednosti i proveravanja ispravne upotrebe tipova u vreme prevođenja i dinamičkog sastavljanja upita. Ovo poglavlje opisuje arhitekturu LINQ-a i osnove pisanja upita. Svi osnovni tipovi su definisani u imenskim prostorima System.Linq i System.Linq.Expressions. Primeri u ovom i u naredna dva poglavlja ugrađeni su u interaktivnu alatku za izradu upita koja se zove LINQPad; možete je preuzeti na Uvod Osnovne jedinice podataka s kojima LINQ radi jesu sekvence i elementi. Sekvenca je svaki objekat koji implementira interfejs IEnumerable<T> a element je svaka stavka sekvence. U primeru koji sledi, niz names je sekvenca, a Tom, Dick i Harry su njeni elementi: string[] names = Tom, Dick, Harry ; Ovakvu sekvencu zovemo lokalna sekvenca zato što predstavlja lokalnu kolekciju objekata u memoriji. Operator za upit je metoda koja transformiše sekvencu. Tipičan operator za upit prihvata ulaznu sekvencu koju transformiše u izlaznu sekvencu. U klasi Enumerable u imenskom prostoru System.Linq, postoji oko 40 operatora za upite a svi su implementirani u obliku statičkih proširenih metoda. To su standardni operatori za upite. 307

2 Upiti koji pretražuju lokalne sekvence zovu se lokalni upiti ili LINQ-to-object upiti. LINQ podržava i sekvence koje se mogu dinamički popunjavati iz određenog udaljenog izvora podataka kao što SQL baza podataka. Te sekvence dodatno implementiraju interfejs IQueryable<T> i podržane su pomoću odgovarajućeg standardnog skupa operatora za upite u klasi Queryable. To ćemo detaljnije razmotriti u odeljku Interpretirani upiti, na strani 332 ovog poglavlja. Upit je izraz koji, kada je nabrojen, transformiše sekvence pomoću operatora za upite. Najjednostavniji upit se sastoji od jedne ulazne sekvence i jednog operatora. Na primer, operator Where možemo primeniti na jednostavan niz da bismo iz njega izdvojili elemente koji sadrže barem četiri znaka, na sledeći način: string[] names = Tom, Dick, Harry ; IEnumerable<string> filterednames = System.Linq.Enumerable.Where (names, n => n.length >= 4); foreach (string n in filterednames) Console.WriteLine (n); Dick Harry Pošto su standardni operatori za upite implementirani u obliku proširenih metoda, metodu Where možemo pozvati direktno za objekat names isto kao da je to metoda instance: IEnumerable<string> filterednames = names.where (n => n.length >= 4); Da bi to moglo da se kompajlira, morate uvesti imenski prostor System.Linq. Evo kako izgleda kompletan primer: using System; using System.Collections.Generic; using System.Linq; class LinqDemo static void Main() string[] names = Tom, Dick, Harry ; IEnumerable<string> filterednames = names.where (n => n.length >= 4); foreach (string name in filterednames) Console.WriteLine (name); Dick Harry Kôd bismo mogli još skratiti ako za promenljivu filterednames zadamo implicitno određivanje tipa: var filterednames = names.where (n => n.length >= 4); Međutim, time smo umanjili razumljivost koda, naročito izvan integrisanog razvojnog okruženja, gde nema kratkih opisa koji bi nam pomogli. U ovom poglavlju, izbegavaćemo implicitno određivanje tipa rezultata upita, osim na mestima gde je to obavezno (kao što ćemo videti u nastavku poglavlja, u odeljku Strategije za projekcije, na strani 330), ili kad je tip upita nebitan za sam primer. 308 Poglavlje 8: LINQ upiti

3 Većina operatora za upite prihvata lambda izraz kao argument. Lambda izraz olakšava razumevanje i formiranje upita. U našem primeru, lambda izraz je sledeći: n => n.length >= 4 Ulazni argument odgovara jednom ulaznom elementu. U ovom primeru, ulazni argument n predstavlja svako ime u nizu a tip mu je string. Operator Where zahteva da lambda izraz vraća vrednost tipa bool, koja ako je true, znači da taj element treba uključiti u izlaznu sekvencu. Potpis operatora Where izgleda ovako: public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate) Sledeći upit izdvaja sva imena koja sadrže slovo a : IEnumerable<string> filterednames = names.where (n => n.contains ( a )); foreach (string name in filterednames) Console.WriteLine (name); // Harry Dosad smo upite sastavljali pomoću proširenih metoda i lambda izraza. Kao što ćemo uskoro videti, ta strategija pruža velike mogućnosti kombinovanja jer omogućava ulančavanje operatora za upite. U ovoj knjizi, to zovemo tečna sintaksa (engl. fluent syntax). 1 C# podržava i drugi oblik sintakse za pisanje upita, nazvan sintaksa izraza upita. Ovako izgleda naš prethodni upit napisan u obliku izraza za upit: IEnumerable<string> filterednames = from n in names where n.contains ( a ) select n; Tečna sintaksa i sintaksa za upite međusobno su komplementarne. U naredna dva odeljka detaljno razmatramo oba oblika. Tečna sintaksa Tečna sintaksa je fleksibilna i fundamentalna. U ovom odeljku opisujemo kako se operatori za upite mogu ulančavati da bi se formirali složeniji upiti i tako pokazati zbog čega su proširene metode važne za taj postupak. Opisujemo i kako treba formulisati lambda izraze za operator upita i uvodimo više novih operatora za upite. Ulančavanje operatora za upite U prethodom odeljku prikazali smo dva jednostavna upita, svaki s po jednim operatorom. Da biste sastavili složeniji upit, izrazu treba da dodate druge operatore, čime formirate lanac. Ilustracije radi, upit koji sledi izdvaja sva imena koja sadrže slovo a, sortira ih po dužini, a rezultat zatim pretvara u velika slova: using System; using System.Collections.Generic; using System.Linq; LINQ upiti class LinqDemo static void Main() string[] names = Tom, Dick, Harry, Mary, Jay ; IEnumerable<string> query = names 1. Izraz potiče iz rada autora Erika Evansa i Martina Faulera na temu tečnih interfejsa. Tečna sintaksa 309

4 .Where (n => n.contains ( a )).OrderBy (n => n.length).select (n => n.toupper()); foreach (string name in query) Console.WriteLine (name); JAY MARY HARRY Promenljiva n, u našem primeru, jeste privatna u svakom lambda izrazu. Identifikator n možemo upotrebiti višekratno iz istih razloga zbog kojih možemo višekratno upotrebiti identifikator c u sledećoj metodi: void Test() foreach (char c in string1 ) Console.Write (c); foreach (char c in string2 ) Console.Write (c); foreach (char c in string3 ) Console.Write (c); Where, OrderBy i Select su standardni operatori za upite koji se prevode u proširene metode klase Enumerable (ako uvezete imenski prostor System.Linq). Već smo uveli operator Where, koji formira filtriranu verziju ulazne sekvence. Operator OrderBy vraća sortiranu verziju svoje ulazne sekvence, a metoda Select vraća izlaznu sekvencu u kojoj je svaki ulazni element transformisan ili projektovan pomoću zadatog lambda izraza (n.toupper(), u ovom slučaju). Podaci teku lancem operatora sleva nadesno, tako da se podaci prvo filtriraju, zatim sortiraju, a onda projektuju. Operator upita nikad ne menja samu ulaznu sekvencu, nego uvek vraća novu sekvencu. To je u skladu s modelom funkcionalnog programiranja, kojim je LINQ inspirisan. Ovako izgledaju potpisi pomenutih proširenih metoda (potpis metode OrderBy je neznatno pojednostavljen): public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate) public static IEnumerable<TSource> OrderBy<TSource,TKey> (this IEnumerable<TSource> source, Func<TSource,TKey> keyselector) public static IEnumerable<TResult> Select<TSource,TResult> (this IEnumerable<TSource> source, Func<TSource,TResult> selector) Kada se operatori za upite ulančavaju kao u ovom primeru, izlazna sekvenca jednog operatora jeste ulazna sekvenca operatora koji mu sledi. Konačan rezultat liči na proizvodnu liniju s transportnim trakama, kao što ilustruje slika 8-1. Identičan upit možemo zadati i u obliku korak po korak, kao što sledi: // Da bi se ovo prevelo, morate uvesti imenski prostor System.Linq: IEnumerable<string> filtered = names.where (n => n.contains ( a )); IEnumerable<string> sorted = filtered.orderby (n => n.length); IEnumerable<string> finalquery = sorted.select (n => n.toupper()); 310 Poglavlje 8: LINQ upiti

5 n => n.contains ("a") n => n.length n => n.toupper() Tom Dick Harry Mary Jay Filtriranje Sortiranje Projektovanje.Where().OrderBy.Select JAY MARY HARRY Slika 8-1. Ulančavanje operatora upita. Upit finalquery je po sadržaju identičan upitu query koji smo ranije napisali. Osim toga, i svaki međukorak je ispravan upit koji možemo izvršiti: foreach (string name in filtered) Console.Write (name + ); // Harry Mary Jay Console.WriteLine(); foreach (string name in sorted) Console.Write (name + ); Console.WriteLine(); foreach (string name in finalquery) Console.Write (name + ); // Jay Mary Harry // JAY MARY HARRY Zbog čega su važne proširene metode Umesto sintakse s proširenim metodama, operatore za upite možete pozivati i pomoću standardne sintakse za statičke metode. Na primer: IEnumerable<string> filtered = Enumerable.Where (names, n => n.contains ( a )); IEnumerable<string> sorted = Enumerable.OrderBy (filtered, n => n.length); IEnumerable<string> finalquery = Enumerable.Select (sorted, n => n.toupper()); To je, zapravo, oblik u koji kompajler prevodi pozive proširenim metodama. Međutim, izbegavanje proširenih metoda ima svoju cenu, ako pokušavate da napišete upit koji se sastoji od samo jedne naredbe, kao što smo to ranije uradili. Vratimo se na upit kombinovan u jednoj naredbi prvo sa sintaksom pomoću proširene metode: IEnumerable<string> query = names.where (n => n.contains ( a )).OrderBy (n => n.length).select (n => n.toupper()); Njegov prirodan linearni oblik odražava tok podataka sleva nadesno i postavlja lambda izraze neposredno pored odgovarajućih operatora u upitu (infiksna notacija). Bez proširenih metoda, upit više nije tečan: IEnumerable<string> query = Enumerable.Select ( Enumerable.OrderBy ( Enumerable.Where ( names, n => n.contains ( a ) ), n => n.length ), n => n.toupper() ); LINQ upiti Tečna sintaksa 311

6 Kombinovanje lambda izraza U prethodnim primerima, operatoru Where prosledili smo sledeći lambda izraz: n => n.contains ( a ) // Ulazni tip=string, povratni tip=bool. Lambda izraz koji prihvata ulaznu vrednost i vraća tip bool zove se predikat. Svrha lambda izraza zavisi od konkretnog operatora za upite. Kada ga zadate uz operator Where, lambda izraz određuje da li element treba uključiti u izlaznu sekvencu. U slučaju operatora OrderBy, lambda izraz preslikava svaki element u ulaznoj sekvenci na njegovo mesto po ključu za sortiranje. Uz operator Select, lambda izraz određuje kako se svaki element ulazne sekvence transformiše pre nego što se umetne u izlaznu sekvencu. Lambda izraz pridružen operatoru za upite uvek deluje na pojedinačne elemente ulazne sekvence a ne na sekvencu kao celinu. Operator za upite izračunava vrednost lambda izraza na zahtev najčešće jedanput po elementu ulazne sekvence. Lambda izrazi omogućavaju da operatorima za upite prosleđujete vlastitu logiku. To čini operatore za upite vrlo raznovrsnim kao i jednostavnim ispod haube. Ovako izgleda kompletna implementacija metode Enumerable.Where, bez koda za obradu izuzetaka: public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate) foreach (TSource element in source) if (predicate (element)) yield return element; Lambda izrazi i potpisi delegata Func Standardni operatori za upite koriste generičke delegate Func. Func je porodica generičkih delegata opšte namene u imenskom prostoru System koji su definisani za sledeću svrhu: Argumenti tipa u delegatu Func zadaju se istim redosledom kao i u lambda izrazima. Stoga Func<TSource,bool> odgovara lambda izrazu TSource=>bool: onom koji prihvata argument tipa TSource i vraća vrednost tipa bool. Slično tome, Func<TSource,TResult> odgovara lambda izrazu TSource=>TResult. Func delegati su nabrojani u odeljku Lambda izrazi, na strani 135 poglavlja 4. Lambda izrazi i tip elemenata Standardni operatori za upite koriste sledeća generička imena tipova: Generički tip TSource TResult TKey Značenje Tip elemenata ulazne sekvence Tip elemenata izlazne sekvence različit od Tsource Tip elemenata za ključ po kojem se elementi sortiraju, grupišu ili spajaju 312 Poglavlje 8: LINQ upiti

7 Tip TSource određuje ulazna sekvenca. Tipovi TResult i Tkey se najčešće izvode iz lambda izraza. Na primer, pogledajte potpis operatora Select: public static IEnumerable<TResult> Select<TSource,TResult> (this IEnumerable<TSource> source, Func<TSource,TResult> selector) Delegat Func<TSource,TResult> odgovara lambda izrazu TSource=>TResult: onom koji preslikava jedan ulazni element u jedan izlazni element. Pošto su TSource i TResult različiti tipovi, lambda izraz može da menja tip svakog elementa. Osim toga, lambda izraz određuje tip izlazne sekvence. Naredni upit pomoću operatora Select transformiše ulazne elemente tipa string u izlazne elemente celobrojnog tipa: string[] names = Tom, Dick, Harry, Mary, Jay ; IEnumerable<int> query = names.select (n => n.length); foreach (int length in query) Console.Write (length + ); // Kompajler izvodi tip TResult iz povratne vrednosti lambda izraza. U ovom slučaju, za TResult je izveden tip int. Operator za upite Where je jednostavniji i ne zahteva izvođenje tipa izlazne sekvence, pošto su ulazni i izlazni elementi istog tipa. To je logično jer taj operator samo filtrira elemente; on ih ne transformiše: public static IEnumerable<TSource> Where<TSource> (this IEnumerable<TSource> source, Func<TSource,bool> predicate) I najzad, razmotrite potpis operatora OrderBy: // Malo pojednostavljen: public static IEnumerable<TSource> OrderBy<TSource,TKey> (this IEnumerable<TSource> source, Func<TSource,TKey> keyselector) Func<TSource,TKey> preslikava jedan ulazni element u ključ za sortiranje. Tip TKey se izvodi iz lambda izraza nezavisno od tipova ulaznih i izlaznih elemenata. Na primer, listu imena mogli smo da sortiramo po dužini imena (ključ tipa int) ili alfabetskim redosledom (ključ tipa string): string[] names = Tom, Dick, Harry, Mary, Jay ; IEnumerable<string> sortedbylength, sortedalphabetically; sortedbylength = names.orderby (n => n.length); // ključ tipa int sortedalphabetically = names.orderby (n => n); // ključ tipa string Operatore za upite u klasi Enumerable možete pozivati i pomoću tradicionalnih delegata koji referenciraju metode umesto lambda izraza. Takvo rešenje je dobro za pojednostavljivanje određenih vrsta lokalnih upita naročito u slučaju LINQ u XML što je opisano u poglavlju 10. Međutim, nije upotrebljivo za sekvence koje implementiraju interfejs IQueryable<T> (na primer, kada pretražujete bazu podataka), zato što su operatorima definisani u interfejsu Queryable potrebni lambda izrazi da bi formirali stabla izraza. To ćemo razmotriti u nastavku poglavlja, u odeljku Interpretirani upiti, na strani 332. LINQ upiti Prirodni redosled U LINQ-u je značajan redosled elemenata ulazne sekvence. Neki operatori za upite, kao što su Take, Skip i Reverse, uzimaju u obzir taj redosled. Tečna sintaksa 313

8 Operator Take izdvaja prvih x elemenata ulazne sekvence, a ostale odbacuje: int[] numbers = 10, 9, 8, 7, 6 ; IEnumerable<int> firstthree = numbers.take (3); // 10, 9, 8 Operator Skip preskače prvih x elemenata i vraća sve preostale: IEnumerable<int> lasttwo = numbers.skip (3); // 7, 6 Reverse radi tačno ono što biste očekivali: IEnumerable<int> reversed = numbers.reverse(); // 6, 7, 8, 9, 10 U lokalnim upitima (LINQ-to-objects), operatori kao što su Where i Select zadržavaju izvorni redosled elemenata u ulaznoj sekvenci (kao što to čine i drugi operatori za upite, osim onih koji izričito menjaju redosled). Ostali operatori Ne vraćaju svi operatori za upite izlaznu sekvencu. Operatori nad elementima izdvajaju određeni element iz ulazne sekvence. Primeri toga su operatori First, Last i ElementAt: int[] numbers = 10, 9, 8, 7, 6 ; int firstnumber = numbers.first(); // 10 int lastnumber = numbers.last(); // 6 int secondnumber = numbers.elementat(1); // 9 int secondlowest = numbers.orderby(n=>n).skip(1).first(); // 7 Operatori za agregaciju (grupni) vraćaju skalarnu vrednost, najčešće numeričkog tipa: int count = numbers.count(); // 5; int min = numbers.min(); // 6; Kvantifikatori vraćaju vrednost tipa bool: bool hasthenumbernine = numbers.contains (9); // true bool hasmorethanzeroelements = numbers.any(); // true bool hasanoddelement = numbers.any (n => n % 2!= 0); // true Pošto ti operatori vraćaju po jedan element, s njihovim rezultatom najčešće ne možete dalje pozivati druge operatore za upite, osim kada je i sam rezultujući element kolekcija. Neki operatori za upite prihvataju dve ulazne sekvence. Primeri toga su operator Concat, koji nadovezuje jednu sekvencu na drugu, i operator Union, koji radi to isto, ali uklanja duplikate: int[] seq1 = 1, 2, 3 ; int[] seq2 = 3, 4, 5 ; IEnumerable<int> concat = seq1.concat (seq2); // 1, 2, 3, 3, 4, 5 IEnumerable<int> union = seq1.union (seq2); // 1, 2, 3, 4, 5 Operatori za spajanje sekvenci takođe pripadaju ovoj kategoriji. U poglavlju 9 detaljno su objašnjeni svi operatori za upite. Izrazi upita C# ima sintaksnu prečicu za pisanje LINQ upita, što se zove izraz upita. Nasuprot raširenom verovanju, izraz upita nije način da se SQL ugradi u C# kôd. Zapravo, dizajn izraza upita bio je inspirisan prvenstveno konceptom kombinovanja lista (engl. list comprehension) iz jezika za funkcionalno programiranje kao što su LISP i Haskell, mada je i SQL imao kozmetički uticaj. 314 Poglavlje 8: LINQ upiti

9 U ovoj knjizi, sintaksu za izraze upita nazivamo jednostavno sintaksa za upite. U prethodnom odeljku, napisali smo upit s tečnom sintaksom koji izdvaja znakovne nizove koji sadrže slovo a, sortira ih po dužini i pretvara u velika slova. Ovako izgleda isti upit u obliku sintakse za upite: using System; using System.Collections.Generic; using System.Linq; class LinqDemo static void Main() string[] names = Tom, Dick, Harry, Mary, Jay ; IEnumerable<string> query = from n in names where n.contains ( a ) // Filtrira elemente orderby n.length // Sortira elemente select n.toupper(); // Pretvara svaki element (projekcija) foreach (string name in query) Console.WriteLine (name); JAY MARY HARRY Izrazi upita uvek počinju odredbom from a završavaju se odredbom select ili group. Odredba from deklariše promenljivu opsega (u ovom slučaju, n), koju možete zamisliti kao način za pristupanje jednom po jednom elementu sekvence otprilike kao foreach. Slika 8-2 ilustruje kompletnu sintaksu u obliku šinskog dijagrama. Da biste čitali taj dijagram, krenite od levog kraja a zatim nastavite po određenom koloseku kao da ste voz. Na primer, iza obavezne odredbe from, možete opciono dodati odredbu orderby, where, let ili join. Iza toga, možete nastaviti do odredbe select ili group, ili se vratiti da biste dodali novu odredbu from, orderby, where, let ili join. Kompajler obrađuje izraz upita tako što ga prevodi u tečnu sintaksu. To radi na sasvim mehanički način vrlo slično načinu na koji naredbe foreach prevodi u pozive metoda Get Enumerator i MoveNext. To znači da sve što možete napisati u obliku izraza upita, možete napisati i u obliku tečne sintakse. Naš primer upita kompajler prevodi (prvo) u sledeći oblik: IEnumerable<string> query = names.where (n => n.contains ( a )).OrderBy (n => n.length).select (n => n.toupper()); LINQ upiti Izrazi upita 315

10 from identifikator ime tipa, orderby izraz in enumerable-izraz ascending descending nastavak upita SelectMany groupodredba fromodredba where boolean-izraz let identifier = izraz select izraz orderbyodredba identifikator into join-odredba group izraz by izraz join unutrašnji in unutrašnji on spoljni equals identifikator izraz ključ unutrašnji ključ into identifikator Slika 8-2. Sintaksa za upite. Operatore Where, OrderBy i Select zatim razrešava prema istim pravilima koja bi važila kada bi upit bio napisan u tečnoj sintaksi. U ovom slučaju, oni se pretvaraju u pozive odgovarajućih proširenih metoda klase Enumerable jer je uvezen imenski prostor System.Linq i sekvenca names implementira interfejs IEnumerable<string>. Međutim, kada prevodi izraze upita, kompajler nije posebno sklon klasi Enumerable. Možete ga zamisliti kako u naredbu prvo mehanički umeće reči Where, OrderBy i Select, a zatim prevodi rezultat kao da ste ta imena metoda vi napisali. To pruža veliku fleksibilnost u pogledu načina razrešavanja tih metoda. Na primer, upiti u baze podataka koje ćemo pisati u odeljcima koji slede, povezivaće se s proširenim metodama klase Queryable. Ako iz našeg programa uklonimo direktivu using System.Linq, upit se neće kompajlirati zato što metode Where, OrderBy i Select neće imati s čim da se povežu. Izrazi upita se ne mogu kompajlirati dok ne uvezete System.Linq ili drugi imenski prostor u kojem se nalazi implementacija tih metoda upita. 316 Poglavlje 8: LINQ upiti

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.

Више

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 - 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

Више

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

Више

Microsoft PowerPoint - 6. Query Builder.pptx

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

Више

8 2 upiti_izvjesca.indd

8 2 upiti_izvjesca.indd 1 2. Baze podataka Upiti i izvješća baze podataka Na početku cjeline o bazama podataka napravili ste plošnu bazu podataka o natjecanjima učenika. Sada ćete izraditi relacijsku bazu u Accessu o učenicima

Више

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

Више

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

Више

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

Више

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

Више

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

Више

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

Више

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

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

Више

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

Више

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

Више

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

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

Више

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

Више

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

Више

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 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

Више

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)

Више

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

Више

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,

Више

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

Више

Microsoft PowerPoint - Topic04-Serbian.ppt

Microsoft PowerPoint - Topic04-Serbian.ppt Tema 4 Osnovni koncepti za opis razvoja softvera DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University

Више

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

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Baze podataka Tema: Osnovna SELECT naredba Vježbu pripremili:

Више

Introduction to Programming

Introduction to  Programming SQL Podupiti o Podupit je upit unutar upita Mogućnosti podupita o Ima zadatak da razloži komplesnu logiku o Mozemo da prikažemo podatke koje nam where klauzula ne bi dozvolila, to se pre svega odnosi na

Више

1

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

Више

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

Више

P11.3 Analiza zivotnog veka, Graf smetnji

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

Више

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

Више

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 - 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

Више

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

Више

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

Више

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

Више

Орт колоквијум

Орт колоквијум II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу

Више

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,

Више

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

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

Више

Introduction to Programming

Introduction to  Programming SQL Indeksi Uloga Indeksa o Kako baza postaje sve veća dizajn baze postaje sve važniji o Indeksi igraju značajnu ulogu u brzini rada same baze jer pomažu DBMS da brže pronađe ono što tražimo o Slični su

Више

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,

Више

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

Више

Baza podataka

Baza podataka Baza podataka Marijan Šuflaj FER, 2018 Sadržaj Baza podataka Upravljanje sadržajem baza CREATE TABLE ALTER TABLE DROP TABLE INSERT SELECT Spajanje tablica UPDATE DELETE Baza podataka Apstrakcija pohrane

Више

Microsoft PowerPoint - Bitovi [Compatibility Mode]

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

Више

03 SUBP

03 SUBP Osnovni SQL tipovi podataka Tip podataka NUMBER(p,s) Opis Broj sa maksimalno p cifara od kojih je s maksimalni broj decimala (1 < p < 38) (- 84 < s < 127) VARCHAR2(s) Promenjivi niz karaktera maksimalne

Више

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

Више

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

Више

SELECT statement basic form

SELECT statement basic form NAZIV OBJEKTA ZNANJA Uvod u JQuery PROLOG Autor * Katarina Kaplarski Klasifikacija * Težina * Osnovni nivo Ključne reči * Ko sluša * Student OAS Trajanje * Komentari autora SADRŽAJ Apstrakt Cilj * Uvodne

Више

Slide 1

Slide 1 OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik

Више

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;

Више

PDO

PDO PDO Marijan Šuflaj FER, 2018 Sadržaj PDO Osnove Izvršavanje upita Ranjivosti Dohvaćanje rezultata upita PDO - PHP Data Objects Jednostavno i konzistetno sučelje za pristup bazama podataka iz PHP-a Isti

Више

Орт колоквијум

Орт колоквијум Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат

Више

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

Више

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ž

Више

P2.1 Formalne gramatike

P2.1 Formalne gramatike Превођење Полазни језик? Одредишни језик 1 Превођење Полазни језик? Одредишни језик Како знање неког језика стиче и складишти човек, а како рачунар? 2 Два аспекта језика Синтакса Семантика значење То су

Више

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

Више

PowerPoint Presentation

PowerPoint Presentation УВОД Дa би рaчунaри нa мрежи могли међусобно да кoмуницирaју и рaзмeњују пoдaткe, пoтрeбнo je: дa сe увeду ПРOТOКOЛИ (утврђeна прaвилa и процедуре за комуникацију) да постоје АДРEСE кoje су jeдинствeнe

Више

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

Више

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

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar. 1.. Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred. 1.7. Bodovna vrijednost (ECTS) 7 1.3. Suradnici 1.8. Način izvođenja nastave

Више

Introduction to Programming

Introduction to  Programming Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case

Више

P9.1 Dodela resursa, Bojenje grafa

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

Више

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ć,

Више

Slide 1

Slide 1 Катедра за управљање системима ТЕОРИЈА СИСТЕМА Предавањe 2: Основни појмови - систем, модел система, улаз и излаз UNIVERSITY OF BELGRADE FACULTY OF ORGANIZATIONAL SCIENCES План предавања 2018/2019. 1.

Више

Uputstva za oblikovanje doktorske disertacije

Uputstva za oblikovanje doktorske disertacije Прилог 4. Упутства за обликовање докторске дисертације Докторски рад пише се на српском језику или на другом језику, у складу са Законом, и садржи упоредну насловну страну, проширени резиме (до 4 стране)

Више

Classroom Expectations

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

Више

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

Више

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

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

Више

Uvod u računarstvo 2+2

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

Више

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.

Више

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,

Више

PowerPoint Presentation

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

Више

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

Више

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

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

Више

Microsoft Word - Lekcija 11.doc

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

Више

IEP - Projekat 2018/2019

IEP - Projekat 2018/2019 Elektrotehnički fakultet u Beogradu Katedra za računarsku tehniku i informatiku Predmet: Infrastruktura za elektronsko poslovanje SI3IEP Veb portal za tehničku podršku - projekat - Osnovni cilj projekta

Више

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

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

Више

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

Више

UPITI NAD JEDNOM TABELOM 1. Izdvojiti šifre svih knjiga select K_SIF from K 2. Izdvojiti šifre knjiga iz tabele K uz imenovanje kolone select K_SIF as

UPITI NAD JEDNOM TABELOM 1. Izdvojiti šifre svih knjiga select K_SIF from K 2. Izdvojiti šifre knjiga iz tabele K uz imenovanje kolone select K_SIF as UPITI NAD JEDNOM TABELOM 1. Izdvojiti šifre svih knjiga select K_SIF 2. Izdvojiti šifre knjiga iz tabele K uz imenovanje kolone select K_SIF as SIFRA_KNJIGE 3. Izdvojiti šifre knjiga i njihove naslove

Више

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

Računarski praktikum I - Vježbe 06 - Standard Template Library (2) Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 06 - Standard Template Library (2) v2018/2019. Sastavio: Zvonimir Bujanović pair pair je generička

Више

UPUTE ZA OBLIKOVANJE DOKTORSKE DISERTACIJE Doktorska disertacija se piše na hrvatskom standardnom jeziku. Disertacija može biti napisana na nekom od s

UPUTE ZA OBLIKOVANJE DOKTORSKE DISERTACIJE Doktorska disertacija se piše na hrvatskom standardnom jeziku. Disertacija može biti napisana na nekom od s UPUTE ZA OBLIKOVANJE DOKTORSKE DISERTACIJE Doktorska disertacija se piše na hrvatskom standardnom jeziku. Disertacija može biti napisana na nekom od svjetskih jezika (engleski, njemački itd.). Tekst disertacije

Више

Drveta odlucivanja - algoritmi

Drveta odlucivanja - algoritmi Nenad Mitić Matematički fakultet nenad@matf.bg.ac.rs Uvod Algoritmi (Iterative Dichotomiser 3) C5.0 (Classification And Regression Trees) (CHi-squared Automatic Interaction Detection) Exhaustive (Quick,

Више

Baza fakultet sadrži 3 tabele: tabela studenti sadrzi informacije o studentima Njeni atributi su: indeks indeks studenta (primarni kljuc) ime ime stud

Baza fakultet sadrži 3 tabele: tabela studenti sadrzi informacije o studentima Njeni atributi su: indeks indeks studenta (primarni kljuc) ime ime stud Baza fakultet sadrži 3 tabele: tabela studenti sadrzi informacije o studentima indeks indeks studenta (primarni kljuc ime ime studenta prezime - prezime studenta napomena - napomena tabela predmeti sadrzi

Више

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,

Више

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, 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)

Више

01 SUBP

01 SUBP ER model šeme baze podataka: (Sef) (0, N) (0, N) RADNIK (0, 1) SEF (0, N) (Podredjeni) RUKOVODI RADI _NA (1, 1) (0, N) PROJEKAT Šema relacione baze podataka: RADNIK({Mbr, Prez, Ime, Sef, Plata, Datr},

Више

P1.2 Projektovanje asemblera

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

Више

Principi softverskog inženjerstva O predmetu

Principi softverskog inženjerstva  O predmetu Vežbe - IV nedelja Modeli baze podataka Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Potrebno je da: Razumete koncepte modela i njegovu svrhu Naučite kako se odnosi između

Више

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

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

Више

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

Више

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc Zadaci za samostalno vježbanje 4. Svi zadaci dati ovdje su takvi da se mogu uraditi korištenjem isključivo gradiva prva četiri predavanja i ranije stečenog predznanja na predmetu Osnove računarstva. Zvjezdicom

Више

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*

Више

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

Више

PowerPoint Presentation

PowerPoint Presentation + Fakultet organizacionih nauka Upravljanje razvojem IS MSc Ana Pajić Simović ana.pajic@fon.bg.ac.rs ANALIZA POSLOVNIH PROCESA BUSINESS PROCESS MANAGEMENT (BPM) PROCESS MINING + Business Process Management

Више

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

Више

Microsoft PowerPoint - C-4-1

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 Ψ,

Више

ELEKTRONIKA

ELEKTRONIKA МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА РЕПУБЛИКЕ СРБИЈЕ ЗАЈЕДНИЦА ЕЛЕКТРОТЕХНИЧКИХ ШКОЛА РЕПУБЛИКЕ СРБИЈЕ ДВАДЕСЕТ ДРУГО РЕГИОНАЛНО ТАКМИЧЕЊЕ ЗАДАЦИ ИЗ ЕЛЕКТРОНИКЕ ЗА УЧЕНИКЕ ТРЕЋЕГ РАЗРЕДА

Више

(Microsoft PowerPoint - 903_\216nidari\346_Java Persistence.pptx)

(Microsoft PowerPoint - 903_\216nidari\346_Java Persistence.pptx) Java Persistence API (JPA) najbolje prakse Slavko Žnidarić Beta Tau Beta slavko.znidaric@btb.hr Vaš podatkovni sloj? Vaš šef, DBA ili klijent? Vi? Uzroci loših performansi Previše upita Spori upiti Loše

Више

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

Више

PowerPoint Presentation

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

Више

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.

Више