![]() Ласло Краус |
Објекнто програмирање 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.