Ласло Краус |
ИР2ОО2/СИ2ОО2 Испит 5. 9. 2008. |
|---|
Одговорити концизно (по једна или две реченице) и прецизно на следећа питaња:
а) (Java) Објаснити појмове "бајткод" (bytecode) и "Java виртуелна машина" (JVM)?
б) (Java) Шта су иницијализациони блокови, које врсте постоје и када се извршавају?
в) (Java) Ако се у изведеној класи дефинише поље са истим именом као у основној и ако му се приступи преко референце која је типа основне класе, а указује на објекат изведене класе – којем пољу се приступа и зашто?
г) (Java) Какав је препоручени поступак заустављања нити уместо коришћења метода stop()?
д) Које врсте скокова постоје у језику C# и које су разлике у односу на скокове у језику Java?
Написати на језику Java следећи пакет типова:

Написати на језику C# следеће типове:
// Ispred.cs
public delegate bool Ispred(int a, int b);
// Uporedi.cs
public class Uporedi {
public static bool Manje(int a, int b) { return a < b; }
public static bool Vece (int a, int b) { return a > b; }
}
// IUredjivac.cs
public interface IUredjivac {
void Uredi(int[] niz, Ispred isp);
}
// Izbor.cs
public class Izbor: IUredjivac {
public void Uredi(int[] niz, Ispred isp) {
for (int i=0; i<niz.Length-1; i++)
for (int j=i+1; j<niz.Length; j++)
if (isp(niz[j], niz[i])) { int p = niz[i]; niz[i] = niz[j]; niz[j] = p; }
}
}
// Program.cs
using System;
public class Program {
static void pisi(int[] niz) {
for (int i=0; i<niz.Length; Console.Write(niz[i++] + " "));
Console.WriteLine();
}
static void Main() {
int[] niz = {9,1,3,5,2,0,4,8,7,6};
pisi(niz);
IUredjivac u = new Izbor();
u.Uredi(niz, new Ispred(Uporedi.Manje));
pisi(niz);
u.Uredi(niz, new Ispred(Uporedi.Vece));
pisi(niz);
}
}
9 1 3 5 2 0 4 8 7 6
0 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 0
(⇒ почетак)
Copyright © 2010, Laslo Kraus
Последња ревизија: 1.9.2010.