diff --git a/src/tse/LR_2.java b/src/tse/LR_2.java index 4e22eff..cbef17f 100644 --- a/src/tse/LR_2.java +++ b/src/tse/LR_2.java @@ -1,5 +1,8 @@ package tse; +import tse.lr2.CompareArrays1D; +import tse.lr2.CompareArrays2D; + /** * @author aNNiMON */ @@ -17,10 +20,10 @@ public class LR_2 implements ILabRab { public void execute(int index) { switch(index) { case 0: - + CompareArrays1D.main(); break; case 1: - + CompareArrays2D.main(); break; case 2: @@ -41,7 +44,7 @@ public class LR_2 implements ILabRab { @Override public String getDescription(int index) { - return Util.readDescription(1, index); + return Util.readDescription(2, index); } } diff --git a/src/tse/Main.java b/src/tse/Main.java index 92da4cf..2f4d527 100644 --- a/src/tse/Main.java +++ b/src/tse/Main.java @@ -44,7 +44,7 @@ public class Main extends JFrame { } private final ILabRab[] labs = new ILabRab[] { - new LR_1() + new LR_1(), new LR_2() }; private JButton executeButton; diff --git a/src/tse/lr2/Circle.java b/src/tse/lr2/Circle.java new file mode 100644 index 0000000..3b384b8 --- /dev/null +++ b/src/tse/lr2/Circle.java @@ -0,0 +1,18 @@ +package tse.lr2; + +/** + * + * @author aNNiMON + */ +public class Circle extends Ellipse { + + public boolean isConsist() { + return false; + } + + @Override + public String toString() { + return "This is circle!\n" + super.toString(); + } + +} diff --git a/src/tse/lr2/CompareArrays1D.java b/src/tse/lr2/CompareArrays1D.java new file mode 100644 index 0000000..8fa68a4 --- /dev/null +++ b/src/tse/lr2/CompareArrays1D.java @@ -0,0 +1,44 @@ +package tse.lr2; + +import java.util.Arrays; + +/** + * + * @author aNNiMON + */ +public class CompareArrays1D { + + public static void main() { + String[] a = {"1","2","3"}; + String[] b1 = a; + String[] b2 = a.clone(); + String[] b3 = Arrays.copyOf(a, a.length); + String[] b4 = {"1","2","3"}; + + printRow("b=a\t\t\t", getValues(a, b1)); + printRow("b=a.clone()\t\t", getValues(a, b2)); + printRow("b=Arrays.copyOf(a)\t", getValues(a, b3)); + printRow("b4 = {\"1\",\"2\",\"3\"}\t", getValues(a, b4)); + + } + + private static void printRow(String col1, boolean[] values) { + System.out.println(); + System.out.print(col1 + "\t"); + for (boolean val : values) { + System.out.print(val + "\t"); + } + } + + private static boolean[] getValues(String[] a, String[] b) { + boolean[] values = new boolean[] { + b == a, + b.equals(a), + Arrays.equals(a, b), + Arrays.deepEquals(a, b), + b[0] == a[0] + }; + + return values; + } +} diff --git a/src/tse/lr2/CompareArrays2D.java b/src/tse/lr2/CompareArrays2D.java new file mode 100644 index 0000000..b10dc47 --- /dev/null +++ b/src/tse/lr2/CompareArrays2D.java @@ -0,0 +1,43 @@ +package tse.lr2; + +import java.util.Arrays; + +/** + * + * @author aNNiMON + */ +public class CompareArrays2D { + + public static void main() { + String[][] a = { {"1","2","3"}, {"4", "5", "6"}, {"7", "8", "9"}}; + String[][] b1 = a; + String[][] b2 = a.clone(); + String[][] b3 = Arrays.copyOf(a, a.length); + String[][] b4 = { {"1","2","3"}, {"4", "5", "6"}, {"7", "8", "9"}}; + + printRow("b=a\t\t\t", getValues(a, b1)); + printRow("b=a.clone()\t\t", getValues(a, b2)); + printRow("b=Arrays.copyOf(a)\t", getValues(a, b3)); + printRow("b4 = {\"1\",\"2\",\"3\"}, {\"4\",\"5...", getValues(a, b4)); + } + + private static void printRow(String col1, boolean[] values) { + System.out.println(); + System.out.print(col1 + "\t"); + for (boolean val : values) { + System.out.print(val + "\t"); + } + } + + private static boolean[] getValues(String[][] a, String[][] b) { + boolean[] values = new boolean[] { + b == a, + b.equals(a), + Arrays.equals(a, b), + Arrays.deepEquals(a, b), + b[0] == a[0] + }; + + return values; + } +} diff --git a/src/tse/lr2/Ellipse.java b/src/tse/lr2/Ellipse.java new file mode 100644 index 0000000..5a961aa --- /dev/null +++ b/src/tse/lr2/Ellipse.java @@ -0,0 +1,78 @@ +package tse.lr2; + +import java.awt.Point; +import java.util.Arrays; + +/** + * + * @author aNNiMON + */ +public class Ellipse { + + private static final int POINTS = 4; + + protected final Point[] points; + + public Ellipse() { + points = new Point[POINTS]; + } + + public Ellipse(Point p1, Point p2, Point p3, Point p4) { + points = new Point[] { + p1, p2, p3, p4 + }; + } + + public Ellipse(Ellipse ellipse) { + points = Arrays.copyOf(ellipse.points, POINTS); + } + + public Point getCenterPoint() { + int cx = (points[1].x - points[0].x) / 2 + points[0].x; + int cy = (points[2].y - points[0].y) / 2 + points[0].y; + Point center = new Point(cx, cy); + return center; + } + + public double getSquare() { + Point center = getCenterPoint(); + double hor = center.x - points[0].x; + double ver = center.y - points[0].y; + return Math.PI * hor * ver; + } + + public double getDistanceOfCentres(Ellipse ellipse) { + return (getCenterPoint().distance(ellipse.getCenterPoint())); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Ellipse) { + Ellipse ellipse = (Ellipse) obj; + return (ellipse.points).equals(obj); + } + return super.equals(obj); + } + + @Override + protected Object clone() throws CloneNotSupportedException { + return super.clone(); + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < POINTS; i++) { + sb.append(points[i].toString()).append('\t'); + } + sb.append("\nSquare: ").append(getSquare()); + sb.append("\nCenter: ").append(getCenterPoint().toString()); + return sb.toString(); + } + +}