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