PowerPoint Presentation
|
|
- Zvonko mlajši
- пре 5 година
- Прикази:
Транскрипт
1 Објектно орјентисано програмирање Владимир Филиповић Александар Картељ
2 Енумерисани и генерички типови Владимир Филиповић Александар Картељ
3 Енумерисани тип 3/35 Понекад променљива служи за чување вредности из ограниченог скупа. На пример, можда се продаје одећа у четири величине: small, medium, large и extra large. Наравно, ове величине се могу кодирати целим бројевима 1, 2, 3, 4 или знацима S, M, L, X. Али такав приступ је склон грешкама. Може се догодити да променљива добије погрешну вредност (попут 0 или m). У Јави је могуће дефинисати сопствени енумерисани тип. Такав тип има коначан број именованих вредности. На пример, за претходно описану ситуацију уводи се енумерисани тип: enum Velicina {SMALL, MEDIUM, LARGE, EXTRA_LARGE;
4 Енумерисани тип (2) 4/35 Енумерисани тип се заправо понаша као класа. Класа из претходног примера садржи тачно четири податка тј. тачно четири примерка - није могуће конструисати нове објекте. Према томе, нема потребе користити метод equals() за поређење вредности енумерисаног типа, већ се подаци тог типа пореде коришћењем оператора ==. Могуће је декларисати променљиву енумерисаног типа. На пример. Velicina v = Velicina.MEDIUM; Променљива типа Velicina може чувати само једну од вредности излистаних у декларацији овог типа или специјалну вредност null.
5 Енумерисани тип (3) 5/35 Могуће је, по потреби, додати конструкторе, методе и поља типу енумерације. Наравно, конструктори се позивају само приликом конструисања константи енумерације. Следи пример. enum Velicina { SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL"); private String skracenica; private Velicina(String skracenica) { this.skracenica = skracenica; public String getskracenica() { return skracenica;
6 Енумерисани тип (4) 6/35 Сви типови енумерације су поткласе класе Enum. Они наслеђују известан број метода од те класе. Најкориснији међу њима је метод tostring(), који враћа име константе енумерације. Тако, на пример, Velicina.SMALL.toString() враћа стринг SMALL. Супротан ефекат има статички метод valueof(). На пример наредба, Velicina v = (Velicina) Enum.valueOf(Velicina.class, "SMALL"); поставља v на Velicina.SMALL.
7 Енумерисани тип (5) 7/35 Сваки тип енумерације поседује статички метод values() који враћа низ вредности енумерације. Тако, на пример, наредба Velicina[] vrednosti = Velicina.values(); враћа низ са елементима: Velicina.SMALL, Velicina.MEDIUM, Velicina.LARGE и Velicina.EXTRA_LARGE. Метод ordinal() враћа позицију константе енумерације у enum декларацији, при чему бројање почиње од 0. Тако, на пример, Velicina.MEDIUM.ordinal() враћа 1.
8 Енумерисани тип (6) 8/35 Енумерације се могу користити код вишеструког гранања помоћу наредбе switch: Velicina v =...; switch (v) { case SMALL: // nema potrebe koristiti Velicina.SMALL... break;... У case клаузама не наводи се тип енумерације, већ само име константе.
9 Појам генеричког типа 9/35 Генерички тип омогућује да при дефинисању класа, интерфејса и метода сами типови (тј. класе и интерфејси) буду параметри. Дакле, генерички типови се понашају слично као формални параметри при дефинисању метода. Програмирање коришћењем генеричких типова има следеће предности: 1. Строжија контрола типа приликом превођења Јава програма. 2. Елиминација експлицитне конверзије типа (кастовања). 3. Омогућавање да се имплементирају генерички алгоритми.
10 Предности генеричког типа 10/35 List stones = new LinkedList(); stones.add(new Stone(RED)); stones.add(new Stone(GREEN)); stones.add(new Stone(RED)); Stone first = (Stone) stones.get(0); Код старог приступа експлицитна конверзија је досадна али суштински неопходна! public int countstones(color color) { int tally = 0; Iterator it = stones.iterator(); while (it.hasnext()) { Stone stone = (Stone) it.next(); if (stone.getcolor() == color) tally++; return tally;
11 Предности генеричког типа (2) 11/35 У новом приступу интерфејс List је генерички интерфејс коме тип елемента листе представља параметар. List<Stone> stones = new LinkedList<Stone>(); stones.add(new Stone(RED)); stones.add(new Stone(GREEN)); stones.add(new Stone(RED)); Stone first = /*no cast*/ stones.get(0); public int countstones(color color) { int tally = 0; /*no temporary*/ for (Stone stone : stones) { /*no temporary, no cast*/ if (stone.getcolor() == color) tally++; return tally;
12 Предности генеричког типа (3) 12/35 стари начин List stones = new LinkedList(); stones.add( ovo nije kamen );... Stone stone = (Stone) stones.get(0); Нема провере Грешка при извршавању Runtime error нови начин List<Stone> stones = new LinkedList<Stone>(); stones.add( ovo nije kamen );... Stone stone = stones.get(0); Провера при превођењу Извршење је без проблема
13 Стек као генерички интерфејс 13/35 public interface StackInterface { public boolean isempty(); public int size(); public void push(object item); public Object top(); public void pop(); Стари начин public interface StackInterface<E> { public boolean isempty(); public int size(); public void push(e item); public E top(); public void pop(); Нови начин: Дефинише се генерички интерфејс који има тип као параметар
14 14/35 Генерички тип је уствари генеричка класа или интерфејс са параметризованим типовима. Пример. Дефинисање генеричког типа Следећа класа, названа Box, ће бити модификована тако да опише концепт генеричког типа. На почетку се ради о обичној класи. public class Box { private Object object; public void set(object object) { this.object = object; public Object get() { return object;
15 15/35 Дефинисање генеричког типа (2) Генеричка класа се дефинише на следећи начин: class name<t1, T2,..., Tn> { /*... */ Секција са параметрима који представљају типове, ограничена са знацима < и > следи непосредно иза имена класе. У тој секцији се специфицирају параметри који представљају типове T1, T2,..., и Tn. Сада класа Box има следећу структуру: public class Box<T> { // T je oznaka tipa private T t; public void set(t t) { this.t = t; public T get() { return t;
16 16/35 Дефинисање генеричког типа (3) Конвенције за именовање параметара који представљају тип код генеричких типова, интерфејса и метода: По конвенцији, параметри су означени једним великим словом. Најчешће се користе следеће ознаке: E - Елеменат (енг. Element - њега ексклузивно користи Java Collections Framework) K Кључ (енг. Key) N Број (енг. Number) T Тип (енг. Type) V Вредност (енг. Value) S,U,W итд. други, трећи, четврти итд. тип
17 Генерички позив типа 17/35 Да би се из програмског кода реферисало на генеричку класу Box, потребно је извршити генерички позив типа. То подразумева замену параметра T конкретном вредношћу. Box<Integer> integerbox; Генерички позив типа се може посматрати слично обичном позиву метода, само се уместо вредности аргумента прослеђује тип (у овом случају тип Integer). Позивање генеричког типа се обично означава као параметарски тип. За креирње примерка класе користи се кључна реч new, али се између имена класе и заграда поставља <Integer>: Box<Integer> integerbox = new Box<Integer>();
18 18/35 Генерички позив типа (2) Програмски језик Јава допушта да се у конструктору примерка генерички тип изостави ако преводилац може на основу контекста да одреди ког типа треба да буду аргументи. Нпр. Box<Integer> integerbox = new Box<>(); Аргумент који представља тип се може приликом генеричког позива заменити са: конкретним типом (нпр. са Integer или са Student) али се може заменити и са параметризованим типом (нпр. са Box<Double> или са List<String>).
19 Генерички метод 19/35 Генерички методи су они методи са параметрима који представљају типове. Они су слични генеричким типовима, али је опсег параметара ограничен на метод у ком су ти параметри декларисани. Синтакса за генерички метод садржи (пре повратног типа) параметре који представљају тип између знака < и >. Пример. Класа Util садржи генерички метод compare за поређење два примерка генеричке класе Pair: public class Util { public static <K, V> boolean compare(pair<k, V> p1, Pair<K, V> p2){ return p1.getkey().equals(p2.getkey()) && p1.getvalue().equals(p2.getvalue());
20 Генерички метод (2) 20/35 Пример (наставак): Сама класа Pair има следећу структуру: public class Pair<K, V> { private K key; private V value; // Generički konstruktor public Pair(K key, V value) { this.key = key; this.value = value; // Generičke metode public void setkey(k key) { this.key = key; public void setvalue(v value) { this.value = value; public K getkey() { return key; public V getvalue() { return value;
21 Генерички метод (3) 21/35 Пример (наставак): Синтакса за позив метода који пореди примерке класе Pair је следећа: Pair<Integer, String> p1 = new Pair<>(1, "apple"); Pair<Integer, String> p2 = new Pair<>(2, "pear"); boolean same = Util.<Integer, String>compare(p1, p2);
22 Ограничења за типове 22/35 Понекад је потребно да генеричка класа или генерички метод постави ограничење на променљиве типа. Пример: Треба одредити најмањи елеменат низа: class ArrayAlg { public static <T> T min(t[] a){ if (a == null a.length == 0) return null; T smallest = a[0]; for (int i = 1; i < a.length; i++) if (smallest.compareto(a[i]) > 0) smallest = a[i]; return smallest; Променљива smallest је типа T, што значи да она може бити примерак ма које класе. Одмах се поставља питање: како можемо знати да класа T садржи метод compareto?
23 23/35 Ограничења за типове (2) Решење је да се ограничи параметар типа T само на оне класе које имплементирају интерфејс Comparable. Ово се постиже постављањем ограничења на променљиву типа T: public static <T extends Comparable> T min(t[] a) У овом случају, интерфејс Comparable је и сам генерички тип. Сада се генерички метод min може позивати само над низовима примерака класа које имплементирају интерфејс Comparable, као што су String, Date итд. Позив овог метода над низом објеката неке класе која не имплементира интерфејс Comparable доводи до грешке у превођењу.
24 24/35 Ограничења за типове (3) Поставља се питање: зашто се у претходном случају користи кључна реч extends, а не нпр. implements на крају крајева, Comparable је интрефејс, а не класа. Нотација <T extends TipKojiOgranicava> изражава да параметарски тип T треба да буде подтип типа који ограничава. При томе, и параметарски тип T и тип који ограничава могу бити и класе и интерфејси. Кључна реч extends најбоље описује такав однос међу њима, тј. концепт подтипова - узевши у обзир да дизајнери Јаве нису желели да додају нову кључну реч (нпр. sub) у језик.
25 25/35 Ограничења за типове (4) Параметар типа може имати више ограничења. На пример: T extends Comparable & Serializable Типови који ограничавају су одвојени знаком & зато што се знак зарез користи за раздвајање променљивих типа. Исто као и код Јава наслеђивања, могуће је имати више интерфејса који ограничавају параметар типа, али само једно ограничење може да се односи на класу. Ако класа представља ограничење ѕа тип, назив класе се мора навести пре назива интерфејса. Пример. Метод minmax, који одређује минимум и максимум низа, је направљен тако да буде генерички:
26 Ограничења за типове (5) 26/35 Пример (наставак). import java.util.*; public class PairTest2 { public static void main(string[] args) { GregorianCalendar[] birthdays = { new GregorianCalendar(1906, Calendar.DECEMBER, 9), new GregorianCalendar(1815, Calendar.DECEMBER, 10), new GregorianCalendar(1903, Calendar.DECEMBER, 3), new GregorianCalendar(1910, Calendar.JUNE, 22), ; Pair<GregorianCalendar> mm = ArrayAlg.minmax(birthdays); System.out.println("min = " + mm.getfirst().gettime()); System.out.println("max = " + mm.getsecond().gettime());
27 Ограничења за типове (6) 27/35 Пример (наставак). class ArrayAlg { public static <T extends Comparable> Pair<T> minmax(t[] a) { if (a == null a.length == 0) return null; T min = a[0]; T max = a[0]; for (int i = 1; i < a.length; i++) { if (min.compareto(a[i]) > 0) min = a[i]; if (max.compareto(a[i]) < 0) max = a[i]; return new Pair<T>(min, max);
28 Генерици и виртуелна машина 28/35 Кад год се дефинише генерички тип, аутоматски бива обезбеђен одговоарајући сирови (енг. raw) тип. Име сировог типа је исто као име генеричког типа, само што су уколоњени параметри који представљају типове. Променљиве које представљају типове су просто замењене са типовима који их ограничавају или са Object типом (ако за те променљиве није било ограничења).
29 Генерици и виртуелна машина (2) Пример. Сирови тип за Pair<T> има следећи облик: 29/35 public class Pair { private Object first; private Object second; public Pair(Object first, Object second) { this.first = first; this.second = second; public Object getfirst() { return first; public Object getsecond() { return second; public void setfirst(object newvalue) { first = newvalue; public void setsecond(object newvalue) { second = newvalue;
30 Генерици и виртуелна машина (3) У претходном примеру параметар T није био ограничен, па је стога он једноставно замењен са класом тј. типом Object. Мада програм може садржати различите врсте парова, као што су Pair<String> или Pair<GregorianCalendar>, током превођења сви они буду преведени у сирове Pair типове. Пример. Претпоставимо да је донекле другачије дефинисан тип: public class Interval<T extends Comparable & Serializable> implements Serializable { private T lower; private T upper; 30/35 public Interval(T first, T second) { if (first.compareto(second) <= 0) { lower = first; upper = second; else { lower = second; upper = first;
31 Генерици и виртуелна машина (4) Пример (наставак). Тада сирови Interval тип има следећи облик: public class Interval implements Serializable { private Comparable lower; private Comparable upper; public Interval(Comparable first, Comparable second) { if (first.compareto(second) <= 0) { lower = first; upper = second; else { lower = second; upper = first; Ако се промени редослед граница у дефиницији класе Interval : class Interval<T extends Serializable & Comparable> тада се код сировог типа T замењује са Serializable и преводилац убацује конверзије у Comparable где год је то неопходно. 31/35
32 Генерици и наслеђивање 32/35 Уопштено говорећи, не постоји веза између Pair<S> и Pair<T>, без обзира на то како су S и T повезани. У Јави је класа Manager подкласа клаее Employee само ако интерфејси поткласе укључују све интерфејсе надкласе. Међутим, направљени генерици обично имају различите интерфејсе па не може бити наслеђивања.
33 Генерици и наслеђивање (2) 33/35 У примеру који следи, преводилац спречава превођење кода са операцијама које нису безбедне за тип није могуће са листом ниски радити као са листом објеката, без обзира на то што је класа String изведена из класе Object. List<String> ls = new ArrayList<String>(); List<Object> lo = ls; lo.add(0, new Object()); // legalno?! ls.get(0); // Nije string?! Грешка при превођењу јер конверзија није безбедна за тип!
34 Закључак 34/35 Као закључак, потребно је водити рачуна о следећим чињеницама када се ради са Јава генерицима: 1. У раду Јава виртуелне машине не постоје генерици, већ само обичне класе и методи. 2. Сви типовни параматри бивају замењени са својим границама. 3. Преводилац генерише методе-мостове и на тај начин задржава полиморфно понашање. 4. Да би се обезбедила безбедност типова, преводилац тамо где је потребно убацује наредбе за експлицитну конверзију типова.
35 35/35 Захвалница Велики део материјала који је укључен у ову презентацију је преузет из презентације коју је раније (у време када је он држао курс ) направио проф. др Душан Тошић. Хвала проф. Тошићу што се сагласио са укључивањем тог материјала у садашњу презентацији, као и на помоћи коју ми је пружио током конципцирања и реализације курса. Надаље, један део материјала је преузет од колегинице Марије Милановић. Хвала Марији Милановић на помоћи у реализацији ове презентације.
3.Kontrlne (upravlja~ke) strukture u Javi
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
ВишеPowerPoint Presentation
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Сопствени пакети и унутрашње класе Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
Више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
Више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,
Више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
Више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
Више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
Више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
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
Више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
Више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
Више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
ВишеFunkcije predavač: Nadežda Jakšić
Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa
ВишеMicrosoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]
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
Више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,
Више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]
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
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 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
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Класе и објекти у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар
Више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
Више12 Stanje
Projektovanje softvera (1) Ime i klasifikacija: (engl. State) objektni uzorak ponašanja Namena: omogućava objektu da pouzdano menja svoje ponašanje kada se menja njegovo unutrašnje stanje izgleda kao da
ВишеRačunarski praktikum I - Vježbe 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
Више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
Више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)
Више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 - 07-DinamickeStrukturePodataka
Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и
ВишеZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1
ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1 do 5. Obezbediti ispis uspeha za unetu ocenu (1=nedovoljan,
ВишеProgramski 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
Више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
Више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 - 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
Више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
ВишеP9.1 Dodela resursa, Bojenje grafa
Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.
Више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
Више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
Више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
Више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
ВишеMicrosoft PowerPoint - 03-Slozenost [Compatibility Mode]
Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба
Више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
Више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*
ВишеPojačavači
Programiranje u fizici Prirodno-matematički fakultet u Nišu Departman za fiziku dr Dejan S. Aleksić Programiranje u fizici dr Dejan S. Aleksić, vanredni profesor Kabinet 307 (treći sprat), lab. za elektroniku
ВишеMicrosoft PowerPoint - 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 Ψ,
Више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,
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]
Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева
Више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
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
ВишеMicrosoft PowerPoint - Datoteke [Compatibility Mode]
Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
ВишеPASCAL UVOD 2 II razred gimnazije
PASCAL UVOD 2 II razred gimnazije Upis-ispis 1. Upis Read(a,b); --u jednom redu Readln(a,b); -- nakon upisa prelazi se u novi red 2. Ispis Write(a,b); -- u jednom redu Writeln(a,b); --nakon ispisa prelazi
Више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
Више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)
ВишеPowerPoint Presentation
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Колекције Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs
ВишеProgramski jezik JAVA PREDAVANJE
Programski jezik JAVA PREDAVANJE 8 2019 www.etf.ac.me Polja za potvrdu i Radio tasteri Polja za potvrdu i radio tasteri nijesu uzajamno isključivi, što znači da ako imate pet polja za potvrdu u jednom
Више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
Више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
Више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 - 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,
ВишеP1.2 Projektovanje asemblera
ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)
Више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
ВишеMicrosoft PowerPoint - JavaP7_2018
Programski jezik JAVA PREDAVANJE 7 2019 www.etf.ac.me Window Events Ako želimo učiniti nešto složenije od samog prekidanja programa kada korisnik zatvara prozor onda moramo reagovati na događaje koje prozor
Више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
ВишеПрограмирај!
Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком
ВишеModel podataka
Fakultet organizacionih nauka Uvod u informacione sisteme Doc. Dr Ognjen Pantelić Modeliranje podataka definisanje strategije snimanje postojećeg stanja projektovanje aplikativno modeliranje implementacija
Више1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме
1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме Програмирање добијања награда омогућује ученицима да
Више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
Више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
ВишеKDP
Региони Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион
Више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.
ВишеPodela ra~unarskih sredtava
Објектно орјентисано програмирање Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs 2/56 Карактеристике програмског језика Јава Владимир Филиповић Александар Картељ kartelj@matf.bg.ac.rs Настанак
Више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
Више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
Више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
Више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
ВишеPowerPoint Presentation
Prof. dr Pere Tumbas Prof. dr Predrag Matkovid Identifikacija i izbor projekata Održavanje sistema Inicijalizacija projekata i planiranje Implementacija sistema Dizajn sistema Analiza sistema Faze životnog
Више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
ВишеOsnovni programiranja I
Objektno orjentisano programiranje Uvod u objektno orjentisano programiranje (OOP) Koncepti OOP. Razlike C i C++. Softver Obični korisnik Porast procesorske moći računara i pojeftinjenje komponenti omogućili
Више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;
Више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
Више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.
ВишеMicrosoft PowerPoint - GR_MbIS_12_IDEF
Menadžment poslovnih informacionih sistema - 12 metode modeliranja funkcija pripremila Doc. dr Gordana Radić Integfated DEFinition Definicija: je metoda (jezik) modeliranja bazirana je na kombinaciji grafike
Више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
ВишеТЕОРИЈА УЗОРАКА 2
ТЕОРИЈА УЗОРАКА 2 12. 04. 13. ВЕЖБАЊА Написати функције за бирање елемената популације обима N у узорак обима n, код простог случајног узорка, користећи алгоритме: Draw by draw procedure for SRS/SRSWOR
ВишеKombinatorno testiranje
Kombinatorno testiranje Uvod Na ponašanje aplikacije utiče puno faktora, npr. ulazne vrednosti, konfiguracije okruženja. Tehnike kao što je podela na klase ekvivalencije ili analiza graničnih vrednosti
ВишеKATUŠIĆ ANTONIO.pdf
SVEUILIŠTE JOSIP JURAJ STROSSMAYER ELEKTROTEHNIKI FAKULTET OSIJEK Preddiplomski studij raunarstva PROGRAMSKI JEZIK RUBY ZAVRŠNI RAD Antonio Katuši OSIJEK, svibanj 2015. SVEUILIŠTE JOSIP JURAJ STROSSMAYER
Више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:
Више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.
ВишеProgramski jezik C
SPR, 2016 Rad sa datotekama Komunikacija sa OS Rad sa datotekama Vrste datoteka Otvaranje / zatvaranje datoteka Pristup datotekama za upis / čitanje Funkcije za rad sa datotekama Ulazno / izlazni tokovi
Више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
Више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
ВишеClassroom Expectations
АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних
Више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
Више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
Више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
Више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ž
Више