![]() Ласло Краус |
Објекнто програмирање 2 - колоквијуми Први колоквијум 1. 12. 2013 |
|---|
Написати на језику Java следећи пакет типова (грешке пријављивати изузецима опремљеним текстовима порука):
T. Тежиште се поклапа са самом тачком. Текстуални опис је облика T(x,y).
[e,…,e] – где је e текстуални опис једног садржаног елемента.
M[t,…,t] – где је t текстуални опис једне садржане тачке.
Написати на језику Java програм који:
Користити константне параметре (не треба ништа учитавати с главног улаза).
ispitx (x је број радне станице за којим се ради). Лозинка на свакој радној станици је student.Z:.
// Pomerljiv.java
package figure;
public interface Pomerljiv {
Pomerljiv pomeri(double dx, double dy);
}
// Figura.java
package figure;
public abstract class Figura implements Pomerljiv {
public abstract char vrsta();
public abstract Tacka teziste();
public String toString() { return vrsta() + ""; }
}
// Tacka.java
package figure;
public class Tacka extends Figura {
private double x, y;
public Tacka(double a, double b) { x = a; y = b; }
public Tacka() {}
public double x() { return x; }
public double y() { return y; }
public Tacka pomeri(double dx, double dy) { x += dx; y += dy; return this; }
public char vrsta() { return 'T'; }
public Tacka teziste() { return this; }
public String toString() { return super.toString() + "(" + x + "," + y + ")"; }
}
// GPun.java
package figure;
public class GPun extends Exception {
public String toString() { return "*** Niz je pun!"; }
}
// GIndeks.java
package figure;
public class GIndeks extends Exception {
public String toString() { return "*** Indeks izvan opsega!"; }
}
// Niz.java
package figure;
public class Niz<E> {
E[] niz; int n = 0;
public Niz(int kap) { niz = (E[]) new Object[kap]; }
public Niz() { this(10); }
public int duz() { return n; }
public Niz<E> dodaj(E e) throws GPun {
if (n == niz.length) throw new GPun();
niz[n++] = e;
return this;
}
public E dohv(int i) throws GIndeks {
if (i<0 || i>=n) throw new GIndeks();
return niz[i];
}
public String toString() {
StringBuilder sb = new StringBuilder("[");
for (int i=0; i<n; i++) {
if (i > 0) sb.append(',');
sb.append(niz[i]);
}
return sb.append(']').toString();
}
}
// Mnogougao.java
package figure;
public class Mnogougao extends Figura {
Niz<Tacka> tem;
public Mnogougao(int brTem) { tem = new Niz<Tacka>(brTem); }
public Mnogougao() { this(3); }
public Mnogougao dodaj(Tacka t) throws GPun { tem.dodaj(t); return this; }
public Mnogougao pomeri(double dx, double dy) {
try {
for (int i=0; i<tem.duz(); tem.dohv(i++).pomeri(dx, dy));
} catch (GIndeks g) {}
return this;
}
public char vrsta() { return 'M'; }
public Tacka teziste() {
double x = 0, y = 0;
int n = tem.duz();
try {
for (int i=0; i<n; i++) { x+=tem.dohv(i).x(); y+=tem.dohv(i).y(); }
} catch (GIndeks g) {}
return new Tacka(x/n, y/n);
}
public String toString() { return super.toString() + tem; }
}
// Program.java
import figure.*;
public class Program {
public static void main(String[] varg) {
Mnogougao mu = new Mnogougao(4);
try {
mu.dodaj(new Tacka())
.dodaj(new Tacka(0, 2))
.dodaj(new Tacka(2, 2))
.dodaj(new Tacka(2, 0));
System.out.println(mu + " " + mu.teziste());
mu.pomeri(-1, -1);
System.out.println(mu + " " + mu.teziste());
} catch (GPun g) { System.out.println(g); }
}
}
M[T(0.0,0.0),T(0.0,2.0),T(2.0,2.0),T(2.0,0.0)] T(1.0,1.0)
M[T(-1.0,-1.0),T(-1.0,1.0),T(1.0,1.0),T(1.0,-1.0)] T(0.0,0.0)
(садржај)
Copyright © 2014, Laslo Kraus
Последња ревизија: 19.1.2014.