Ласло Краус |
ИР2ОО2/СИ2ОО2 Испит 1. 3. 2008. |
|---|
Одговорити концизно (по једна или две реченице) и прецизно на следећа питaња:
а) (Java) Које подразумеване почетне вредности имају поља објеката неке класе и на које начине се то може променити?
б) (Java) Који су разлози да се метод неке класе прогласи final методом?
в) (Java) Шта је обавезно а шта препоручљиво при коришћењу методе wait()?
г) (Java) Укратко описати делегирани модел обраде догађаја.
д) (C#) Шта означава комбинација модификатора метода virtual и new?
Написати на језику Java следећи пакет типова:
Canvas која може да садржи произвољан број графика и која на својој површи приказује опсег реалних координата [xmin,xmax] и [ymin,ymax]. Може да се поставља приказани опсег координата, да се израчунају целобројне координате у пикселима за задате реалне координате (две методе; ix(x) = (sir−1)⋅(x−xmin)/(xmax−xmin); iy(y) = (vis−1)⋅(ymax−y)/(ymax−ymin); где су sir и vis – ширина и висина платна у целобројним пикселима), да се додаје график који се одмах исцртава, да се затражи исцртавање и прекидање исцртавања свих садржаних графика.

Написати на језику C# следеће типове (користити својства (properties), односно индексере, где је то примерено):
niz[ind]; индекс изван опсега пријавити изузетком типа једноставне класе). Вредност је једнака збиру вредности садржаних података. Текстуални облик је "(pod,…,pod)".
// Podatak.cs
interface Podatak {
double Vrednost { get; }
string ToString ();
}
// Skalar.cs
class Skalar: Podatak {
private double vr;
public Skalar (double v) { vr = v; }
public double Vrednost {
get { return vr; }
set { vr = value; }
}
public override string ToString () { return vr.ToString(); }
// GIndeks.cs
class GIndeks: System.Exception {}
// Niz.cs
class Niz: Podatak {
private Podatak[] niz;
public Niz (int duz) { niz = new Podatak [duz]; }
public int Duz{ get { return niz.Length; } }
public Podatak this[int ind] {
get {
if (ind<0 || ind >=Duz) throw new GIndeks ();
return niz[ind];
}
set {
if (ind<0 || ind >=Duz) throw new GIndeks ();
niz[ind] = value;
}
}
public double Vrednost {
get {
double v = 0;
for (int i=0; i<Duz; i++)
if (niz[i] != null) v += niz[i].Vrednost;
return v;
}
}
public override string ToString () {
string s = "(";
for (int i=0; i<Duz; i++) {
if (i > 0) s += ",";
s += niz[i];
}
return s + ")";
}
}
(⇒ почетак)
Copyright © 2010, Laslo Kraus
Последња ревизија: 1.9.2010.