ОО2/Јун 2022 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(7. i 8. + formatiranje)
м (Formatiranje i ispravke; promenio sam kod u 3. zadatku jer inače označeni odgovori nisu uopšte bili tačni zbog statičkog konteksta)
 
(Нису приказане 3 међуизмене другог корисника)
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
'''Јунски испитни рок 2022.''' одржан је 7. јуна 2022. године у 3 групе (Г1-ИР, Г2-СИ, Г3-СИ).
'''Јунски испитни рок 2022. године''' одржан је 7. јуна у 3 групе (Г1-ИР, Г2-СИ, Г3-СИ).
{{rešenja}}
{{rešenja}}


Ред 6: Ред 6:
=== 1. задатак ===
=== 1. задатак ===
Која од следећих тврђења су тачна за програмски језик ''Јава''?
Која од следећих тврђења су тачна за програмски језик ''Јава''?
Изаберите један одговор
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# <code>goto</code> није резервисана реч у ''Јави'' и може се користити као идентификатор.
# <code>goto</code> није резервисана реч у Јави и може се користити као идентификатор.
# <code>goto</code> је резервисана реч у ''Јави'', али може да се користи за скок на означену наредбу.
# <code>goto</code> је резервисана реч у Јави, али може да се користи за скок на означену наредбу.
# <span class="solution"><code>goto</code> је резервисана реч у ''Јави'', али не може да се користи за скок на означену наредбу.</span>
# <span class="solution"><code>goto</code> је резервисана реч у Јави, али не може да се користи за скок на означену наредбу.</span>
</div>
</div>


=== 2. задатак ===
=== 2. задатак ===
Статички инициализациони блокови на језику ''Јава''
Статички инициализациони блокови на језику ''Јава'':
 
Изаберите један или више одговора.
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# могу да доведу до проблема циклике статичке иницијализације која доводи до блокирања програма.
# могу да доведу до проблема цикличке статичке иницијализације која доводи до блокирања програма.
# <span class="solution">се извршавају по пуњењу класе у меморију.</span>
# <span class="solution">се извршавају по пуњењу класе у меморију.</span>
# се извршавају на почетку извршења сваког од конструктора класе.
# се извршавају на почетку извршења сваког од конструктора класе.
Ред 30: Ред 26:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
package p;
package p;
public class A {
public class A {
    private int a;
    private int a;
    int b;
    int b;
    protected int c;
    protected int c;
    public int d;
    public int d;
}
}
</syntaxhighlight>
</syntaxhighlight>
Ред 40: Ред 37:
package p;
package p;
public class B extends A {
public class B extends A {
    public static void main(String[] args) {
    public void m() {
          ####
        ####
    }
    }
    public static void main(String[] args) {
        new B().m();
    }
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution"><code>b</code></span>
# <code class="solution">b = 1;</code>
# <span class="solution"><code>c</code></span>
# <code class="solution">c = 1;</code>
# <code>A.a</code>
# <code>A.a = 1;</code>
# <span class="solution"><code>d</code></span>
# <code class="solution">d = 1;</code>
# <code>a</code>
# <code>a = 1;</code>
</div>
</div>


=== 4. задатак ===
=== 4. задатак ===
Означити тврдње које су тачне за интерфејсе на програмском језику ''Јава''.
Означити тврдње које су тачне за интерфејсе на програмском језику Јава.
 
Изаберите један или више одговора.
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# Методи интерфејса могу да буду јавни (<code>public</code>), заштићени (<code>protected</code>) и пакетски.
# Методи интерфејса могу да буду јавни (<code>public</code>), заштићени (<code>protected</code>) и пакетски.
Ред 62: Ред 60:
# <span class="solution">Интерфејс може да се изведе из више других интерфејса.</span>
# <span class="solution">Интерфејс може да се изведе из више других интерфејса.</span>
# <span class="solution">Апстрактна класа која имплементира интерфејс не мора да имплементира све декларисане методе тог интерфејса.</span>
# <span class="solution">Апстрактна класа која имплементира интерфејс не мора да имплементира све декларисане методе тог интерфејса.</span>
# Класа може да се изведе помоћу кључне речи ''extends'' из интерфејса.
# Класа може да се изведе помоћу кључне речи <code>extends</code> из интерфејса.
</div>
</div>


Ред 71: Ред 69:
     { m(); }
     { m(); }
     public static void m() throws Exception { throw new Exception(); }
     public static void m() throws Exception { throw new Exception(); }
     public Test() throw Exception { System.out.print("1"); }
     public Test() throws Exception { System.out.print("1"); }
     public static void main(String[] args) {
     public static void main(String[] args) {
           try {
           try {
Ред 82: Ред 80:
}
}
</syntaxhighlight>
</syntaxhighlight>
Одговор: <span class="spoiler" data-solution="text">3</span>
'''Одговор:''' <span class="spoiler" data-solution="text">3</span>


=== 6. задатак ===
=== 6. задатак ===
Означити тврдње које су тачне за нити на програмском језику ''Јава''.
Означити тврдње које су тачне за нити на програмском језику Јава.
 
Изаберите један или више одговора.
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Нити нижег приоритета могу да се извршавају и када нити вишег приоритета нису блокиране.</span>
# <span class="solution">Нити нижег приоритета могу да се извршавају и када нити вишег приоритета нису блокиране.</span>
Ред 97: Ред 93:


=== 7. задатак ===
=== 7. задатак ===
Које од наведених твдрњи су тачне за управљаче распореда (''layout manager'') у ''AWT'' пакету библиотеке језика ''Јава''.
Које од наведених твдрњи су тачне за управљаче распореда (''layout manager'') у ''AWT'' пакету библиотеке језика Јава.
 
Изаберите један или више одговора.
<div class="abc-list" data-solution="multiple">
<div class="abc-list" data-solution="multiple">
# <span class="solution"><code>FlowLayout</code> је библиотечка класа управљача распореда која распоређује компоненте слева-удесно у потребном броју редова.</span>
# <span class="solution"><code>FlowLayout</code> је библиотечка класа управљача распореда која распоређује компоненте слева-удесно у потребном броју редова.</span>
Ред 105: Ред 99:
# <code>StreamLayout</code> је библиотечка класа управљача распореда која распоређује компоненте одозго-наниже у потребном броју колона.
# <code>StreamLayout</code> је библиотечка класа управљача распореда која распоређује компоненте одозго-наниже у потребном броју колона.
# <span class="solution">Подразумевани управља распореда за прозоре је <code>BorderLayout</code>.</span>
# <span class="solution">Подразумевани управља распореда за прозоре је <code>BorderLayout</code>.</span>
# Подразумевани управља распореда за панеле је <code>GridLayout</code>.
# Подразумевани управљач распореда за панеле је <code>GridLayout</code>.
</div>
</div>


=== 8. задатак ===
=== 8. задатак ===
Класа ''MenuBar'' изведена је директно из класе
Класа ''MenuBar'' изведена је директно из класе
Изаберите један одговор
<div class="abc-list" data-solution="single">
<div class="abc-list" data-solution="single">
# <code>Component</code>
# <code>Component</code>
# <code>MenuItem</code>
# <code>MenuItem</code>
# <code>MenuComponent</code>
# <code class="solution">MenuComponent</code>
# <code>Menu</code>
# <code>Menu</code>
# <code>MenuContainer</code>
# <code>MenuContainer</code>
</div>
</div>
=== 9. задатак ===
Означите тврдње које су тачне за контролне структуре на програмском језику ''C#''.
<div class="abc-list" data-solution="multiple">
# Инструкцијом <code>goto</code> може да се скаче на лабелу која се налази испред произвољне наредбе у неком методу.
# <span class="solution">Уколико се нека грана <code>switch</code> наредбе не завршава наредбом <code>break</code> или <code>goto</code> долази до грешке у превођењу.</span>
# <span class="solution">У језику постоји наредба <code>continue</code>.</span>
# <span class="solution">Искакање из <code>try</code> блока коришћењем <code>goto</code> наредбе доводи до извршавања <code>finally</code> блока.</span>
# <span class="solution">Коришћењем <code>foreach</code> петље може се итерирати кроз колекцију која импелементира интерфејс <code>IEnumerable</code>.</span>
</div>
=== 10. задатак ===
Шта исписује следећи програм на језику ''C#''?
<syntaxhighlight lang="csharp">
class Program {
    static void M1(ref int i) { System.Console.Write(i++); }
    static void M2(ref int i) { System.Console.Write(i/2); }
    static void M3(ref int i) { System.Console.Write(i--); }
    public delegate void Delegat(ref int i);
    public static void Main(string[] args) {
        Delegat d1 = new Delegat(M1);
        Delegat d2 = new Delegat(M2);
        Delegat d3 = d1 + d2;
        Delegat d = d3 + d1;
        d += new Delegat(M3) + d3;
        d -= d1;
        d -= d2;
        d -= new Delegat(M3);
        int i = 5;
        d(ref i);
    }
}
</syntaxhighlight>
'''Одговор:''' <span class="spoiler" data-solution="text">536</span>
[[Категорија:ОО2]]
[[Категорија:ОО2]]
[[Категорија:Рокови]]
[[Категорија:Рокови]]

Тренутна верзија на датум 9. фебруар 2023. у 02:58

Јунски испитни рок 2022. године одржан је 7. јуна у 3 групе (Г1-ИР, Г2-СИ, Г3-СИ).

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

Група 1

1. задатак

Која од следећих тврђења су тачна за програмски језик Јава?

  1. goto није резервисана реч у Јави и може се користити као идентификатор.
  2. goto је резервисана реч у Јави, али може да се користи за скок на означену наредбу.
  3. goto је резервисана реч у Јави, али не може да се користи за скок на означену наредбу.

2. задатак

Статички инициализациони блокови на језику Јава:

  1. могу да доведу до проблема цикличке статичке иницијализације која доводи до блокирања програма.
  2. се извршавају по пуњењу класе у меморију.
  3. се извршавају на почетку извршења сваког од конструктора класе.
  4. не смеју уопште да позивају методе које бацају изузетке
  5. могу да бацају изузетке ако сви конструктори класе наводе одговарајуће типове изузетака у својим throws клаузулама.

3. задатак

Шта може да стоји уместо #### да би се следећи изворни програм написан на програмском језику Java у наредна два фајла успешно превео?

package p;

public class A {
    private int a;
    int b;
    protected int c;
    public int d;
}
package p;
public class B extends A {
    public void m() {
        ####
    }
    public static void main(String[] args) {
        new B().m();
    }
}
  1. b = 1;
  2. c = 1;
  3. A.a = 1;
  4. d = 1;
  5. a = 1;

4. задатак

Означити тврдње које су тачне за интерфејсе на програмском језику Јава.

  1. Методи интерфејса могу да буду јавни (public), заштићени (protected) и пакетски.
  2. Класа која имплементира два интерфејса која имају исту декларацију подразумеваног (default) метода мора да редефинише овај метод.
  3. Интерфејс може да се изведе из више других интерфејса.
  4. Апстрактна класа која имплементира интерфејс не мора да имплементира све декларисане методе тог интерфејса.
  5. Класа може да се изведе помоћу кључне речи extends из интерфејса.

5. задатак

Шта исписује следећи програм на програмском језику Java? Уколико сматрате да се програм не преводи, унети "-".

public class Test {
     { m(); }
     public static void m() throws Exception { throw new Exception(); }
     public Test() throws Exception { System.out.print("1"); }
     public static void main(String[] args) {
          try {
               new Test();
               System.out.print("2");
          } catch(Exception e) {
               System.out.print("3");
          }
     }
}

Одговор: 3

6. задатак

Означити тврдње које су тачне за нити на програмском језику Јава.

  1. Нити нижег приоритета могу да се извршавају и када нити вишег приоритета нису блокиране.
  2. Приоритети могу да имају вредност између Thread.MIN_PRIORITY и Thread.MAX_PRIORITY.
  3. Метода getPriority() враћа приоритет текуће нити.
  4. Када се једом покрене нит, њен приоритет може накнадно да се промени.
  5. Када се креира нит, иницијално јој се додељује приоритет за један мањи од приоритета нити која ју је креирала.

7. задатак

Које од наведених твдрњи су тачне за управљаче распореда (layout manager) у AWT пакету библиотеке језика Јава.

  1. FlowLayout је библиотечка класа управљача распореда која распоређује компоненте слева-удесно у потребном броју редова.
  2. Свака класа управљача распореда је изведена из класе LayoutManager.
  3. StreamLayout је библиотечка класа управљача распореда која распоређује компоненте одозго-наниже у потребном броју колона.
  4. Подразумевани управља распореда за прозоре је BorderLayout.
  5. Подразумевани управљач распореда за панеле је GridLayout.

8. задатак

Класа MenuBar изведена је директно из класе

  1. Component
  2. MenuItem
  3. MenuComponent
  4. Menu
  5. MenuContainer

9. задатак

Означите тврдње које су тачне за контролне структуре на програмском језику C#.

  1. Инструкцијом goto може да се скаче на лабелу која се налази испред произвољне наредбе у неком методу.
  2. Уколико се нека грана switch наредбе не завршава наредбом break или goto долази до грешке у превођењу.
  3. У језику постоји наредба continue.
  4. Искакање из try блока коришћењем goto наредбе доводи до извршавања finally блока.
  5. Коришћењем foreach петље може се итерирати кроз колекцију која импелементира интерфејс IEnumerable.

10. задатак

Шта исписује следећи програм на језику C#?

class Program {
    static void M1(ref int i) { System.Console.Write(i++); }
    static void M2(ref int i) { System.Console.Write(i/2); }
    static void M3(ref int i) { System.Console.Write(i--); }

    public delegate void Delegat(ref int i);

    public static void Main(string[] args) {
        Delegat d1 = new Delegat(M1);
        Delegat d2 = new Delegat(M2);
        Delegat d3 = d1 + d2;
        Delegat d = d3 + d1;
        d += new Delegat(M3) + d3;
        d -= d1;
        d -= d2;
        d -= new Delegat(M3);
        int i = 5;
        d(ref i);
    }
}

Одговор: 536