<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pop</id>
	<title>SI Wiki - Кориснички доприноси [sr]</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pop"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D0%B1%D0%BD%D0%BE:%D0%94%D0%BE%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8/Pop"/>
	<updated>2026-06-04T11:31:50Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2023&amp;diff=7950</id>
		<title>Програмски преводиоци 1/Јануар 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2023&amp;diff=7950"/>
		<updated>2025-08-20T17:25:50Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* Rešenje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
{{nerešeno}}&lt;br /&gt;
&#039;&#039;&#039;Januarski ispit 2023. godine&#039;&#039;&#039; održan je 19. januara. Postavka roka nije dostupna sa stranice predmeta.&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Dat je sledeći program:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int main() {&lt;br /&gt;
    int count;&lt;br /&gt;
    void procX() {&lt;br /&gt;
        void report() {&lt;br /&gt;
            writeln(&amp;quot;count = &amp;quot; + count);&lt;br /&gt;
        }&lt;br /&gt;
        void proxY() {&lt;br /&gt;
            int count;&lt;br /&gt;
            count = 200;&lt;br /&gt;
            report();&lt;br /&gt;
        }&lt;br /&gt;
        count = 100;&lt;br /&gt;
        report();&lt;br /&gt;
        procY();&lt;br /&gt;
    }&lt;br /&gt;
    count = 300;&lt;br /&gt;
    procX();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Ukoliko se koristi statičko razrešavanje dosega, šta će ispisati dati program?&lt;br /&gt;
# Ukoliko se koristi dinamičko razrešavanje dosega, šta će ispisati dati program?&lt;br /&gt;
# Ukoliko se za nelokalne promenljive koriste displeji, nacrtati poslednje stanje steka i displeja nakon što je &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt; funkcija pozvana poslednji put.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
a) Ispis: &amp;lt;br&amp;gt;&lt;br /&gt;
count = 100 &amp;lt;br&amp;gt;&lt;br /&gt;
count = 100 &amp;lt;br&amp;gt;&lt;br /&gt;
Objasnjenje: Statičko razrešavanje znači da veza između imena promenljive i deklaracije se pravi u vreme prevođenja (kompajliranja).&lt;br /&gt;
Dakle, kada se report kompajlira, kompajler već odluči: &amp;quot;ovo count u report se odnosi na count iz procX&amp;quot;, jer je to najbliži leksički obuhvatajući opseg.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
b) Ispis: &amp;lt;br&amp;gt;&lt;br /&gt;
count = 100 &amp;lt;br&amp;gt;&lt;br /&gt;
count = 200 &amp;lt;br&amp;gt;&lt;br /&gt;
Objasnjenje: Kod dinamičkog razrešavanja, nelokalna promenljiva se traži preko lanca aktivacionih zapisa na steku, počev od najbližeg pozivaoca.&lt;br /&gt;
c)&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Dat je isečak koda klase &amp;lt;code&amp;gt;Struct&amp;lt;/code&amp;gt;. Dopuniti metodu &amp;lt;code&amp;gt;AssignableTo&amp;lt;/code&amp;gt; kodom koji fali.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Struct {&lt;br /&gt;
    private int kind;&lt;br /&gt;
    private Struct elemType;&lt;br /&gt;
    public boolean Equals(Struct other) {&lt;br /&gt;
        return (this == other) || (kind == Kinds.Array &amp;amp;&amp;amp; other.kind == Kinds.Array &amp;amp;&amp;amp; elemType.Equals(other.ElemType));&lt;br /&gt;
    }&lt;br /&gt;
    public boolean IsRefType() {&lt;br /&gt;
        return kind == Kinds.Class || kind == Kinds.Array;&lt;br /&gt;
    }&lt;br /&gt;
    public boolean AssignableTo(Struct dest) {&lt;br /&gt;
        if (this.Equals(dest) || &lt;br /&gt;
                || (kind == Kinds.Array &amp;amp;&amp;amp; dest.kind == Kinds.Array &amp;amp;&amp;amp; dest.elemType == Tab.noType)) {&lt;br /&gt;
            return true;&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Preuzeto iz [http://ir4pp1.etf.rs/Predavanja/pp1_udzbenik.pdf udžbenika Programski prevodioci 1] (Dragan Bojić, Maja Vukasović) sa strane 209.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Struct {&lt;br /&gt;
    ...&lt;br /&gt;
    // checks, if this can be assigned to dest (explicit. assignment, parameters)&lt;br /&gt;
    public bool AssignableTo (Struct dest) {&lt;br /&gt;
        if ( this.Equals(dest) || this == Tab.nullType &amp;amp;&amp;amp; dest.IsRefType() ||&lt;br /&gt;
            kind == Kinds.Arr &amp;amp;&amp;amp; dest.kind == Kinds.Arr &amp;amp;&amp;amp; // for len()&lt;br /&gt;
            dest.elemType == Tab.noType) return true;&lt;br /&gt;
        for (Struct s = elemType; s != null; s = s.elemType) {&lt;br /&gt;
            if (s.equals(dest)) return true;&lt;br /&gt;
        }&lt;br /&gt;
        return false;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Za dati blok koda napisati međukod a zatim nacrtati graf toka kontrole sa međukodom u SSA formi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int res = 10;&lt;br /&gt;
for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
    int n = res;&lt;br /&gt;
    for (int j = i + 1; j &amp;lt; n; j++) {&lt;br /&gt;
        if ((i + j) % 2 == 0) {&lt;br /&gt;
           res++;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Za datu gramatiku konstruisati karakteristički LR(0) automat i kontrolnu tabelu, a zatim dodati LALR(1) predikcione skupove.&lt;br /&gt;
# &amp;amp;lt;S&amp;gt; → &amp;amp;lt;S&amp;gt; &amp;amp;lt;A&amp;gt;&lt;br /&gt;
# &amp;amp;lt;A&amp;gt; → &amp;amp;lt;A&amp;gt; a &amp;amp;lt;A&amp;gt; b&lt;br /&gt;
# &amp;amp;lt;A&amp;gt; → &amp;amp;lt;S&amp;gt; a&lt;br /&gt;
# &amp;amp;lt;A&amp;gt; → c&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
U datoj gramatici neterminalu &amp;lt;code&amp;gt;&amp;amp;lt;list&amp;gt;&amp;lt;/code&amp;gt; dodati sintetizovani atribut koji naizmenično sadrži cifre najvećih i najmanjih brojeva iz niza. Na primer, ukoliko je sekvenca koja se prepoznaje [1, 2, 3] [4, 5, 6] [7, 8, 9], taj atribut bi imao vrednost 349. Smatrati da terminal &amp;lt;code&amp;gt;INT&amp;lt;/code&amp;gt; ima sintetizovani simbol sa svojom vrednošću.&lt;br /&gt;
# &amp;amp;lt;list&amp;gt; → &amp;amp;lt;list&amp;gt; &amp;amp;lt;item&amp;gt;&lt;br /&gt;
# &amp;amp;lt;list&amp;gt; → &amp;amp;lt;item&amp;gt;&lt;br /&gt;
# &amp;amp;lt;item&amp;gt; → [ &amp;amp;lt;num_arr&amp;gt; ]&lt;br /&gt;
# &amp;amp;lt;num_arr&amp;gt; → &amp;amp;lt;num_arr&amp;gt;, INT&lt;br /&gt;
# &amp;amp;lt;num_arr&amp;gt; → INT&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Uvodimo sledeće sintetizovane atribute:&lt;br /&gt;
* INT&amp;lt;sub&amp;gt;digit&amp;lt;/sub&amp;gt; - digit predstavlja cifru opisanu terminalom INT&lt;br /&gt;
* &amp;lt;num_arr&amp;gt;&amp;lt;sub&amp;gt;minDigit, maxDigit&amp;lt;/sub&amp;gt; - minDigit predstavlja minimalnu cifru sadržanu u nizu cifara &amp;lt;num_arr&amp;gt;, a maxDigit maksimalnu cifru sadržanu u nizu cifara &amp;lt;num_arr&amp;gt;&lt;br /&gt;
* &amp;lt;item&amp;gt;&amp;lt;sub&amp;gt;minDigit, maxDigit&amp;lt;/sub&amp;gt; - minDigit predstavlja minimalnu cifru sadržanu u nizu cifara koji se nalazi u neterminalu &amp;lt;item&amp;gt;, a maxDigit maksimalnu cifru sadržanu u nizu cifara koji se nalazi u neterminalu &amp;lt;item&amp;gt;&lt;br /&gt;
* &amp;lt;list&amp;gt;&amp;lt;sub&amp;gt;value, takeMinDigit&amp;lt;/sub&amp;gt; - value predstavlja vrednost koju treba izračunati po postavci zadatka, a takeMinDigit da li u sledećem koraku treba uzeti minimalnu ili maksimalnu cifru (ovo posmatramo kao neki flag kome u svakom koraku invertujemo vrednost, a čija je početna vrednost 1 jer u prvom koraku uzimamo maksimalnu, a u drugom minimalnu cifru)&lt;br /&gt;
&lt;br /&gt;
Atributivno translaciona gramatika izgleda ovako (stvari koje su dodate u odnosu na gramatiku iz postavke su prikazane &#039;&#039;&#039;podebljanim slovima&#039;&#039;&#039;):&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;list&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;value, takeMinDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; -&amp;gt; &amp;lt;list&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;valueRHS, takeMinDigitRHS&#039;&#039;&#039;&amp;lt;/sub&amp;gt; &amp;lt;item&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigit, maxDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; &#039;&#039;&#039;{ value = valueRHS * 10 + (takeMinDigitRHS == 1) ? minDigit : maxDigit; takeMinDigit = 1 - takeMinDigitRHS; }&#039;&#039;&#039;&lt;br /&gt;
# &amp;lt;list&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;value, takeMinDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; -&amp;gt; &amp;lt;item&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigit, maxDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; &#039;&#039;&#039;{ value = maxDigit; takeMinDigit = 1; }&#039;&#039;&#039;&lt;br /&gt;
# &amp;lt;item&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigit, maxDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; -&amp;gt; [ &amp;lt;num_arr&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigitRHS, maxDigitRHS&#039;&#039;&#039;&amp;lt;/sub&amp;gt; ] &#039;&#039;&#039;{ minDigit = minDigitRHS; maxDigit = maxDigitRHS; }&#039;&#039;&#039;&lt;br /&gt;
# &amp;lt;num_arr&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigit, maxDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; -&amp;gt; &amp;lt;num_arr&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigitRHS, maxDigitRHS&#039;&#039;&#039;&amp;lt;/sub&amp;gt; , INT&amp;lt;sub&amp;gt;&#039;&#039;&#039;digit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; &#039;&#039;&#039;{ minDigit = min(minDigitRHS, digit); maxDigit = max(maxDigitRHS, digit); }&#039;&#039;&#039;&lt;br /&gt;
# &amp;lt;num_arr&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;&#039;minDigit, maxDigit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; -&amp;gt; INT&amp;lt;sub&amp;gt;&#039;&#039;&#039;digit&#039;&#039;&#039;&amp;lt;/sub&amp;gt; &#039;&#039;&#039;{ minDigit = digit; maxDigit = digit; }&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati kompletan prevod funkcija &amp;lt;code&amp;gt;f1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;f2&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; na Mikrojava bajtkod. Smatrati da prevod &amp;lt;code&amp;gt;f1&amp;lt;/code&amp;gt; kreće od adrese 0. Sekciju označenu sa &amp;lt;code&amp;gt;// ...&amp;lt;/code&amp;gt; nije potrebno prevoditi i smatrati da je njena dužina jedna instrukcija.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int b;&lt;br /&gt;
class A {&lt;br /&gt;
    int fun1(int p) {...}&lt;br /&gt;
}&lt;br /&gt;
class B {&lt;br /&gt;
    A[] arr;&lt;br /&gt;
}&lt;br /&gt;
B bObj;&lt;br /&gt;
int f1() {&lt;br /&gt;
    return 1;&lt;br /&gt;
}&lt;br /&gt;
int f2() {&lt;br /&gt;
    return 2;&lt;br /&gt;
}&lt;br /&gt;
void main() int x; {&lt;br /&gt;
    bObj = new B;&lt;br /&gt;
    // ...&lt;br /&gt;
    b = bObj.arr[1].fun1(3);&lt;br /&gt;
    if (b &amp;lt; x) {&lt;br /&gt;
        b = f1();&lt;br /&gt;
    }&lt;br /&gt;
    else b = f2();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;br /&gt;
00: enter 0 0&lt;br /&gt;
03: const_1&lt;br /&gt;
04: exit&lt;br /&gt;
05: return&lt;br /&gt;
06: enter 0 0&lt;br /&gt;
09: const_2&lt;br /&gt;
10: exit&lt;br /&gt;
11: return&lt;br /&gt;
12: enter 0 1&lt;br /&gt;
15: new 4&lt;br /&gt;
18: dup&lt;br /&gt;
19: const_2&lt;br /&gt;
20: putfield 0&lt;br /&gt;
23: putstatic 1&lt;br /&gt;
26: ...&lt;br /&gt;
27: getstatic 1&lt;br /&gt;
30: getfield 1&lt;br /&gt;
33: const_1&lt;br /&gt;
34: aload&lt;br /&gt;
35: const_3&lt;br /&gt;
36: getstatic 1&lt;br /&gt;
39: getfield 1&lt;br /&gt;
42: const_1&lt;br /&gt;
43: aload&lt;br /&gt;
44: getfield 0&lt;br /&gt;
47: invokevirtual &#039;f&#039; &#039;u&#039; &#039;n&#039; &#039;1&#039; -1&lt;br /&gt;
68: putstatic 0&lt;br /&gt;
71: getstatic 0&lt;br /&gt;
74: load_0&lt;br /&gt;
75: jge 12&lt;br /&gt;
78: call -78&lt;br /&gt;
81: putstatic 0&lt;br /&gt;
84: jmp 9&lt;br /&gt;
87: call -81&lt;br /&gt;
90: putstatic 0&lt;br /&gt;
93: exit&lt;br /&gt;
94: return&lt;br /&gt;
95: ...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Програмски преводиоци 1]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=7946</id>
		<title>Програмски преводиоци 1/Јануар 2022</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%88%D0%B0%D0%BD%D1%83%D0%B0%D1%80_2022&amp;diff=7946"/>
		<updated>2025-08-19T16:14:42Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* Rešenje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Ispit u januarskom roku 2022. godine&#039;&#039;&#039; održan je 28. januara. Postavka roka je dostupna [http://ir4pp1.etf.rs/Rokovi/2021-2022/pp1-januar-2021-22.pdf sa stranice predmeta.]&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
{{delimično rešeno}}&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Odrediti minimalni konačni deterministički automat koji prihvata one i samo one ulazne sekvence koje NE prihvata konačni automat sa slike ali kada se čitaju sa desna u levo. Na primer, dati automat ne prihvata sekvencu ab, to znači da traženi automat treba da prihvati sekvencu ba. Postupak izložiti po koracima, na generalan način koji bi se mogao primeniti i na svaki drugi automat.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stanje !! a !! b !! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
| → A    || B ||   || 0&lt;br /&gt;
|-&lt;br /&gt;
| B      || C || D || 0&lt;br /&gt;
|-&lt;br /&gt;
| C      ||   ||   || 1&lt;br /&gt;
|-&lt;br /&gt;
| D      ||   || F || 0&lt;br /&gt;
|-&lt;br /&gt;
| F      || F || F || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Prvi korak je da dodamo eksplictno stanje greške i da ga dodamo u prazna polja. &amp;lt;br&amp;gt;&lt;br /&gt;
Drugi korak je da izračunamo skup prethodnika za sva stanja (na grafu bi to bilo obrtanje strellica). &amp;lt;br&amp;gt;&lt;br /&gt;
Treći korak je konstruišemo DKA sa ovim novim funkcijama prelaza, gde će nam početno stanje biti stanja prihvatanja originalnog automata,&lt;br /&gt;
a stanje prihvatanja početno stanje originalnog automata.&lt;br /&gt;
&lt;br /&gt;
S0 = {B, F} &amp;lt;br&amp;gt;&lt;br /&gt;
δ(S0, a) = {B}∪{F} = S1 = {B,F} &amp;lt;br&amp;gt;&lt;br /&gt;
δ(S0, a) = ∅ ∪ {D,F} = S2={D,F} &amp;lt;br&amp;gt;&lt;br /&gt;
Analogno ćemo ovo uraditi za svako stanje. &amp;lt;br&amp;gt;&lt;br /&gt;
Svako stanje koje u sebi sadrži u sebi početno stanje originalnog automata je stanje prihvatanja.&lt;br /&gt;
I na kraju da bi dobili odgovarajući automat radimo komplement tj. obrnemo stanja prihvatanja.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Traženi automat:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stanje !! a !! b !! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
| → S0={C,F}    || S1 || S2 || 1&lt;br /&gt;
|-&lt;br /&gt;
| S1={B,F}      || S5 || S2 || 1&lt;br /&gt;
|-&lt;br /&gt;
| S2={D,F}      || S3 || S4 || 1&lt;br /&gt;
|-&lt;br /&gt;
| S3={F}      || S3 || S2 || 1&lt;br /&gt;
|-&lt;br /&gt;
| S4={B,D,F}      || S5 || S4 || 1&lt;br /&gt;
|-&lt;br /&gt;
| S5={A,F}      || S3 || S2 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Za smene 1 i 2 date gramatike navesti koje atribute treba računati i od kojih drugih atributa oni mogu da zavise da bi cela gramatika bila L-atributivna. Pravila navoditi u obliku aa = f(bb, cc, dd,..) gde je aa atribut koji mora da se računa, dok su bb, cc, dd, itd svi drugi atributi od kojih posmatrani može da zavisi. Neterminal &amp;amp;lt;S&amp;gt; ima sintetizovan atribut.&lt;br /&gt;
# Navesti pseudokod za proceduru A u parseru na bazi rekurzivnog spusta. Ostale delove parsera ne navoditi. Preimenovati promenljive da se minimizuje broj pravila kopiranja vrednosti atributa.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
# &amp;amp;lt;S&amp;gt;&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; → a&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;z,v,w&amp;lt;/sub&amp;gt; &amp;amp;lt;S&amp;gt;&amp;lt;sub&amp;gt;p&amp;lt;/sub&amp;gt; {b&amp;lt;sub&amp;gt;q&amp;lt;/sub&amp;gt;}&lt;br /&gt;
# &amp;amp;lt;S&amp;gt;&amp;lt;sub&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; → d&amp;lt;sub&amp;gt;y&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; {c&amp;lt;sub&amp;gt;z&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt;} &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;v&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, w&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, p&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt;&lt;br /&gt;
# &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;x,y,z&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; → a&amp;lt;sub&amp;gt;q&amp;lt;/sub&amp;gt; {c&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt;} &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;,z,u&amp;lt;/sub&amp;gt; &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;u,t,y&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;v \larr x - q&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;x_1 \larr x&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;y \larr y_1&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;z_1 \larr z&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;t,s,s&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt; → d&amp;lt;sub&amp;gt;q&amp;lt;/sub&amp;gt; {b&amp;lt;sub&amp;gt;t&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt;} a&amp;lt;sub&amp;gt;s&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;lt;/sub&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;t_1 \larr t&amp;lt;/math&amp;gt;&lt;br /&gt;
## &amp;lt;math&amp;gt;(s,s_1) \larr s_2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Iz date gramatike možemo zaključiti sledeće o tipovima atributa:&lt;br /&gt;
* Akcije &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; i &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; sadrže nasleđene atribute.&lt;br /&gt;
* Neterminal &amp;lt;code&amp;gt;&amp;amp;lt;A&amp;gt;&amp;lt;/code&amp;gt; sadrži tri atributa, od kojih je prvi nasleđen a druga dva sintetizovana.&lt;br /&gt;
Na osnovu toga, u prvoj smeni vidimo da atributi mogu imati sledeće vrednosti:&lt;br /&gt;
* &amp;lt;math&amp;gt;x = f(y, z, v, w, p, q)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;z = f(y)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;q = f(y, z, v, w, p)&amp;lt;/math&amp;gt;&lt;br /&gt;
a u drugoj smeni sledeće:&lt;br /&gt;
* &amp;lt;math&amp;gt;x1 = f(y_1, z_1, v_1, w_1, p_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;z1 = f(y_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;v1 = f(y_1, z_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
Kod parsera sa adekvatno preimenovanim atributima dat je ispod:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void A(int x, int&amp;amp; y, int&amp;amp; z) {&lt;br /&gt;
    switch (input) {&lt;br /&gt;
        case &#039;a&#039;:&lt;br /&gt;
            input = advance();&lt;br /&gt;
            int q = getInputValue();&lt;br /&gt;
            out(&#039;c&#039;, x - q);&lt;br /&gt;
            int u;&lt;br /&gt;
            A(x, z, u);&lt;br /&gt;
            int t;&lt;br /&gt;
            A(u, t, y);&lt;br /&gt;
            break;&lt;br /&gt;
        case &#039;d&#039;:&lt;br /&gt;
            input = advance();&lt;br /&gt;
            out(&#039;b&#039;, x);&lt;br /&gt;
            input = advance();&lt;br /&gt;
            y = z = getInputValue();&lt;br /&gt;
            break;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Zadata je gramatika&lt;br /&gt;
# &amp;amp;lt;S&amp;gt; → &amp;amp;lt;S&amp;gt; b &amp;amp;lt;A&amp;gt;&lt;br /&gt;
# &amp;amp;lt;S&amp;gt; → &amp;amp;lt;A&amp;gt; a &amp;amp;lt;B&amp;gt; b&lt;br /&gt;
# &amp;amp;lt;A&amp;gt; → &amp;amp;lt;B&amp;gt; c &amp;amp;lt;B&amp;gt; d&lt;br /&gt;
# &amp;amp;lt;A&amp;gt; → ε&lt;br /&gt;
# &amp;amp;lt;B&amp;gt; → ε&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Konstruisati karaketristični&amp;lt;sup&amp;gt;[sic]&amp;lt;/sup&amp;gt; automat LR(0) parsera kao i odgovarajuću kontrolnu tabelu. Da li ima konflikata?&lt;br /&gt;
# Konstruisati kontrolnu tabelu SLR(1) parsera. Da li ima konflikata?&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Датотека:PPR januar 2022 zadatak 3 automat.svg|thumb|Karakteristični LR(0) automat u trećem zadatku.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Kontrolna tabela LR(0) parsera&lt;br /&gt;
! Stanje              !! Akcija&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;S&#039;&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; || &#039;&#039;&#039;R/R konflikt&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;  || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;31&amp;lt;/sub&amp;gt; || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;S&amp;gt;&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;  || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| c&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;       || REDUCE(5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;32&amp;lt;/sub&amp;gt; || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| d&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;       || REDUCE(3)&lt;br /&gt;
|-&lt;br /&gt;
| a&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;       || REDUCE(5)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;  || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| b&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;       || REDUCE(2)&lt;br /&gt;
|-&lt;br /&gt;
| ─┤&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;      || ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
| b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;       || &#039;&#039;&#039;R/R konflikt&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;  || REDUCE(1)&lt;br /&gt;
|}&lt;br /&gt;
FOLLOW skupovi su sledeći:&lt;br /&gt;
* FOLLOW(&amp;amp;lt;S&amp;gt;) = {─┤, b}&lt;br /&gt;
* FOLLOW(&amp;amp;lt;B&amp;gt;) = {b, c, d}&lt;br /&gt;
* FOLLOW(&amp;amp;lt;A&amp;gt;) = {a} ∪ FOLLOW(&amp;amp;lt;S&amp;gt;) = {─┤, a, b}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Kontrolna tabela SLR(0) parsera&lt;br /&gt;
! Stanje              !! a         !! b                  !! c         !! d         !! ─┤&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;S&#039;&amp;gt;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; || REDUCE(4) || &#039;&#039;&#039;R/R konflikt&#039;&#039;&#039; || REDUCE(5) || REDUCE(5) || REDUCE(4)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;  || SHIFT     ||                    ||           ||           ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;31&amp;lt;/sub&amp;gt; ||           ||                    || SHIFT     ||           ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;S&amp;gt;&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;  ||           || SHIFT              ||           ||           || SHIFT&lt;br /&gt;
|-&lt;br /&gt;
| c&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;       ||           || REDUCE(5)          || REDUCE(5) || REDUCE(5) ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;32&amp;lt;/sub&amp;gt; ||           ||                    ||           || SHIFT     ||&lt;br /&gt;
|-&lt;br /&gt;
| d&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;       || REDUCE(3) || REDUCE(3)          ||           ||           || REDUCE(3)&lt;br /&gt;
|-&lt;br /&gt;
| a&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;       ||           || REDUCE(5)          || REDUCE(5) || REDUCE(5) ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;B&amp;gt;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;  ||           || SHIFT              ||           ||           ||&lt;br /&gt;
|-&lt;br /&gt;
| b&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;       ||           || REDUCE(2)          ||           ||           || REDUCE(2)&lt;br /&gt;
|-&lt;br /&gt;
| ─┤&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;      ||           ||                    ||           ||           || ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
| b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;       || REDUCE(4) || &#039;&#039;&#039;R/R konflikt&#039;&#039;&#039; || REDUCE(5) || REDUCE(5) || REDUCE(4)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;lt;A&amp;gt;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;  ||           || REDUCE(1)          ||           ||           || REDUCE(1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Dat je listing programa Januar2022, napisan na programskom jeziku Mikrojava. Sve metode unutrašnjih klasa su virtuelne. Globalne metode se pozivaju statički. Napisati kompletan Mikrojava bajtkod prevoda funkcije &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt; za dati program&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
program Januar2022&lt;br /&gt;
	const int K = 2;&lt;br /&gt;
	int add;&lt;br /&gt;
	class A {&lt;br /&gt;
		int fld;&lt;br /&gt;
	{&lt;br /&gt;
		int m(int a)&lt;br /&gt;
		{ return fld * 2; }&lt;br /&gt;
		void met()&lt;br /&gt;
		{ fld = fld + 3; }&lt;br /&gt;
	} }&lt;br /&gt;
	class B extends A {&lt;br /&gt;
	{&lt;br /&gt;
		int m(int b)&lt;br /&gt;
		{ /*T1*/&lt;br /&gt;
			return fld + b;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
	A arr[];&lt;br /&gt;
{&lt;br /&gt;
	int f(int index){&lt;br /&gt;
		add = arr[index].m(K);&lt;br /&gt;
		arr[index].met();&lt;br /&gt;
		return add + K;&lt;br /&gt;
	}&lt;br /&gt;
	void main()&lt;br /&gt;
		B b;&lt;br /&gt;
		int ret;&lt;br /&gt;
	{&lt;br /&gt;
		/*T2*/&lt;br /&gt;
		arr = new A[2];&lt;br /&gt;
		arr[0] = new B;&lt;br /&gt;
		arr[1] = new A;&lt;br /&gt;
		ret = f(0) + f(1);&lt;br /&gt;
		print(arr[0].m(ret));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
enter 1, 1&lt;br /&gt;
getstatic 1&lt;br /&gt;
load_0&lt;br /&gt;
aload&lt;br /&gt;
const_2&lt;br /&gt;
getstatic 1&lt;br /&gt;
load_0&lt;br /&gt;
aload&lt;br /&gt;
getfield 0&lt;br /&gt;
invokevirtual &#039;m&#039; -1&lt;br /&gt;
putstatic 0&lt;br /&gt;
getstatic 1&lt;br /&gt;
load_0&lt;br /&gt;
aload&lt;br /&gt;
dup&lt;br /&gt;
getfield 0&lt;br /&gt;
invokevirtual &#039;m&#039; &#039;e&#039; &#039;t&#039; -1&lt;br /&gt;
getstatic 0&lt;br /&gt;
const_2&lt;br /&gt;
add&lt;br /&gt;
exit&lt;br /&gt;
return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Prikazati izgled tabele simbola u trenucima T1 i T2 na osnovu izvornog koda iz zadatka 4 prema formatu čvorova tabele simbola iz priloga. Universe opseg ne treba crtati. Za T2 dovoljno je naznačiti izmene u odnosu na prethodno stanje tabele. &lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;500&amp;quot; heights=&amp;quot;500&amp;quot; class=&amp;quot;transparent-svg&amp;quot;&amp;gt;&lt;br /&gt;
  PPR januar 2022 zadatak 5 T1.svg | Tabela simbola u stanju T1.&lt;br /&gt;
  PPR januar 2022 zadatak 5 T2.svg | Tabela simbola u stanju T2.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Za dati programski fragment napisati odgovarajući međukod u SSA formi i nacrtati graf toka kontrole na nivou osnovnih blokova.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
a = 1;&lt;br /&gt;
b = 2;&lt;br /&gt;
c = 3;&lt;br /&gt;
for (a = 4; b &amp;lt; c || a &amp;lt; 10; a++) {&lt;br /&gt;
    if (a &amp;gt; b + c) {&lt;br /&gt;
        c++;&lt;br /&gt;
        break;&lt;br /&gt;
    } else if (a &amp;gt; b * c) {&lt;br /&gt;
        b--;&lt;br /&gt;
        continue;&lt;br /&gt;
    }&lt;br /&gt;
    else return a;&lt;br /&gt;
}&lt;br /&gt;
a = b * c;&lt;br /&gt;
return a;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Датотека:PPR januar 2022 zadatak 6 graf.svg|thumb|Karakteristični LR(0) automat u trećem zadatku.]]&lt;br /&gt;
# a1 := 1&lt;br /&gt;
# b1 := 2&lt;br /&gt;
# c1 := 3&lt;br /&gt;
# a2 := 4&lt;br /&gt;
# t1 := Ф(b1, b2)&lt;br /&gt;
# if t1 &amp;lt; c1 goto 8&lt;br /&gt;
# if a2 &amp;gt;= 10 goto 17&lt;br /&gt;
# t2 := t1 + c1&lt;br /&gt;
# if a &amp;lt;= t2 goto 12&lt;br /&gt;
# c2 := c1 + 1&lt;br /&gt;
# goto 17&lt;br /&gt;
# t3 := t1 * c1&lt;br /&gt;
# if a &amp;lt;= t3 goto 16&lt;br /&gt;
# b2 := t1 - 1&lt;br /&gt;
# goto 5&lt;br /&gt;
# return a2&lt;br /&gt;
# t4 := Ф(b1, b2)&lt;br /&gt;
# t5 := Ф(c1, c2)&lt;br /&gt;
# t6 := t1 * t2&lt;br /&gt;
# a3 := t6&lt;br /&gt;
# return a3&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Програмски преводиоци 1]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%9A1_2015&amp;diff=7939</id>
		<title>Програмски преводиоци 1/К1 2015</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%9A1_2015&amp;diff=7939"/>
		<updated>2025-08-13T14:05:57Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* Rešenje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Prvi kolokvijum 2015. godine&#039;&#039;&#039; održan je 25. oktobra i trajao je 90 minuta. Postavka je dostupna [http://ir4pp1.etf.rs/Rokovi/2015-2016/si4pp1-1516-k1k2.zip sa stranice predmeta] (arhiva).&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Opisati korake generalnog postupka kojim se za dva proizvoljna deterministička automata sa istim ulaznim azbukama konstruiše automat koji prihvata sve sekvence koje prihvata i prvi automat i dodatno sve sekvence koje NE prihvata drugi automat (i nijednu više).&lt;br /&gt;
# Konstruisati minimalni deterministički konačni automat prema postupku opisanom pod a) za sledeća dva automata. Prikazati svaki korak postupka.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Prvi automat&lt;br /&gt;
!&lt;br /&gt;
! x&lt;br /&gt;
! y&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Drugi automat&lt;br /&gt;
!&lt;br /&gt;
! x&lt;br /&gt;
! y&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → A&lt;br /&gt;
| B&lt;br /&gt;
| A&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| A&lt;br /&gt;
| B&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
Generalni postupak konstruisanja takvog automata jeste da se dva deterministička automata samo spoje, nova početna stanja postaju početna stanja oba automata a na drugom automatu se obrne šta su stanja prihvatanja a šta neprihvatanja kako bi se prihvatale sekvence koje drugi automat ne prihvata. Kako se ovim postupkom dobija nedeterministički konačni automat, potrebno je pretvoriti nedeterministički u deterministički konačni automat. Početno stanje se sastoji od početnih stanja oba automata, a stanja prihvatanja su sva stanja koje sadrže neko od stanja prihvatanja prethodnih automata.&lt;br /&gt;
&lt;br /&gt;
Ispod je prikazan postupak konverzije gorenavedenih automata.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Spojeni automati u jedan nedeterministički konačni automat&lt;br /&gt;
!&lt;br /&gt;
! x&lt;br /&gt;
! y&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → 0&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 2&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! → A&lt;br /&gt;
| B&lt;br /&gt;
| A&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| A&lt;br /&gt;
| B&lt;br /&gt;
| 0&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Konverzija nedeterminističkog u deterministički konačni automat&lt;br /&gt;
!&lt;br /&gt;
! x&lt;br /&gt;
! y&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! 0, A&lt;br /&gt;
| 1, B&lt;br /&gt;
| 0, A&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 1, B&lt;br /&gt;
| 2, A&lt;br /&gt;
| 1, B&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 2, A&lt;br /&gt;
| 2, B&lt;br /&gt;
| 0, A&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 2, B&lt;br /&gt;
| 2, A&lt;br /&gt;
| 0, B&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 0, B&lt;br /&gt;
| 1, A&lt;br /&gt;
| 0, B&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 1, A&lt;br /&gt;
| 2, B&lt;br /&gt;
| 1, A&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Konačni deterministički automat&lt;br /&gt;
!&lt;br /&gt;
! x&lt;br /&gt;
! y&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| B&lt;br /&gt;
| A&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| C&lt;br /&gt;
| B&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! C&lt;br /&gt;
| D&lt;br /&gt;
| A&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
| C&lt;br /&gt;
| E&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! E&lt;br /&gt;
| F&lt;br /&gt;
| E&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! F&lt;br /&gt;
| D&lt;br /&gt;
| F&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Konstruisati regularnu gramatiku koja generiše tačno iste sekvence kao regularni izraz a* | b*.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
* &amp;amp;lt;S&amp;gt; → a &amp;amp;lt;A&amp;gt;&lt;br /&gt;
* &amp;amp;lt;S&amp;gt; → b &amp;amp;lt;B&amp;gt;&lt;br /&gt;
* &amp;amp;lt;S&amp;gt; → ε&lt;br /&gt;
* &amp;amp;lt;A&amp;gt; → a &amp;amp;lt;A&amp;gt;&lt;br /&gt;
* &amp;amp;lt;A&amp;gt; → ε&lt;br /&gt;
* &amp;amp;lt;B&amp;gt; → b &amp;amp;lt;B&amp;gt;&lt;br /&gt;
* &amp;amp;lt;B&amp;gt; → ε&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Napisati beskontekstnu gramatiku koja opisuje sve sekvence koje pripadaju sledećem jeziku: &amp;lt;math&amp;gt;L(G) = \left\{ a^n c^m \left(b c^k\right)^n | m, k \geq 0, n &amp;gt; 0 \right\}&amp;lt;/math&amp;gt;, gde &amp;lt;math&amp;gt;\Sigma = \{a, b, c\}&amp;lt;/math&amp;gt; predstavlja skup simbola alfabeta.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
* &amp;amp;lt;S&amp;gt; → a &amp;amp;lt;S&amp;gt; &amp;amp;lt;X&amp;gt;&lt;br /&gt;
* &amp;amp;lt;S&amp;gt; → a &amp;amp;lt;M&amp;gt; &amp;amp;lt;X&amp;gt;&lt;br /&gt;
* &amp;amp;lt;M&amp;gt; → c &amp;amp;lt;M&amp;gt;&lt;br /&gt;
* &amp;amp;lt;M&amp;gt; → ε&lt;br /&gt;
* &amp;amp;lt;X&amp;gt; → b &amp;amp;lt;C&amp;gt;&lt;br /&gt;
* &amp;amp;lt;C&amp;gt; → c &amp;amp;lt;C&amp;gt;&lt;br /&gt;
* &amp;amp;lt;C&amp;gt; → ε&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Na osnovu regularnog izraza &amp;lt;math&amp;gt;(a^* | b^*) c^+&amp;lt;/math&amp;gt;, konstruisati minimalni deterministički automat metodom pozicija.&lt;br /&gt;
# Nacrtati graf NKA dobijenog transformacijom regularnog izraza &amp;lt;math&amp;gt;(a^* | b^*)^+&amp;lt;/math&amp;gt; primenom Tompsonovog algoritma. Nije potrebno konstruisati minDKA.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
&amp;lt;gallery class=&amp;quot;transparent-svg&amp;quot; widths=&amp;quot;500&amp;quot; heights=&amp;quot;500&amp;quot;&amp;gt;&lt;br /&gt;
  PPR K1 2015 zadatak 4 a.svg | Sintaksno stablo u stavci pod a.&lt;br /&gt;
  PPR K1 2015 zadatak 4 b.svg | Graf nedeterminističkog konačnog automata u stavci pod b.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tabela sledećih pozicija u stavci pod a&lt;br /&gt;
! Pozicija&lt;br /&gt;
! Sledeća pozicija&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 1, 3&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 2, 3&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 3, 4&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Konverzija nedeterminističkog konačnog automata u deterministički u stavci pod a&lt;br /&gt;
!&lt;br /&gt;
! a&lt;br /&gt;
! b&lt;br /&gt;
! c&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! 1, 2, 3&lt;br /&gt;
| 1, 3&lt;br /&gt;
| 2, 3&lt;br /&gt;
| 3, 4&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 1, 3&lt;br /&gt;
| 1, 3&lt;br /&gt;
|&lt;br /&gt;
| 3, 4&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 2, 3&lt;br /&gt;
|&lt;br /&gt;
| 2, 3&lt;br /&gt;
| 3, 4&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 3, 4&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 3, 4&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Програмски преводиоци 1]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%92%D0%B5%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D0%BD%D0%BE%D1%9B%D0%B0_%D0%B8_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0/%D0%9A2_2023&amp;diff=6392</id>
		<title>Вероватноћа и статистика/К2 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%92%D0%B5%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D0%BD%D0%BE%D1%9B%D0%B0_%D0%B8_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0/%D0%9A2_2023&amp;diff=6392"/>
		<updated>2023-07-03T17:28:30Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* Решење */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Други колоквијум 2023. године&#039;&#039;&#039; одржан је 3. маја и трајао је сат времена. Били су дозвољени калкулатори и била је дата табела са вредностима &amp;lt;math&amp;gt;\Phi(x)&amp;lt;/math&amp;gt;. Поставка овог рока није јавно доступна.&lt;br /&gt;
&lt;br /&gt;
== 1. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Случајна променљива &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; има расподелу &amp;lt;math&amp;gt;Unif(2, 4)&amp;lt;/math&amp;gt;. Одредити коју расподелу има случајна променљива &amp;lt;math&amp;gt;Y = -2X + 5&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
* &amp;lt;math&amp;gt;F_Y(y) = P(Y \leq y) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; P(-2X + 5 \leq y) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; P(-2X \leq y - 5) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; P\left(X \geq \frac{5 - y}{2}\right) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; 1 - P\left(X \leq \frac{5 - y}{2}\right) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; 1 - F_X\left(\frac{5 - y}{2}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;F_X(x) = \begin{cases}&lt;br /&gt;
    0,                  &amp;amp; x &amp;lt; 2 \\&lt;br /&gt;
    \frac{x - 2}{2},    &amp;amp; x \in [2, 4] \\&lt;br /&gt;
    1,                  &amp;amp; x &amp;gt; 4&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Нове границе за униформну расподелу:&lt;br /&gt;
** &amp;lt;math&amp;gt;\frac{5 - y}{2} = 2 \implies y = 1&amp;lt;/math&amp;gt;&lt;br /&gt;
** &amp;lt;math&amp;gt;\frac{5 - y}{2} = 4 \implies y = -3&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;F_X\left(\frac{5 - y}{2}\right) = \begin{cases}&lt;br /&gt;
    1,                                              &amp;amp; y &amp;lt; -3 \\&lt;br /&gt;
    \frac{\frac{5 - y}{2} - 2}{2} = \frac{1 - y}{4} &amp;amp; y \in [-3, 1] \\&lt;br /&gt;
    0,                                              &amp;amp; y &amp;gt; 1&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;F_Y(y) = \begin{cases}&lt;br /&gt;
    0,                  &amp;amp; y &amp;lt; -3 \\&lt;br /&gt;
    \frac{y + 3}{4},    &amp;amp; y \in [-3, 1] \\&lt;br /&gt;
    1,                  &amp;amp; y &amp;gt; 1&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
** Одавде видимо да је расподела &amp;lt;math&amp;gt;Unif(-3, 1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 2. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Заједничка функција расподеле случајног вектора &amp;lt;math&amp;gt;(X, Y)&amp;lt;/math&amp;gt; је &amp;lt;math&amp;gt;f(x, y) = \begin{cases}&lt;br /&gt;
    24xy,   &amp;amp; x &amp;gt; 0, y &amp;gt; 0, x + y &amp;lt; 1 \\&lt;br /&gt;
    0,      &amp;amp; \text{inače}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;. Одредити маргиналне законе расподеле случајних променљивих &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Y&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
&amp;lt;math&amp;gt;f_X(x) = \int_{-\infty}^x f(x, y) dy = \begin{cases}&lt;br /&gt;
    0, &amp;amp; x \notin (0, 1) \\&lt;br /&gt;
    24x \int_0^{1-x} y dy = 24x \frac{y^2}{2}|_0^{1-x}, &amp;amp; x \in (0, 1)&lt;br /&gt;
\end{cases} =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;\begin{cases}&lt;br /&gt;
    0,          &amp;amp; x \notin (0, 1) \\&lt;br /&gt;
    12x(1-x)^2, &amp;amp; x \in (0, 1)&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Како је једначина симетрична, аналогно важи и за &amp;lt;math&amp;gt;f_Y(y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 3. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
За случајну променљиву &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; је познато &amp;lt;math&amp;gt;EX = 100, VarX = 15&amp;lt;/math&amp;gt;. Одредити:&lt;br /&gt;
# &amp;lt;math&amp;gt;E(X^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;E(2X + 6)&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;Var(-3X + 5)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
# &amp;lt;math&amp;gt;E(X^2) = VarX + E(X)^2 = 10015&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;E(2X + 6) = 2EX + 6 = 206&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;Var(-3X + 5) = Var(-3X) = (-3)^2 VarX = 135&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Карактеристична функција случајне променљиве гласи &amp;lt;math&amp;gt;\varphi(t) = \frac{1}{3} cos(t) + \frac{1}{6} cos(2t) + \frac{1}{2} cos(3t)&amp;lt;/math&amp;gt;. Одредити закон расподеле и очекивање ове случајне променљиве.&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
* &amp;lt;math&amp;gt;cos(t) = \frac{e^{it} + e^{-it} }{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\varphi(t) = \frac{1}{6} e^{it} + \frac{1}{6} e^{-it} + \frac{1}{12} e^{2it} + \frac{1}{12} e^{-2it} + \frac{1}{4} e^{3it} + \frac{1}{4} e^{-3it}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;X: \begin{pmatrix}&lt;br /&gt;
    -3          &amp;amp; -2            &amp;amp; -1            &amp;amp; 1             &amp;amp; 2             &amp;amp; 3           \\&lt;br /&gt;
    \frac{1}{4} &amp;amp; \frac{1}{12}  &amp;amp; \frac{1}{6}   &amp;amp; \frac{1}{6}   &amp;amp; \frac{1}{12}  &amp;amp; \frac{1}{4}&lt;br /&gt;
\end{pmatrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
* Интуитивно, очекивање овакве случајне променљиве је 0.&lt;br /&gt;
&lt;br /&gt;
== 5. задатак ==&lt;br /&gt;
=== Поставка ===&lt;br /&gt;
Базен са водом се празни сваког сата. Количина воде (у m&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;) која истекне током једног сата има расподелу &amp;lt;math&amp;gt;Exp\left(\frac{1}{20}\right)&amp;lt;/math&amp;gt;. Ако је базен имао 1000m&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; воде, колика је вероватноћа да за 36 сати остане мање од 610m&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; у базену?&lt;br /&gt;
&lt;br /&gt;
=== Решење ===&lt;br /&gt;
* Означимо са &amp;lt;math&amp;gt;X_1&amp;lt;/math&amp;gt; случајну променљиву која означава колико воде је истекло првог сата, &amp;lt;math&amp;gt;X_2&amp;lt;/math&amp;gt; колико је истекло другог сата, и тако до &amp;lt;math&amp;gt;X_{36}&amp;lt;/math&amp;gt;.&lt;br /&gt;
* &amp;lt;math&amp;gt;X = X_1 + X_2 + ... + X_{36}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;EX_1 = \frac{1}{\lambda} = 20&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;VarX_1 = \frac{1}{\lambda^2} = 400&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;EX = 36 \cdot EX_1 = 720&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;VarX = nVarX_1 = 36 \cdot 400&amp;lt;/math&amp;gt;&lt;br /&gt;
* Централна гранична теорема: &amp;lt;math&amp;gt;\frac{X - EX}{\sqrt{VarX} } \sim \mathcal{N}(0, 1)&amp;lt;/math&amp;gt; (важи јер је &amp;lt;math&amp;gt;n = 36 \geq 30&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;P(X \geq 1000 - 610) = P(X \geq 390) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; 1 - P(X \leq 390) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; 1 - P\left(\frac{X - 720}{120} \leq \frac{390 - 720}{120}\right) =&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt; 1 - \Phi(-2.75) = \Phi(2.75) = 0.99702&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Вероватноћа и статистика]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6387</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6387"/>
		<updated>2023-07-03T15:48:51Z</updated>

		<summary type="html">&lt;p&gt;Pop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Kojom komandom se sledeći programski kod čiji je prevedeni oblik - bajtkod - dat u fajlu &amp;quot;Pozdrav.class&amp;quot; može izvršiti?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;javac Pozdrav.class&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;java Pozdrav.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;java Pozdrav&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;javac Pozdrav.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4231&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta sme da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku &#039;&#039;Java&#039;&#039; uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package prvi;&lt;br /&gt;
public class A {&lt;br /&gt;
    private int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    protected int c;&lt;br /&gt;
    public int d;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package drugi;&lt;br /&gt;
public class B {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        A obj = new A();&lt;br /&gt;
        ####&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.b = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.c = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.d = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A.d = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programki jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Nad metodima označenim modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039; primenjuje se statičko vezivanje.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Modifikator &#039;&#039;&#039;final&#039;&#039;&#039; je deo potpisa metoda.&lt;br /&gt;
# Nadjačanje (polimorfna redefinicija) metoda natklase u potklasi ne može da bude označena modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod označen modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039; sprečava izvedene klase da ga redefinišu.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Statički metod može da bude označen modifikatorm &#039;&#039;&#039;final&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa nasleđuje statička konačna polja implementiranog interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa nasleđuje podrazumevane metode implementiranog interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pozvati statički metod &#039;&#039;&#039;m()&#039;&#039;&#039; interfejsa &#039;&#039;&#039;I&#039;&#039;&#039; iz nekog metoda klase &#039;&#039;&#039;K&#039;&#039;&#039; koja implementira dati interfejs &#039;&#039;&#039;I&#039;&#039;&#039; na način &#039;&#039;&#039;K.m()&#039;&#039;&#039;.&lt;br /&gt;
# Podrazumevanom metodu &#039;&#039;&#039;m()&#039;&#039;&#039; implementiranog interfejsa &#039;&#039;&#039;I&#039;&#039;&#039;, klasa može da pristupi iz statičkog metoda direktno i koristeći notaciju &#039;&#039;&#039;I.super.m()&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa mora da implementira apstraktne metode implementiranog interfejsa ili da bude proglašena apstraktnom.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Svi tipovi izuzetaka su direktno ili indirektno izvedeni iz klase &#039;&#039;&#039;Throwable&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Preporuka je da se korisnički definisani tipovi izuzetaka izvode iz klase &#039;&#039;&#039;Exception&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Preporuka je da se korisnički definisani tipovi proverenih izuzetaka izvode iz klase &#039;&#039;&#039;RuntimeException&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Korisnički definisan tip izuzetaka direktno izveden iz klase &#039;&#039;&#039;Exception&#039;&#039;&#039; predstavlja provereni izuzetak.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;Error&#039;&#039;&#039; predstavlja provereni izuzetak.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Spojiti navedene opise metoda sa njihovim odgovarajućim imenima na programskom jeziku &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;isInterrupted(), interrupted(), interrupt(), Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# Nestatički metod koji proverava status prekida niti, ali ga ne resetuje nakon provere.&amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;isInterrupted()&amp;lt;/span&amp;gt;&lt;br /&gt;
# Statički metod koje proverava status prekida niti nakon čega se resetuje status prekida.&amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;interrupted()&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nestatički metod za postavljanje statusa prekida niti.&amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;interrupt()&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za programiranje grafičkog korisničkog interfejsa pomoću AWT paketa?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Izvor događaja je potrebno registrovati kod odgovarajućeg osluškivača (eng. &#039;&#039;listener&#039;&#039;) događaja.&lt;br /&gt;
# Tela rukovalaca (eng. &#039;&#039;handler&#039;&#039;) adaptera je moguće napisati kao lambda izraze.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa &#039;&#039;&#039;AWTEvent&#039;&#039;&#039; je direktno izvedena potklasa klase &#039;&#039;&#039;EventObject&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa &#039;&#039;&#039;AWTEvent&#039;&#039;&#039; je natklasa klasa koje se nalaze u paketu &#039;&#039;&#039;java.awt.event&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Objekat klase &#039;&#039;&#039;AWTEvent&#039;&#039;&#039; čuva infomaciju o vrsti događaja, koju je moguće dohvatiti preko odgovarajućeg metoda.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova (eng. &#039;&#039;assembly&#039;&#039;) navesti tip (ekstenziju) fajla.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.exe, .winexe, Ne postoji, Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# Konzolni izvršni &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.exe&amp;lt;/span&amp;gt;&lt;br /&gt;
# Memorijski upravljački &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Ne postoji&amp;lt;/span&amp;gt;&lt;br /&gt;
# Grafički izvršni &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.exe&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void M1() { System.Console.Write(1); }&lt;br /&gt;
    static void M2() { System.Console.Write(2); }&lt;br /&gt;
    static void M3() { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12313&amp;lt;/span&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Spojiti navedene tipove izuzetaka na programskom jeziku &#039;&#039;Java&#039;&#039; sa odgovarajućim iskazom koji najbolje opisuje njihovu prirodu.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine., Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa., Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka., Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje., Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# RuntimeException &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Error &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Throwable &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Exception &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6374</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6374"/>
		<updated>2023-06-30T00:23:48Z</updated>

		<summary type="html">&lt;p&gt;Pop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Kojom komandom se sledeći programski kod čiji je prevedeni oblik - bajtkod - dat u fajlu &amp;quot;Pozdrav.class&amp;quot; može izvršiti?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;javac Pozdrav.class&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;java Pozdrav.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;java Pozdrav&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;javac Pozdrav.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4231&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Šta sme da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku &#039;&#039;Java&#039;&#039; uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package prvi;&lt;br /&gt;
public class A {&lt;br /&gt;
    private int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    protected int c;&lt;br /&gt;
    public int d;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package drugi;&lt;br /&gt;
public class B {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        A obj = new A();&lt;br /&gt;
        ####&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.b = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.c = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;obj.d = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;obj.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;A.d = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programki jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Nad metodima označenim modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039; primenjuje se statičko vezivanje.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Modifikator &#039;&#039;&#039;final&#039;&#039;&#039; je deo potpisa metoda.&lt;br /&gt;
# Nadjačanje (polimorfna redefinicija) metoda natklase u potklasi ne može da bude označena modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod označen modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039; sprečava izvedene klase da ga redefinišu.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Statički metod može da bude označen modifikatorm &#039;&#039;&#039;final&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa nasleđuje statička konačna polja implementiranog interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa nasleđuje podrazumevane metode implementiranog interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pozvati statički metod &#039;&#039;&#039;m()&#039;&#039;&#039; interfejsa &#039;&#039;&#039;I&#039;&#039;&#039; iz nekog metoda klase &#039;&#039;&#039;K&#039;&#039;&#039; koja implementira dati interfejs &#039;&#039;&#039;I&#039;&#039;&#039; na način &#039;&#039;&#039;K.m()&#039;&#039;&#039;.&lt;br /&gt;
# Podrazumevanom metodu &#039;&#039;&#039;m()&#039;&#039;&#039; implementiranog interfejsa &#039;&#039;&#039;I&#039;&#039;&#039;, klasa može da pristupi iz statičkog metoda direktno i koristeći notaciju &#039;&#039;&#039;I.super.m()&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa mora da implementira apstraktne metode implementiranog interfejsa ili da bude proglašena apstraktnom.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova (eng. &#039;&#039;assembly&#039;&#039;) navesti tip (ekstenziju) fajla.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.exe, .winexe, Ne postoji, Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# Konzolni izvršni &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.exe&amp;lt;/span&amp;gt;&lt;br /&gt;
# Memorijski upravljački &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Ne postoji&amp;lt;/span&amp;gt;&lt;br /&gt;
# Grafički izvršni &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.exe&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Spojiti navedene tipove izuzetaka na programskom jeziku &#039;&#039;Java&#039;&#039; sa odgovarajućim iskazom koji najbolje opisuje njihovu prirodu.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine., Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa., Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka., Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje., Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# RuntimeException &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Error &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Throwable &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Exception &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6373</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6373"/>
		<updated>2023-06-29T23:41:26Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 6. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
Spojiti navedene tipove izuzetaka na programskom jeziku &#039;&#039;Java&#039;&#039; sa odgovarajućim iskazom koji najbolje opisuje njihovu prirodu.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine., Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa., Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka., Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje., Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# RuntimeException &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Error &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Throwable &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Exception &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BB_2023&amp;diff=6364</id>
		<title>ОО2/Јул 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BB_2023&amp;diff=6364"/>
		<updated>2023-06-27T17:37:48Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 5. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Julski rok 2023. godine&#039;&#039;&#039;&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Odabrati tačne tvrdnje za jezik &#039;&#039;Java&#039;&#039;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Naredbe &amp;lt;code&amp;gt;static final int&amp;lt;/code&amp;gt; a = 1; i &amp;lt;code&amp;gt;const int a=1;&amp;lt;/code&amp;gt; su ekvivalentne.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;JVM pruža zaštitu od virusa koji bi se prenosili kroz izvršni kod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prenosivost programa se postiže bajtkodom koji se interpretira na isti način od strane JVM na različitim platformama.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Svaki prost tip podataka je uvek iste veličine na svim platformama.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Imena promenljivih mogu da se pišu ćirilicom.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Šta sme da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku &#039;&#039;Java&#039;&#039; uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package prvi;&lt;br /&gt;
public class A {&lt;br /&gt;
    private int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    protected int c;&lt;br /&gt;
    public int d;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package drugi;&lt;br /&gt;
import prvi.A;&lt;br /&gt;
public class B extends A {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        ####&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;b = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;super.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;c = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;d = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi za pristup nestatičkim članovima klase koji nisu privatni.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi u nestatičkim metodama klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi u statičkim metodama klase.&lt;br /&gt;
# Poziv metoda preko reference &#039;&#039;&#039;super&#039;&#039;&#039; je polimorfan.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; predstavlja referencu na podobjekat tekućeg objekta tipa neposredne natklase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Koja od sledećih tvrdnji su tačne za metod &#039;&#039;&#039;f()&#039;&#039;&#039; interfejsa &#039;&#039;&#039;I&#039;&#039;&#039; na programskom jeziku &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface I {&lt;br /&gt;
    void f();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;static&#039;&#039;&#039;.&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod je implicitno označen modifikatorom &#039;&#039;&#039;abstract&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod je implicitno označen modifikatorom &#039;&#039;&#039;public&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;protected&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Moguće je bacati neproverene izuzetke naredbom &#039;&#039;&#039;throw&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;Exception&#039;&#039;&#039; predstavlja neprovereni izuzetak.&lt;br /&gt;
# Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;Throwable&#039;&#039;&#039; predstavlja neprovereni izuzetak.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Izuzetak izveden iz klase &#039;&#039;&#039;Error&#039;&#039;&#039; predstavlja neprovereni izuzetak.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;RuntimeException&#039;&#039;&#039; predstavlja neprovereni izuzetak.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metodi spoljašnje klase imaju pravo pristupa članovima ugnježdene klase označenim pravom pristupa &#039;&#039;private&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metodi klase koja proširuje ugnježdenu klasu imaju prava pristupa članovima njene spoljašnje klase.&lt;br /&gt;
# Metodi unutrašnje klase imaju mogućnost pristupa direktnim imenovanjem isključivo statičkim članovima spoljašnje klase.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa ugnježdena u interfejs je podrazumevano statička.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metodi ugnježdene klase imaju pravo pristupa članovima spoljašnje klase označenim pravom pristupa &#039;&#039;private&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Šta ispisuje sledeći program napisan na programskom jeziku &#039;&#039;Java&#039;&#039;, ukoliko operacije += i -= nisu atomične?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Racun {&lt;br /&gt;
    int stanje;&lt;br /&gt;
    public Racun(int stanje) { this.stanje = stanje; }&lt;br /&gt;
    &lt;br /&gt;
    public void uvecaj (int iznos) { stanie += iznos; }&lt;br /&gt;
    public void umanji(int iznos) { stanje -= iznos; }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        Racun racun = new Racun(0);&lt;br /&gt;
        Runnable r1 = () -&amp;gt; { for(int i = 0; i &amp;lt; 5; i++) racun.uvecaj (100); };&lt;br /&gt;
        Runnable r? = () -&amp;gt; { for(int i = 0; i &amp;lt; 5; i++) racun. umanji (100); };&lt;br /&gt;
        Thread uplata = new Thread(r1);&lt;br /&gt;
        Thread isplata = new Thread(r2);&lt;br /&gt;
        uplata.start(); &lt;br /&gt;
        isplata.start();&lt;br /&gt;
        try {&lt;br /&gt;
            uplata.join();&lt;br /&gt;
            isplata.join();&lt;br /&gt;
        } catch(interruptedException e){}&lt;br /&gt;
        System.out.println(&amp;quot;Vrednost stanja je: &amp;quot; + racun.stanje);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ispis ne može jedinstveno da se odredi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Vrednost stanja je: -500&lt;br /&gt;
# Vrednost stanja je: 0&lt;br /&gt;
# Vrednost stanja je: 500&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
Za svaki od sledećih metoda navesti iz kog interfejsa AWT osluškivača potiče.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;FocusListener, ActionListener, ItemListener, StateListener, PerformeListener, ComponentListener, Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# focusGained &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;FocusListener&amp;lt;/span&amp;gt;&lt;br /&gt;
# actionPerformed &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;ActionListener&amp;lt;/span&amp;gt;&lt;br /&gt;
# itemStateChanged &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;ItemListener&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Koja datoteka se kreira prevođenjem sledećeg programskog koda na operativno sistemu &#039;&#039;Windows&#039;&#039;, koji se nalazi u datoteci &#039;&#039;&#039;Program.cs&#039;&#039;&#039;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class ZdravoSvete {&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        System.Console.Write(&amp;quot;Zdravo Svete!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Program.exe&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;ZdravoSvete.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Program.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;ZdravoSvete.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Main.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Main.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        int num = 1;&lt;br /&gt;
        switch(num) {&lt;br /&gt;
            case 0: Console.Write(&amp;quot;0&amp;quot;);&lt;br /&gt;
            case 1: Console.Write(&amp;quot;1&amp;quot;);&lt;br /&gt;
            case 2: Console.Write(&amp;quot;2&amp;quot;);&lt;br /&gt;
            default: Console.Write(&amp;quot;d&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&amp;lt;!-- Zameniti sa nazivom predmeta --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BB_2023&amp;diff=6363</id>
		<title>ОО2/Јул 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BB_2023&amp;diff=6363"/>
		<updated>2023-06-27T17:28:58Z</updated>

		<summary type="html">&lt;p&gt;Pop: Нова страница: {{tocright}} &amp;#039;&amp;#039;&amp;#039;Julski rok 2023. godine&amp;#039;&amp;#039;&amp;#039; {{rešenja}}  == 1. zadatak == Odabrati tačne tvrdnje za jezik &amp;#039;&amp;#039;Java&amp;#039;&amp;#039;. &amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt; # Naredbe &amp;lt;code&amp;gt;static final int&amp;lt;/code&amp;gt; a = 1; i &amp;lt;code&amp;gt;const int a=1;&amp;lt;/code&amp;gt; su ekvivalentne. # &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;JVM pruža zaštitu od virusa koji bi se prenosili kroz izvršni kod.&amp;lt;/span&amp;gt; # &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prenosivost programa se postiže bajtkodom koji se interpretira na isti način od…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Julski rok 2023. godine&#039;&#039;&#039;&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Odabrati tačne tvrdnje za jezik &#039;&#039;Java&#039;&#039;.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Naredbe &amp;lt;code&amp;gt;static final int&amp;lt;/code&amp;gt; a = 1; i &amp;lt;code&amp;gt;const int a=1;&amp;lt;/code&amp;gt; su ekvivalentne.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;JVM pruža zaštitu od virusa koji bi se prenosili kroz izvršni kod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prenosivost programa se postiže bajtkodom koji se interpretira na isti način od strane JVM na različitim platformama.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Svaki prost tip podataka je uvek iste veličine na svim platformama.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Imena promenljivih mogu da se pišu ćirilicom.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Šta sme da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku &#039;&#039;Java&#039;&#039; uspešno preveo?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package prvi;&lt;br /&gt;
public class A {&lt;br /&gt;
    private int a;&lt;br /&gt;
    int b;&lt;br /&gt;
    protected int c;&lt;br /&gt;
    public int d;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package drugi;&lt;br /&gt;
import prvi.A;&lt;br /&gt;
public class B extends A {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        ####&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;b = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;super.a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;a = 1;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;c = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;d = 1;&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnji su tačne za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi za pristup nestatičkim članovima klase koji nisu privatni.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi u nestatičkim metodama klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Referenca &#039;&#039;&#039;super&#039;&#039;&#039; može da se koristi u statičkim metodama klase.&lt;br /&gt;
# Poziv metoda preko reference &#039;&#039;&#039;super&#039;&#039;&#039; je polimorfan.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Referenca &#039;&#039;&#039;super&#039;&#039;&#039; predstavlja referencu na podobjekat tekućeg objekta tipa neposredne natklase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Koja od sledećih tvrdnji su tačne za metod &#039;&#039;&#039;f()&#039;&#039;&#039; interfejsa &#039;&#039;&#039;I&#039;&#039;&#039; na programskom jeziku &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface I {&lt;br /&gt;
    void f();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;static&#039;&#039;&#039;.&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;final&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod je implicitno označen modifikatorom &#039;&#039;&#039;abstract&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod je implicitno označen modifikatorom &#039;&#039;&#039;public&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod je implicitno označen modifikatorom &#039;&#039;&#039;protected&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Moguće je bacati proverene izuzetke naredbom &#039;&#039;&#039;throw&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;Exception&#039;&#039;&#039; predstavlja neprovereni izuzetak.&lt;br /&gt;
# Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;Throwable&#039;&#039;&#039; predstavlja neprovereni izuzetak.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Izuzetak izveden iz klase &#039;&#039;&#039;Error&#039;&#039;&#039; predstavlja neprovereni izuzetak.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Korisnički definisan tip izuzetka direktno izveden iz klase &#039;&#039;&#039;RuntimeException&#039;&#039;&#039; predstavlja neprovereni izuzetak.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Koje od sledećih tvrdnja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metodi spoljašnje klase imaju pravo pristupa članovima ugnježdene klase označenim pravom pristupa &#039;&#039;private&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metodi klase koja proširuje ugnježdenu klasu imaju prava pristupa članovima njene spoljašnje klase.&lt;br /&gt;
# Metodi unutrašnje klase imaju mogućnost pristupa direktnim imenovanjem isključivo statičkim članovima spoljašnje klase.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Klasa ugnježdena u interfejs je podrazumevano statička.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metodi ugnježdene klase imaju pravo pristupa članovima spoljašnje klase označenim pravom pristupa &#039;&#039;private&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Šta ispisuje sledeći program napisan na programskom jeziku &#039;&#039;Java&#039;&#039;, ukoliko operacije += i -= nisu atomične?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Racun {&lt;br /&gt;
    int stanje;&lt;br /&gt;
    public Racun(int stanje) { this.stanje = stanje; }&lt;br /&gt;
    &lt;br /&gt;
    public void uvecaj (int iznos) { stanie += iznos; }&lt;br /&gt;
    public void umanji(int iznos) { stanje -= iznos; }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        Racun racun = new Racun(0);&lt;br /&gt;
        Runnable r1 = () -&amp;gt; { for(int i = 0; i &amp;lt; 5; i++) racun.uvecaj (100); };&lt;br /&gt;
        Runnable r? = () -&amp;gt; { for(int i = 0; i &amp;lt; 5; i++) racun. umanji (100); };&lt;br /&gt;
        Thread uplata = new Thread(r1);&lt;br /&gt;
        Thread isplata = new Thread(r2);&lt;br /&gt;
        uplata.start(); &lt;br /&gt;
        isplata.start();&lt;br /&gt;
        try {&lt;br /&gt;
            uplata.join();&lt;br /&gt;
            isplata.join();&lt;br /&gt;
        } catch(interruptedException e){}&lt;br /&gt;
        System.out.println(&amp;quot;Vrednost stanja je: &amp;quot; + racun.stanje);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ispis ne može jedinstveno da se odredi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Vrednost stanja je: -500&lt;br /&gt;
# Vrednost stanja je: 0&lt;br /&gt;
# Vrednost stanja je: 500&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
Za svaki od sledećih metoda navesti iz kog interfejsa AWT osluškivača potiče.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;FocusListener, ActionListener, ItemListener, StateListener, PerformeListener, ComponentListener, Ništa od ponuđenog&amp;quot;&amp;gt;&lt;br /&gt;
# focusGained &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;FocusListener&amp;lt;/span&amp;gt;&lt;br /&gt;
# actionPerformed &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;ActionListener&amp;lt;/span&amp;gt;&lt;br /&gt;
# itemStateChanged &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;ItemListener&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Koja datoteka se kreira prevođenjem sledećeg programskog koda na operativno sistemu &#039;&#039;Windows&#039;&#039;, koji se nalazi u datoteci &#039;&#039;&#039;Program.cs&#039;&#039;&#039;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class ZdravoSvete {&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        System.Console.Write(&amp;quot;Zdravo Svete!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;code&amp;gt;Program.exe&amp;lt;/code&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;ZdravoSvete.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Program.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;ZdravoSvete.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Main.jar&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;Main.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        int num = 1;&lt;br /&gt;
        switch(num) {&lt;br /&gt;
            case 0: Console.Write(&amp;quot;0&amp;quot;);&lt;br /&gt;
            case 1: Console.Write(&amp;quot;1&amp;quot;);&lt;br /&gt;
            case 2: Console.Write(&amp;quot;2&amp;quot;);&lt;br /&gt;
            default: Console.Write(&amp;quot;d&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&amp;lt;!-- Zameniti sa nazivom predmeta --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6360</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6360"/>
		<updated>2023-06-27T09:57:08Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 2. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6359</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6359"/>
		<updated>2023-06-27T01:00:13Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 7. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6358</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6358"/>
		<updated>2023-06-27T00:59:59Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 7. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati niT pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6353</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6353"/>
		<updated>2023-06-25T20:02:10Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 8. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati niz pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_MOVED&#039;&#039;&#039; se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaji miša su događaji niskog nivoa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Ako se kod izvora registruje osluškivač tipa &#039;&#039;&#039;MouseMotionListener&#039;&#039;&#039;, pri otpuštanju dugmeta miša dogodiće se događaj vrste &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039; i biće pozvan metod koji obrađuje ovaj događaj.&lt;br /&gt;
# Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; prethodi događaju &#039;&#039;&#039;MOUSE_RELEASED&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Događaj vrste &#039;&#039;&#039;MOUSE_CLICKED&#039;&#039;&#039; će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6352</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6352"/>
		<updated>2023-06-25T19:51:32Z</updated>

		<summary type="html">&lt;p&gt;Pop: /* 7. zadatak */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; bez argumenata će blokirati niz pozivaoca dok se nit za koju je metod pozvan ne završi.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; je definisan klasi &#039;&#039;&#039;Thread&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Poziv metoda &amp;lt;code&amp;gt;&#039;&#039;&#039;notify()&#039;&#039;&#039;&amp;lt;/code&amp;gt; za objekat niti iz koje je pozvan metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; će blokirati nit pozvanog objekta.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; baca provereni izuzetak &#039;&#039;&#039;InterruptedException&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Metod &amp;lt;code&amp;gt;&#039;&#039;&#039;join()&#039;&#039;&#039;&amp;lt;/code&amp;gt; mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak &#039;&#039;&#039;IllegalMonitorStateException&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6351</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6351"/>
		<updated>2023-06-25T19:32:52Z</updated>

		<summary type="html">&lt;p&gt;Pop: Dodat 10. zadatak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. задатак ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;C#&#039;&#039;? (Za program koji se ne prevodi uneti &#039;&#039;&#039;NP&#039;&#039;&#039;. Za program sa greškom u izvršavanju uneti &#039;&#039;&#039;X&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Program {&lt;br /&gt;
    void M1(ref int i) { System.Console.Write(1); }&lt;br /&gt;
    void M2(ref int i) { System.Console.Write(2); }&lt;br /&gt;
    void M3(ref int i) { System.Console.Write(3); }&lt;br /&gt;
&lt;br /&gt;
    public delegate void Delegat();&lt;br /&gt;
&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        Delegat d1 = new Delegat(M1);&lt;br /&gt;
        Delegat d2 = new Delegat(M2);&lt;br /&gt;
        Delegat d3 = new Delegat(M3);&lt;br /&gt;
        Delegat d = d1 + d2 + d3;&lt;br /&gt;
        d += d1 - d2 + d3;&lt;br /&gt;
        d();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Одговор:&#039;&#039;&#039; &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;NP&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6235</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6235"/>
		<updated>2023-06-06T13:40:15Z</updated>

		<summary type="html">&lt;p&gt;Pop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6234</id>
		<title>ОО2/Јун 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%88%D1%83%D0%BD_2023&amp;diff=6234"/>
		<updated>2023-06-06T13:37:59Z</updated>

		<summary type="html">&lt;p&gt;Pop: Нова страница: {{tocright}} &amp;#039;&amp;#039;&amp;#039;Junski rok 2023. godine&amp;#039;&amp;#039;&amp;#039; održan je 6. juna i bile su dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h. {{rešenja}}  &amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt; &amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije d…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Junski rok 2023. godine&#039;&#039;&#039; održan je 6. juna i bile su dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ukoliko postoji više grupa, dodati sekcije poput == Grupa A == a sekcije zadataka promeniti sa == X. zadatak == na === X. zadatak ===. --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Ukoliko se koristi za zadatke iz RM1, na vrhu dodati odeljke == Postavka == i == Mreže == za postavku zadatka i definisanje mreža koje postoje (nije deo postavke ali pomaže pri objašnjenju rešenja). --&amp;gt;&lt;br /&gt;
== G2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Prilikom prevođenja izvornog koda na jeziku &#039;&#039;Java&#039;&#039;, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.&lt;br /&gt;
# Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa &#039;&#039;&#039;.java&#039;&#039;&#039; uvek se smesta u tačno jednu &#039;&#039;&#039;.class&#039;&#039;&#039; datoteku.&lt;br /&gt;
# Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Prevodilac jezika &#039;&#039;Java&#039;&#039; prevodi izvorni kod na jeziku &#039;&#039;Java&#039;&#039; u bajtkod.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;Just in Time&#039;&#039; (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
    public Test() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
    {&lt;br /&gt;
        System.out.println(3);&lt;br /&gt;
    }&lt;br /&gt;
    static {&lt;br /&gt;
        System.out.println(4);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new Test();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;4132&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Izvršavaju se prvo statički blokovi priliko popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Jedan fajl sa izvornim kodom na programskom jeziku &#039;&#039;Java&#039;&#039; moze da sadrži više definicija tipova podataka.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena. &amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Dozvoljeno je da se naredba &#039;&#039;&#039;import test.*;&#039;&#039;&#039; pojavi u jednom fajlu vise puta.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Šta ispisuje sledeći program na programskom jeziku &#039;&#039;Java&#039;&#039;? Upisati &#039;&#039;&#039;NP&#039;&#039;&#039; ako se program ne prevodi.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public B() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    void f(){&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public D() {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
    public void f(){&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;22&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Kada override-ujemo metode smemo proširiti njihov pristup.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 5. zadatak ===&lt;br /&gt;
Koja od sledećih tvrđenja su tačna za programski jezik &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Supertipove neke klase čine i interfejsi koje ta klasa implementira.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku &#039;&#039;Java&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Programski jezik &#039;&#039;Java&#039;&#039; podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 7. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 8. zadatak ===&lt;br /&gt;
&lt;br /&gt;
=== 9. zadatak ===&lt;br /&gt;
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;.dll, .lib, .netmodule, .cs, .exe&amp;quot;&amp;gt;&lt;br /&gt;
# Biblioteka za dinamičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.dll&amp;lt;/span&amp;gt; &amp;lt;ref&amp;gt;Bilo je ponuđeno više odgovora.&amp;lt;/ref&amp;gt;&lt;br /&gt;
# Modul za statičko povezivanje &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;.netmodule&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 10. zadatak ===&lt;br /&gt;
&lt;br /&gt;
== Napomene ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0&amp;diff=6228</id>
		<title>Архитектура рачунара</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0&amp;diff=6228"/>
		<updated>2023-06-05T16:54:04Z</updated>

		<summary type="html">&lt;p&gt;Pop: Додат веза ка страници са улазним Мудл тестовима&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Предмет&lt;br /&gt;
| шифра     = 13С112АР, 13Е112АР&lt;br /&gt;
| семестар  = 4&lt;br /&gt;
| статус    = обавезни&lt;br /&gt;
| страница  = [https://rti.etf.bg.ac.rs/rti/ef2ar/ rti.etf.rs/rti/ef2ar]&lt;br /&gt;
| одсек     = СИ, РТИ&lt;br /&gt;
| претходни = ОРТ2&lt;br /&gt;
| следећи   = АОР1&lt;br /&gt;
}}&lt;br /&gt;
ДОБАР ДАН! Добродошли на страницу из обавезног предмета у четвртом семестру &#039;&#039;&#039;Архитектура рачунара&#039;&#039;&#039;. Моје име је {{SITENAME}}. Да ли можда, имате, неких питања? Надам се да ме сада, чујете мало боље.&lt;br /&gt;
&lt;br /&gt;
== Корисне везе ==&lt;br /&gt;
* [https://drive.google.com/open?id=15Jc3UWnpadZHIyndlrIqW9R98l64Cek9 ETF SI] (наставни материјали, решења рокова)&lt;br /&gt;
&lt;br /&gt;
== Настава ==&lt;br /&gt;
Градиво је подељено на следеће области:&lt;br /&gt;
* &#039;&#039;&#039;Први блок:&#039;&#039;&#039; Механизам прекида&lt;br /&gt;
* &#039;&#039;&#039;Други блок:&#039;&#039;&#039; Магистрала, меморија (само на вежбама), улаз/излаз (основе, повезивање са периферијом)&lt;br /&gt;
* &#039;&#039;&#039;Трећи блок:&#039;&#039;&#039; Технике рада са улазним/излазним уређајима (испитивање бита спремности, механизам прекида, DMA контролер), периферије и механизам прекида, конструкти из виших програмских језика, нестандардне инструкције&lt;br /&gt;
Предавања су неопходна, јер са теоријски задаци увек долазе на роковима (најчешће К1 10 поена, К2 15 поена, испит 15 поена). Вежбе прате градиво са предавања, и из њих обично долазе задаци сличих типова на колоквијуму:&lt;br /&gt;
* Задатак са извршавањем инструкција и руковођењем различитих врста прекида (долази на првом колоквијуму)&lt;br /&gt;
* Задатак са извршавањем инструкција и комуникацијом преко магистрале (може да дође на другом колоквијуму)&lt;br /&gt;
* Задатак са распоредом меморије и хардвером за руковођење адресним просторима (може да дође на другом колоквијуму)&lt;br /&gt;
* Комбинација претходне две ставке (може да дође на другом колоквијуму)&lt;br /&gt;
* Асемблерски задатак комуникације са меморијом и периферијама (долази на испиту)&lt;br /&gt;
Презентације са предавања могу се наћи на драјву из [[#Корисни материјали|одељка за корисне материјале]].&lt;br /&gt;
&lt;br /&gt;
== Лабораторијске вежбе ==&lt;br /&gt;
Постоје две лабораторијске вежбе, свака по 10 бодова, које се одржавају средином семестра. Раде се у симулатору, имају улазни &#039;&#039;Moodle&#039;&#039; тест и (само на другој лабораторијској вежби) домаћи задатак. Једну лабораторијску вежбу је могуће једном надокнадити, и бодови са лабораторијских вежби важе годину дана. Материјали са лабораторијских вежби од претходних година, попут домаћих задатака, упутства за асемблер и примера задатка за прву лабораторијску вежбу се могу наћи на [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/lab20202021/ страници предмета.] Више о самом симулатору може да се нађе у [[#SPECS|одељку са алатима]].&lt;br /&gt;
&lt;br /&gt;
Пре лабораторијских вежби доступни су пробни тестови за њих. 2020. године следећи пробни тестови су били на располагању са странице предмета:&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/Pitanja_2012_2013_V1.pdf Лаб 1 и 2]&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/Pitanja_2006_2007_V3.pdf Лаб 3]&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/Pitanja_2011_2012_V4.pdf Лаб 4]&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/Pitanja_2011_2012_V5.pdf Лаб 5]&lt;br /&gt;
Везе ка тим пробним тестовима се више не налазе на страници предмета од 2021. године. Уместо њих, на &#039;&#039;Moodle&#039;&#039; курсу предмета се могу наћи пробни тестови, од којих су за сада доступни они из [[Архитектура рачунара/Пробни тестови 2021|2021. године]].&lt;br /&gt;
Примере &#039;&#039;Moodle&#039;&#039; тестова који су били 2023. године на другој лабораторијској можете наћи [[Архитектура рачунара/Улазни тестови за лаб2 2023|овде]].&lt;br /&gt;
&lt;br /&gt;
=== Прва лабораторијска вежба ===&lt;br /&gt;
&#039;&#039;Moodle&#039;&#039; тест носи 4 бода. Потребно је остварити најмање 2 како би се приступило изради лабораторијске вежбе. Осталих 6 бодова добија се на изради 4 задатка (2 лакша и 2 тежа). Задаци су по формату и идејама слични задацима на припремној лабораторијској вежби. Током израде лабораторијске вежбе демонстратор или асистент може поставити теоријска питања у вези са градивом и на основу њих може скинути одређен број поена у случају лошег одговора (мада је ово јако ретко). Задаци морају комплетно да раде да би се бодовали.&lt;br /&gt;
&lt;br /&gt;
=== Друга лабораторијска вежба ===&lt;br /&gt;
&#039;&#039;Moodle&#039;&#039; тест носи 4 бода. Потребно је остварити најмање 2 како би се приступило изради лабораторијске вежбе. Осталих 6 бодова добија се на изради 2 модификације домаћег задатка. Једна модификација је тривијална, док је друга мало тежа (али је већина успешно уради). Друга модификација на надокнади је, по правилу, прилично тежа. Током израде лабораторијске вежбе демонстратор или асистент може поставити теоријска питања у вези са градивом и на основу њих може скинути одређен број поена у случају лошег одговора (мада је ово јако ретко). Задаци морају комплетно да раде да би се бодовали. Свака од модификација носи 3 бода и оцењују се независно једна од друге.&lt;br /&gt;
&lt;br /&gt;
== Пројекат ==&lt;br /&gt;
Пројекат је реализовати процесор предложене архитектуре, магистрале и са периферијама (барем контролер миша или тастатуре и графичка картица која исцртава на VGA монитор) на коме ће се покретати предложени програм, на FPGA плочици &#039;&#039;Cyclone III&#039;&#039; (или &#039;&#039;Cyclone V&#039;&#039;) као што се користи на [[ПОРТ]]. Ради се у групи до 5 чланова, носи 20 бодова и &#039;&#039;&#039;није обавезан&#039;&#039;&#039;. У графичкој картици потребно је реализовати цртање пиксела, линије и квадрата користећи SDRAM чип на плочици. Контролери тастатуре и VGA монитора постоје реализовани на претходним [[ОРТ2]] лабораторијским вежбама, пре него што су измењене да не садрже рад са FPGA.&lt;br /&gt;
&lt;br /&gt;
По мишљењу предметних сарадника, пројекат носи много мање бодова него што је тежак, и не вреди га радити за оцену, већ само уколико су студенти заиста заинтересовани за такву врсту рада.&lt;br /&gt;
&lt;br /&gt;
Неке корисне везе при изради пројекта:&lt;br /&gt;
* [[github:topofkeks/arilla|Један од претходно реализованих пројеката]] (са реализованим контролером миша)&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ir2ort2/laboratorija/ORT2%20-%20LAB1%20(PS2).zip Контролер тастатуре са прве ОРТ2 лабораторијске вежбе]&lt;br /&gt;
* [https://rti.etf.bg.ac.rs/rti/ir2ort2/laboratorija/ORT2%20-%20LAB2%20(VGA).zip VGA контролер са друге ОРТ2 лабораторијске вежбе]&lt;br /&gt;
* [http://www.burtonsys.com/ps2_chapweske.htm Више о PS/2 протоколу]&lt;br /&gt;
* [https://isdaman.com/alsos/hardware/mouse/ps2interface.htm Више о комуникацији са мишем]&lt;br /&gt;
* [http://www-ug.eecg.toronto.edu/msl/nios_devices/datasheets/PS2%20Keyboard%20Protocol.htm Више о комуникацији са тастатуром]&lt;br /&gt;
* [http://www.issiusa.com/pdf/42S16400.pdf Документација SDRAM чипа са &#039;&#039;Cyclone III&#039;&#039; плочице] (препоручује се коришћење ове плочице јер досад на предмету нису рађени пројекти користећи SDRAM чип са &#039;&#039;Cyclone V&#039;&#039; плочице)&lt;br /&gt;
* [[wikipedia:Bresenham&#039;s line algorithm|Брезенхамов линијски алгоритам]] (доступан и на [[wikipedia:sr:Брезенхамов линијски алгоритам|српској Википедији]])&lt;br /&gt;
Софтверски алат &#039;&#039;ModelSim&#039;&#039; који може да се преузме поред &#039;&#039;Quartus&#039;&#039;-а је такође јако користан алат за дебаговање шема пре спуштања на плочицу, па је препоручљиво упознати се са тиме како ради.&lt;br /&gt;
&lt;br /&gt;
== Испитни рокови ==&lt;br /&gt;
Испитни рокови се могу наћи на страници предмета, али се испитни рокови од тренутне године објављују тек након што се година заврши. Често су решени, али само делимично. Испод се могу наћи рокови тренутно сакупљени на викију. Још увек непреписани рокови могу се наћи у [[#Потребна помоћ|одељку за потребну помоћ]]. Уколико желите да додате рок, посетите &#039;&#039;&#039;[[Project:Направи#Стандард (ћирилица)|страницу за прављење рока]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Колоквијуми ===&lt;br /&gt;
{{#dpl:&lt;br /&gt;
| titleregexp     = Архитектура_рачунара/К\d? .*\d+&lt;br /&gt;
| noresultsheader = Тренутно нема решених колоквијума.&lt;br /&gt;
| format          = ,\n* &amp;lt;span class=&amp;quot;rok,&amp;quot;&amp;gt;[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦22¦-1}²]]&amp;lt;/span&amp;gt;,&lt;br /&gt;
| include         = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Испити ===&lt;br /&gt;
{{#dpl:&lt;br /&gt;
| titleregexp     = Архитектура_рачунара/.*&lt;br /&gt;
| nottitleregexp  = Архитектура_рачунара/Пробни тестови&lt;br /&gt;
| nottitleregexp  = Архитектура_рачунара/Лаб&lt;br /&gt;
| nottitleregexp  = Архитектура_рачунара/К &lt;br /&gt;
| noresultsheader = Тренутно нема решених испита.&lt;br /&gt;
| format          = ,\n* &amp;lt;span class=&amp;quot;rok,&amp;quot;&amp;gt;[[%PAGE%|²{#invoke:String¦sub¦%PAGE%¦22¦-1}²]]&amp;lt;/span&amp;gt;,&lt;br /&gt;
| include         = {nerešeno}.dpl, {delimično rešeno}.dpl, {нерешено}.dpl, {делимично решено}.dpl&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алати ==&lt;br /&gt;
=== SPECS ===&lt;br /&gt;
&#039;&#039;SPECS&#039;&#039; је симулатор који се користи на лабораторијским вежбама. Може се преузети [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/lab20192020/simulator+asembler.zip са странице предмета] заједно са асемблером &#039;&#039;PSams&#039;&#039;. Детаљно упутство за коришћење ова два алата је такође [https://rti.etf.bg.ac.rs/rti/ef2ar/labvezbe/lab20202021/uputstvo.pdf дато на страници предмета.]&lt;br /&gt;
&lt;br /&gt;
Уколико симулатор покрећете кроз &#039;&#039;Wine&#039;&#039; на оперативном систему &#039;&#039;Linux&#039;&#039; (сличне инструкције можда раде и на &#039;&#039;macOS&#039;&#039;, али није тестирано), потребно је да:&lt;br /&gt;
* Из директоријума &amp;lt;code&amp;gt;p3lab1&amp;lt;/code&amp;gt; обришете &amp;lt;code&amp;gt;VEZBA.ECS&amp;lt;/code&amp;gt; јер ће асемблер генерисати нови фајл под именом &amp;lt;code&amp;gt;vezba.ecs&amp;lt;/code&amp;gt; који, уколико постоје оба фајла, симулатор неће читати.&lt;br /&gt;
* [https://askubuntu.com/a/177349 Користите 32-битни &#039;&#039;Wine&#039;&#039; префикс.]&lt;br /&gt;
* Кроз [https://wiki.winehq.org/Winetricks &#039;&#039;winetricks&#039;&#039;] инсталирајте &amp;lt;code&amp;gt;oleaut32&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vb6run&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;gdiplus&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Начин оцењивања ==&lt;br /&gt;
* &amp;lt;math&amp;gt;L_1, L_2&amp;lt;/math&amp;gt; — Бодови са лабораторијских вежби (0-10 свака)&lt;br /&gt;
* &amp;lt;math&amp;gt;K_1, K_2&amp;lt;/math&amp;gt; — Бодови са првог и другог колоквијума носе по 25 сваки. (0-50)&lt;br /&gt;
* &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt; — Бодови са испита (0-30)&lt;br /&gt;
* Бодови: &amp;lt;math&amp;gt;P = L_1 + L_2 + K_1 + K_2 + I&amp;lt;/math&amp;gt;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Бодови&lt;br /&gt;
| &amp;lt;math&amp;gt;P \leq 50&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;50 &amp;lt; P \leq 60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;60 &amp;lt; P \leq 70&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;70 &amp;lt; P \leq 80&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;80 &amp;lt; P \leq 90&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;90 &amp;lt; P&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Оцена&lt;br /&gt;
| 5 || 6 || 7 || 8 || 9 || 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Рачунање ===&lt;br /&gt;
&amp;lt;div class=&amp;quot;calculator&amp;quot;&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;K&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;K&amp;quot; data-max=&amp;quot;40&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;I&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;I&amp;quot; data-max=&amp;quot;40&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;L1&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;L1&amp;quot; data-max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;L2&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;L2&amp;quot; data-max=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;PR&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;PR&amp;quot; data-max=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt;: &amp;lt;span data-variable=&amp;quot;P&amp;quot; data-expression=&amp;quot;K I L1 L2 PR + + + +&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
* Оцена: &amp;lt;span data-expression=&amp;quot;P 10 / ceil 5 max 10 min&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Потребна помоћ ==&lt;br /&gt;
* {{zadaci|rešenja}}&lt;br /&gt;
*: Рокови који су преписани а нису решени су: {{rokovi|нерешени}}&lt;br /&gt;
*: Рокови којима недостаје понеко решење су: {{rokovi|делимично решени}}&lt;br /&gt;
* {{zadaci|prepis}}&lt;br /&gt;
** Август 2020: [https://cdn.discordapp.com/attachments/693907737364398162/851646445852688424/ar-rokovi-avgust.jpg], [https://cdn.discordapp.com/attachments/693907737364398162/851646436667031562/ar-rokovi-avgust2.jpg]&lt;br /&gt;
** Август 2021: [https://cdn.discordapp.com/attachments/696381655933386832/882557009520652378/20210901_112613.jpg], [https://cdn.discordapp.com/attachments/696381655933386832/882557010346934322/20210901_112620.jpg]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6218</id>
		<title>Архитектура рачунара/Улазни тестови Лаб 2 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6218"/>
		<updated>2023-05-27T00:40:10Z</updated>

		<summary type="html">&lt;p&gt;Pop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Примери улазних тестова за лабораторију 2 из предмета Архитектура рачуанара за 2023 годину.&#039;&#039;&#039;&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== GRUPA 1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 201&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memorijski adresni prostori su razdvojeni, a magistrala je sinhrona.&lt;br /&gt;
Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=1, WR=0, M/\overline{IO}&amp;lt;/math&amp;gt;=0?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ciklus upisa na periferiju&lt;br /&gt;
# Ciklus čitanja iz memorije&lt;br /&gt;
# Ciklus upisa u memoriju&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ciklus čitanja sa periferije&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali ce DMA kontroler obaviti pilikom transfera bloka od 200 batova (adresiranje je bajtovsko, a magistrala podataka je&lt;br /&gt;
8-bitna) iz memoriju u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 200&lt;br /&gt;
# 100&lt;br /&gt;
# 1&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;400&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GRUPA 2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 1&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 201&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali Će DMA kontroler obaviti prilikom transfera bloka od 50 bajtova (adresiranje je bajtovsko, a magistrala podataka je 8-bitna) sa periferie u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 100&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 0&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;50&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Adresni prostor dvoadresnog procesora je 4G adresibilnih jedinica, a adresiranje je na nivou 32-bitne reci. Ulazno/izlazni adresni prostori je memorijski mapiran. Magistrala je sinhrona. Naznaciti sve relevantne linije sistemske magistrale i precizno naznačiti širine adresne i magistrale podataka.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A_{31} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{29} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== GRUPA 3 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 7 je Start, bit 4 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1-ulaz, O-izlaz). Bit 0 statusnog registra je Ready bit. U kom stanju se nalazi kontroler periferije ako su CR=91h, SR=01h?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od procesora.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Čeka da procesor pročita podatak iz DR.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od periferijske jedinice.&lt;br /&gt;
# Čeka da periferijska jedinica pročita podatak iz DR.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Inicijalizacija prenosa iz memorije u memoriju preko DMA kontrolera podrazumeva inicializaciju:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ništa od ponuđenog.&amp;lt;/span&amp;gt;&lt;br /&gt;
# registara ADR_SCR, CNTR i CR DMA kontrolera i CR registra periferije.&lt;br /&gt;
# registara ADR_SRC, CNTR I SR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, CNTR i CR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, ADR DST I CR DMA kontrolera.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memoriski adresni prostori su razdvojeni, a magistrala je asinhrona. Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=0, WR=1, M/\overline{IO}=1, FC=1&amp;lt;/math&amp;gt;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Zapocet ciklus upisa na periferiju&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Zavrsen ciklus upisa u memoriju&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nijedan od ponuđenih odgovora&lt;br /&gt;
# Zavrsen ciklus upisa na periferiju&lt;br /&gt;
# Zapocet ciklus upisa na memoriju&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&amp;lt;!-- Zameniti sa nazivom predmeta --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6217</id>
		<title>Архитектура рачунара/Улазни тестови Лаб 2 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6217"/>
		<updated>2023-05-26T15:49:25Z</updated>

		<summary type="html">&lt;p&gt;Pop: Pop преместио је страницу AR/Улазни тестови за лаб2 2023 на Архитектура рачунара/Улазни тестови за лаб2 2023 без остављања преусмерења&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Примери улазних тестова за лабораторију 2 из предмета Архитектура рачуанара за 2023 годину.&#039;&#039;&#039; održan je XX. meseca i trajao je XX.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== GRUPA 1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 201&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memorijski adresni prostori su razdvojeni, a magistrala je sinhrona.&lt;br /&gt;
Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=1, WR=0, M/\overline{IO}&amp;lt;/math&amp;gt;=0?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ciklus upisa na periferiju&lt;br /&gt;
# Ciklus čitanja iz memorije&lt;br /&gt;
# Ciklus upisa u memoriju&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ciklus čitanja sa periferije&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali ce DMA kontroler obaviti pilikom transfera bloka od 200 batova (adresiranje je bajtovsko, a magistrala podataka je&lt;br /&gt;
8-bitna) iz memoriju u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 200&lt;br /&gt;
# 100&lt;br /&gt;
# 1&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;400&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GRUPA 2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 1&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 201&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali Će DMA kontroler obaviti prilikom transfera bloka od 50 bajtova (adresiranje je bajtovsko, a magistrala podataka je 8-bitna) sa periferie u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 100&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 0&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;50&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Adresni prostor dvoadresnog procesora je 4G adresibilnih jedinica, a adresiranje je na nivou 32-bitne reci. Ulazno/izlazni adresni prostori je memorijski mapiran. Magistrala je sinhrona. Naznaciti sve relevantne linije sistemske magistrale i precizno naznačiti širine adresne i magistrale podataka.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A_{31} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{29} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== GRUPA 3 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 7 je Start, bit 4 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1-ulaz, O-izlaz). Bit 0 statusnog registra je Ready bit. U kom stanju se nalazi kontroler periferije ako su CR=91h, SR=01h?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od procesora.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Čeka da procesor pročita podatak iz DR.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od periferijske jedinice.&lt;br /&gt;
# Čeka da periferijska jedinica pročita podatak iz DR.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Inicijalizacija prenosa iz memorije u memoriju preko DMA kontrolera podrazumeva inicializaciju:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ništa od ponuđenog.&amp;lt;/span&amp;gt;&lt;br /&gt;
# registara ADR_SCR, CNTR i CR DMA kontrolera i CR registra periferije.&lt;br /&gt;
# registara ADR_SRC, CNTR I SR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, CNTR i CR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, ADR DST I CR DMA kontrolera.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memoriski adresni prostori su razdvojeni, a magistrala je asinhrona. Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=0, WR=1, M/\overline{IO}=1, FC=1&amp;lt;/math&amp;gt;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Zapocet ciklus upisa na periferiju&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Zavrsen ciklus upisa u memoriju&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nijedan od ponuđenih odgovora&lt;br /&gt;
# Zavrsen ciklus upisa na periferiju&lt;br /&gt;
# Zapocet ciklus upisa na memoriju&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&amp;lt;!-- Zameniti sa nazivom predmeta --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6216</id>
		<title>Архитектура рачунара/Улазни тестови Лаб 2 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D1%80%D0%B0%D1%87%D1%83%D0%BD%D0%B0%D1%80%D0%B0/%D0%A3%D0%BB%D0%B0%D0%B7%D0%BD%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8_%D0%9B%D0%B0%D0%B1_2_2023&amp;diff=6216"/>
		<updated>2023-05-26T15:46:53Z</updated>

		<summary type="html">&lt;p&gt;Pop: Нова страница: {{tocright}} &amp;#039;&amp;#039;&amp;#039;Примери улазних тестова за лабораторију 2 из предмета Архитектура рачуанара за 2023 годину.&amp;#039;&amp;#039;&amp;#039; održan je XX. meseca i trajao je XX. {{rešenja}}  == GRUPA 1 == === 1. zadatak === Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Примери улазних тестова за лабораторију 2 из предмета Архитектура рачуанара за 2023 годину.&#039;&#039;&#039; održan je XX. meseca i trajao je XX.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== GRUPA 1 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 201&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memorijski adresni prostori su razdvojeni, a magistrala je sinhrona.&lt;br /&gt;
Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=1, WR=0, M/\overline{IO}&amp;lt;/math&amp;gt;=0?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ciklus upisa na periferiju&lt;br /&gt;
# Ciklus čitanja iz memorije&lt;br /&gt;
# Ciklus upisa u memoriju&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ciklus čitanja sa periferije&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali ce DMA kontroler obaviti pilikom transfera bloka od 200 batova (adresiranje je bajtovsko, a magistrala podataka je&lt;br /&gt;
8-bitna) iz memoriju u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 200&lt;br /&gt;
# 100&lt;br /&gt;
# 1&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;400&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GRUPA 2 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Ukoliko se vrši prenos 200 bajtova podataka sa periferije u memoriju u sistemu bez DMA kontrolera koliko će puta biti generisan zahtev za prekidom ukoliko se sa periferije čita na osnovu 8 bitnog podatka? Format upravljačkog registra kontrolera periferije je sledeći: bit 0 je Enable bit, bit 4 je Start bit, a bit 5 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1-ulaz, 0-izlaz), a njegov sadržaj 31h.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 199&lt;br /&gt;
# 1&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;200&amp;lt;/span&amp;gt;&lt;br /&gt;
# 201&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt;(1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Koliko ciklusa na magistrali Će DMA kontroler obaviti prilikom transfera bloka od 50 bajtova (adresiranje je bajtovsko, a magistrala podataka je 8-bitna) sa periferie u memoriju?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 100&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# 0&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;50&amp;lt;/span&amp;gt;&lt;br /&gt;
# 1&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Adresni prostor dvoadresnog procesora je 4G adresibilnih jedinica, a adresiranje je na nivou 32-bitne reci. Ulazno/izlazni adresni prostori je memorijski mapiran. Magistrala je sinhrona. Naznaciti sve relevantne linije sistemske magistrale i precizno naznačiti širine adresne i magistrale podataka.&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;math&amp;gt;A_{31} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
# Ništa od ponuđenog&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{30} - A_0, D_{31} - D_0, RD, WR&amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;A_{29} - A_0, D_{31} - D_0, RD, WR, M/\overline{IO}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== GRUPA 3 ==&lt;br /&gt;
=== 1. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 4 je Start, bit 5 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1 -ulaz, 0-izlaz). Prenos podataka iz memorije na periferiju, ispitivanjem bita spremnosti zadaje se upisom koje vrednosti u CR?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# 31h&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;10h&amp;lt;/span&amp;gt;&lt;br /&gt;
# 11h&lt;br /&gt;
# 30h&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 2. zadatak ===&lt;br /&gt;
Format upravljačkog registra kontrolera periferije je sledeci: bit 7 je Start, bit 4 je Enable, a bit 0 je &amp;lt;math&amp;gt;I/\overline{O}&amp;lt;/math&amp;gt; (1-ulaz, O-izlaz). Bit 0 statusnog registra je Ready bit. U kom stanju se nalazi kontroler periferije ako su CR=91h, SR=01h?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od procesora.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Čeka da procesor pročita podatak iz DR.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Čeka na upis sledećeg podatka od periferijske jedinice.&lt;br /&gt;
# Čeka da periferijska jedinica pročita podatak iz DR.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
=== 3. zadatak ===&lt;br /&gt;
Inicijalizacija prenosa iz memorije u memoriju preko DMA kontrolera podrazumeva inicializaciju:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Ništa od ponuđenog.&amp;lt;/span&amp;gt;&lt;br /&gt;
# registara ADR_SCR, CNTR i CR DMA kontrolera i CR registra periferije.&lt;br /&gt;
# registara ADR_SRC, CNTR I SR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, CNTR i CR DMA kontrolera.&lt;br /&gt;
# registara ADR_SRC, ADR DST I CR DMA kontrolera.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== 4. zadatak ===&lt;br /&gt;
Kod nekog jednoadresnog procesora ulazno/izlazni i memoriski adresni prostori su razdvojeni, a magistrala je asinhrona. Koje je dešavanje na magistrali, ako su signali kontrolne magistrale: &amp;lt;math&amp;gt;RD=0, WR=1, M/\overline{IO}=1, FC=1&amp;lt;/math&amp;gt;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# Zapocet ciklus upisa na periferiju&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Zavrsen ciklus upisa u memoriju&amp;lt;/span&amp;gt;&lt;br /&gt;
# Nijedan od ponuđenih odgovora&lt;br /&gt;
# Zavrsen ciklus upisa na periferiju&lt;br /&gt;
# Zapocet ciklus upisa na memoriju&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Архитектура рачунара]]&amp;lt;!-- Zameniti sa nazivom predmeta --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6106</id>
		<title>ОО2/К 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6106"/>
		<updated>2023-04-23T18:35:47Z</updated>

		<summary type="html">&lt;p&gt;Pop: Dodat 8. zadatak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Колоквијум 2023. godine&#039;&#039;&#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Којом командом се следећи програмски код написан у фајлу са именом &amp;quot;Pozdrav.java&amp;quot; преводи и креира бајткод &amp;quot;Pozdrav.class&amp;quot;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Pozdrav.java&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
          System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# java Pozdrav&lt;br /&gt;
# java Pozdrav.java&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;javac Pozdrav.java&amp;lt;/span&amp;gt;&lt;br /&gt;
# javac Pozdrav.class&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за програмски језик &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;goto&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;foreach&#039;&#039;&#039; је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;final&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч која може да се користи алтернативно са резервисаном речју &#039;&#039;&#039;final&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;quot;&amp;gt;&lt;br /&gt;
# (без модификатора, подразумевано) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у коду датог пакета.&amp;lt;/span&amp;gt;&lt;br /&gt;
# private &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у класи у којој је дефенисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# public &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# protected &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за кључну реч &#039;&#039;&#039;this&#039;&#039;&#039; на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се користи за позив другог конструктора исте класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се проследи као ствaрни аргумент неком методу.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Може да се користи као референца унутар статичких метода.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Представља референцу на објекат коме се управо приступа.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;У неком фајлу са изворним кодом једног програма може да постоји декларација &#039;&#039;&#039;package p.sp;&#039;&#039;&#039; иако ни у једном фајлу истог програма не постоји декларација &#039;&#039;&#039;package p;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Могуће је дефинисати тип &#039;&#039;&#039;А&#039;&#039;&#039; у пакету &#039;&#039;&#039;p&#039;&#039;&#039; уколико је истоимени тип већ дефинисан у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Уколико постоје пакети &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;p.sp&#039;&#039;&#039; увођењем свих чланова пакета &#039;&#039;&#039;p&#039;&#039;&#039; наредбом &#039;&#039;&#039;import p.*;&#039;&#039;&#039; уводе се и сви чланови пакета &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (&#039;&#039;default&#039;&#039;) пакет.&amp;lt;/span&amp;gt;&lt;br /&gt;
#Могуће је приступити члану са пакетски правом приступа класе &#039;&#039;&#039;А&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p&#039;&#039;&#039; из метода класе &#039;&#039;&#039;В&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public void f(B x) {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public void f(D x) {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        B b = new B();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
        b = new D();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Ovde se primenjuje overloading, a ne overriding.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    static void f() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B implements I {&lt;br /&gt;
    public D() {&lt;br /&gt;
        I.f();&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
За сваки од следећих програма  на језику &#039;&#039;Java&#039;&#039; навести да ли се преводи или не.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Преводи се, Не преводи се&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
    public static void f() {&lt;br /&gt;
        throw new Exception();&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Не преводи се&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
    public static void f() {&lt;br /&gt;
        throw new Exception();&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        try {&lt;br /&gt;
            f();&lt;br /&gt;
        } catch (Exception e) {}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Не преводи се&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        try {&lt;br /&gt;
            throw new Exception();&lt;br /&gt;
        } catch (Exception e) {}&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Преводи се&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Које дефиниције угњеждених типова на језику &#039;&#039;Java&#039;&#039; су исправне?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;static class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;abstract class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# local class C {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; final class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; static interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# annonymous class {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
Шта може да стоји уместо ### да би следећи код написан на језику &#039;&#039;Java&#039;&#039; успешно превео?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    int f(int a);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        int b = 3;&lt;br /&gt;
        ###&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (double a) -&amp;gt; a + b;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; a + b;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; {a*a; return a;}&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; {b--; return a + b;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; { double r = a + b; return r;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6105</id>
		<title>ОО2/К 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6105"/>
		<updated>2023-04-23T18:21:03Z</updated>

		<summary type="html">&lt;p&gt;Pop: Dodat 10. zadatak&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Колоквијум 2023. godine&#039;&#039;&#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Којом командом се следећи програмски код написан у фајлу са именом &amp;quot;Pozdrav.java&amp;quot; преводи и креира бајткод &amp;quot;Pozdrav.class&amp;quot;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Pozdrav.java&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
          System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# java Pozdrav&lt;br /&gt;
# java Pozdrav.java&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;javac Pozdrav.java&amp;lt;/span&amp;gt;&lt;br /&gt;
# javac Pozdrav.class&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за програмски језик &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;goto&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;foreach&#039;&#039;&#039; је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;final&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч која може да се користи алтернативно са резервисаном речју &#039;&#039;&#039;final&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;quot;&amp;gt;&lt;br /&gt;
# (без модификатора, подразумевано) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у коду датог пакета.&amp;lt;/span&amp;gt;&lt;br /&gt;
# private &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у класи у којој је дефенисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# public &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# protected &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за кључну реч &#039;&#039;&#039;this&#039;&#039;&#039; на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се користи за позив другог конструктора исте класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се проследи као ствaрни аргумент неком методу.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Може да се користи као референца унутар статичких метода.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Представља референцу на објекат коме се управо приступа.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;У неком фајлу са изворним кодом једног програма може да постоји декларација &#039;&#039;&#039;package p.sp;&#039;&#039;&#039; иако ни у једном фајлу истог програма не постоји декларација &#039;&#039;&#039;package p;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Могуће је дефинисати тип &#039;&#039;&#039;А&#039;&#039;&#039; у пакету &#039;&#039;&#039;p&#039;&#039;&#039; уколико је истоимени тип већ дефинисан у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Уколико постоје пакети &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;p.sp&#039;&#039;&#039; увођењем свих чланова пакета &#039;&#039;&#039;p&#039;&#039;&#039; наредбом &#039;&#039;&#039;import p.*;&#039;&#039;&#039; уводе се и сви чланови пакета &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (&#039;&#039;default&#039;&#039;) пакет.&amp;lt;/span&amp;gt;&lt;br /&gt;
#Могуће је приступити члану са пакетски правом приступа класе &#039;&#039;&#039;А&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p&#039;&#039;&#039; из метода класе &#039;&#039;&#039;В&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public void f(B x) {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public void f(D x) {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        B b = new B();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
        b = new D();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Ovde se primenjuje overloading, a ne overriding.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    static void f() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B implements I {&lt;br /&gt;
    public D() {&lt;br /&gt;
        I.f();&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Које дефиниције угњеждених типова на језику &#039;&#039;Java&#039;&#039; су исправне?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;static class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;abstract class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# local class C {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; final class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; static interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# annonymous class {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
Шта може да стоји уместо ### да би следећи код написан на језику &#039;&#039;Java&#039;&#039; успешно превео?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    int f(int a);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        int b = 3;&lt;br /&gt;
        ###&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (double a) -&amp;gt; a + b;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; a + b;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; {a*a; return a;}&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; {b--; return a + b;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# &amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;I c = (int a) -&amp;gt; { double r = a + b; return r;}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6104</id>
		<title>ОО2/К 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6104"/>
		<updated>2023-04-23T18:09:55Z</updated>

		<summary type="html">&lt;p&gt;Pop: Pravopisne greske&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Колоквијум 2023. godine&#039;&#039;&#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Којом командом се следећи програмски код написан у фајлу са именом &amp;quot;Pozdrav.java&amp;quot; преводи и креира бајткод &amp;quot;Pozdrav.class&amp;quot;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Pozdrav.java&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
          System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# java Pozdrav&lt;br /&gt;
# java Pozdrav.java&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;javac Pozdrav.java&amp;lt;/span&amp;gt;&lt;br /&gt;
# javac Pozdrav.class&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за програмски језик &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;goto&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;foreach&#039;&#039;&#039; је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;final&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч која може да се користи алтернативно са резервисаном речју &#039;&#039;&#039;final&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;quot;&amp;gt;&lt;br /&gt;
# (без модификатора, подразумевано) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у коду датог пакета.&amp;lt;/span&amp;gt;&lt;br /&gt;
# private &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у класи у којој је дефенисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# public &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# protected &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за кључну реч &#039;&#039;&#039;this&#039;&#039;&#039; на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се користи за позив другог конструктора исте класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се проследи као ствaрни аргумент неком методу.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Може да се користи као референца унутар статичких метода.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Представља референцу на објекат коме се управо приступа.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;У неком фајлу са изворним кодом једног програма може да постоји декларација &#039;&#039;&#039;package p.sp;&#039;&#039;&#039; иако ни у једном фајлу истог програма не постоји декларација &#039;&#039;&#039;package p;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Могуће је дефинисати тип &#039;&#039;&#039;А&#039;&#039;&#039; у пакету &#039;&#039;&#039;p&#039;&#039;&#039; уколико је истоимени тип већ дефинисан у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Уколико постоје пакети &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;p.sp&#039;&#039;&#039; увођењем свих чланова пакета &#039;&#039;&#039;p&#039;&#039;&#039; наредбом &#039;&#039;&#039;import p.*;&#039;&#039;&#039; уводе се и сви чланови пакета &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (&#039;&#039;default&#039;&#039;) пакет.&amp;lt;/span&amp;gt;&lt;br /&gt;
#Могуће је приступити члану са пакетски правом приступа класе &#039;&#039;&#039;А&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p&#039;&#039;&#039; из метода класе &#039;&#039;&#039;В&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class B {&lt;br /&gt;
    public void f(B x) {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public void f(D x) {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        B b = new B();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
        b = new D();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Ovde se primenjuje overloading, a ne overriding.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    static void f() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B implements I {&lt;br /&gt;
    public D() {&lt;br /&gt;
        I.f();&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Које дефиниције угњеждених типова на језику &#039;&#039;Java&#039;&#039; су исправне?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;static class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;abstract class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# local class C {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; final class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; static interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# annonymous class {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6103</id>
		<title>ОО2/К 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6103"/>
		<updated>2023-04-23T18:09:24Z</updated>

		<summary type="html">&lt;p&gt;Pop: Pravopisne greske&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Колоквијум 2023. godine&#039;&#039;&#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Којом командом се следећи програмски код написан у фајлу са именом &amp;quot;Pozdrav.java&amp;quot; преводи и креира бајткод &amp;quot;Pozdrav.class&amp;quot;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Pozdrav.java&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
          System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# java Pozdrav&lt;br /&gt;
# java Pozdrav.java&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;javac Pozdrav.java&amp;lt;/span&amp;gt;&lt;br /&gt;
# javac Pozdrav.class&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за програмски језик &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;goto&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;foreach&#039;&#039;&#039; је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;final&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч која може да се користи алтернативно са резервисаном речју &#039;&#039;&#039;final&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;quot;&amp;gt;&lt;br /&gt;
# (без модификатора, подразумевано) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у коду датог пакета.&amp;lt;/span&amp;gt;&lt;br /&gt;
# private &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у класи у којој је дефенисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# public &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# protected &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за кључну реч &#039;&#039;&#039;this&#039;&#039;&#039; на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се користи за позив другог конструктора исте класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се проследи као ствaрни аргумент неком методу.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Може да се користи као референца унутар статичких метода.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Представља референцу на објекат коме се управо приступа.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;У неком фајлу са изворним кодом једног програма може да постоји декларација &#039;&#039;&#039;package p.sp;&#039;&#039;&#039; иако ни у једном фајлу истог програма не постоји декларација &#039;&#039;&#039;package p;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Могуће је дефинисати тип &#039;&#039;&#039;А&#039;&#039;&#039; у пакету &#039;&#039;&#039;p&#039;&#039;&#039; уколико је истоимени тип већ дефинисан у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Уколико постоје пакети &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;p.sp&#039;&#039;&#039; увођењем свих чланова пакета &#039;&#039;&#039;p&#039;&#039;&#039; наредбом &#039;&#039;&#039;import p.*;&#039;&#039;&#039; уводе се и сви чланови пакета &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (&#039;&#039;default&#039;&#039;) пакет.&amp;lt;/span&amp;gt;&lt;br /&gt;
#Могуће је приступити члану са пакетски правом приступа класе &#039;&#039;&#039;А&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p&#039;&#039;&#039; из метода класе &#039;&#039;&#039;В&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;?Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Б {&lt;br /&gt;
    public void f(B x) {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public void f(D x) {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        B b = new B();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
        b = new D();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Ovde se primenjuje overloading, a ne overriding.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;? Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    static void f() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class B {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B implements I {&lt;br /&gt;
    public D() {&lt;br /&gt;
        I.f();&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Које дефиниције угњеждених типова на језику &#039;&#039;Java&#039;&#039; су исправне?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;static class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;abstract class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# local class C {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; final class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; static interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# annonymous class {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6100</id>
		<title>ОО2/К 2023</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9E%D0%9E2/%D0%9A_2023&amp;diff=6100"/>
		<updated>2023-04-22T16:51:52Z</updated>

		<summary type="html">&lt;p&gt;Pop: Нова страница: {{tocright}} &amp;#039;&amp;#039;&amp;#039;Колоквијум 2023. godine&amp;#039;&amp;#039;&amp;#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java. {{rešenja}}  == 1. za…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Колоквијум 2023. godine&#039;&#039;&#039; на РТИ (и осталим ЕР одсецима) одржан је 22. арпила У 9:15 часова (постојала је само једна група). Од области дошли су увод, преглед, класе, пакети, извођење, интерфејси, изузеци и угњеждени типови на програмском језику Java.&lt;br /&gt;
{{rešenja}}&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
Којом командом се следећи програмски код написан у фајлу са именом &amp;quot;Pozdrav.java&amp;quot; преводи и креира бајткод &amp;quot;Pozdrav.class&amp;quot;?&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
//Pozdrav.java&lt;br /&gt;
public class Pozdrav {&lt;br /&gt;
     public static void main(String[] args) {&lt;br /&gt;
          System.out.print(&amp;quot;Zdravo!&amp;quot;);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;single&amp;quot;&amp;gt;&lt;br /&gt;
# java Pozdrav&lt;br /&gt;
# java Pozdrav.java&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;javac Pozdrav.java&amp;lt;/span&amp;gt;&lt;br /&gt;
# javac Pozdrav.class&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за програмски језик &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;goto&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;foreach&#039;&#039;&#039; је резервисана реч и користи се у инструкцији петље за обилазак свих елемената низа.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;final&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;&#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч и не може се користити за име порменљиве.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;const&#039;&#039;&#039; је резервисана реч која може да се користи алтернативно са резервисаном речју &#039;&#039;&#039;final&#039;&#039;&#039;. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
Не узимајући у обзир угњеждене и обухватајуће (спољашње) класе, спојити наведене модификаторе права приступа са њиховим одговарајућим описом на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;select&amp;quot; data-options=&amp;quot;Изабери..., Члан је доступан само у коду датог пакета. , Члан је доступан само у класи у којој је дефенисан., Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан., Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;quot;&amp;gt;&lt;br /&gt;
# (без модификатора, подразумевано) &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у коду датог пакета.&amp;lt;/span&amp;gt;&lt;br /&gt;
# private &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у класи у којој је дефенисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# public &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан на свим местима на којима се може приступити и типу у којем је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
# protected &amp;lt;span class=&amp;quot;spoiler&amp;quot;&amp;gt;Члан је доступан само у изведеним поткласама и коду целог пакета у којем се налази класа у којој је члан дефинисан.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна за кључну реч &#039;&#039;&#039;this&#039;&#039;&#039; на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се користи за позив другог конструктора исте класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Може да се проследи као ствaрни аргумент неком методу.&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Користи се имплицитно (без навођења) као референца на текући објекат приликом директног именовања нестатичких чланова класе.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Може да се користи као референца унутар статичких метода.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Представља референцу на објекат коме се управо приступа.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 5. zadatak ==&lt;br /&gt;
Која од следећих тврђења су тачна на програмском језику &#039;&#039;Java&#039;&#039;?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;У неком фајлу са изворним кодом једног програма може да постоји декларација &#039;&#039;&#039;package p.sp;&#039;&#039;&#039; иако ни у једном фајлу истог програма не постоји декларација &#039;&#039;&#039;package p;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Могуће је дефинисати тип &#039;&#039;&#039;А&#039;&#039;&#039; у пакету &#039;&#039;&#039;p&#039;&#039;&#039; уколико је истоимени тип већ дефинисан у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
# Уколико постоје пакети &#039;&#039;&#039;p&#039;&#039;&#039; и &#039;&#039;&#039;p.sp&#039;&#039;&#039; увођењем свих чланова пакета &#039;&#039;&#039;p&#039;&#039;&#039; наредбом &#039;&#039;&#039;import p.*;&#039;&#039;&#039; уводе се и сви чланови пакета &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;Типови подата у изворној датотеци без декларације пакета биће смештани у безимени (&#039;&#039;default&#039;&#039;) пакет.&amp;lt;/span&amp;gt;&lt;br /&gt;
#Могуће је приступити члану са пакетски правом приступа класе &#039;&#039;&#039;А&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p&#039;&#039;&#039; из метода класе &#039;&#039;&#039;В&#039;&#039;&#039; дефинисане у пакету &#039;&#039;&#039;p.sp&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 6. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;?Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Б {&lt;br /&gt;
    public void f(B x) {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B {&lt;br /&gt;
    public void f(D x) {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        B b = new B();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
        b = new D();&lt;br /&gt;
        b.f(new D());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;11&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Objašnjenje: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;explanation&amp;quot;&amp;gt;Ovde se primenjuje overloading, a ne overriding.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7. zadatak ==&lt;br /&gt;
Шта исписује следећи програм на прогрмаском језику &#039;&#039;Java&#039;&#039;?Уписати &#039;&#039;&#039;NP&#039;&#039;&#039; ако се програм не преводи.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface I {&lt;br /&gt;
    static void f() {&lt;br /&gt;
        System.out.println(1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Б {&lt;br /&gt;
    public void f() {&lt;br /&gt;
        System.out.println(2);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class D extends B implements I {&lt;br /&gt;
    public D() {&lt;br /&gt;
        I.f();&lt;br /&gt;
        f();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        new D();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Odgovor: &amp;lt;span class=&amp;quot;spoiler&amp;quot; data-solution=&amp;quot;text&amp;quot;&amp;gt;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 8. zadatak ==&lt;br /&gt;
&lt;br /&gt;
== 9. zadatak ==&lt;br /&gt;
Које дефиниције угњеждених типова на језику &#039;&#039;Java&#039;&#039; су исправне?&lt;br /&gt;
&lt;br /&gt;
Изаберите један или више одговора:&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot; data-solution=&amp;quot;multiple&amp;quot;&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;static class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt;abstract class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# local class C {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; final class C {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; static interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
# annonymous class {}&lt;br /&gt;
# &amp;lt;span class=&amp;quot;solution&amp;quot;&amp;gt; interface I {}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== 10. zadatak ==&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:ОО2]]&lt;/div&gt;</summary>
		<author><name>Pop</name></author>
	</entry>
</feed>