aboutsummaryrefslogtreecommitdiff
path: root/sem5/oop
diff options
context:
space:
mode:
authorJulian T <julian@jtle.dk>2020-09-17 11:29:50 +0200
committerJulian T <julian@jtle.dk>2020-09-17 11:29:50 +0200
commit5de991dd326103647b28e7d95b92b32a9e1671b9 (patch)
treea66b2976081338deae84f2cc25fde9beabbca824 /sem5/oop
parentd285183c42f5d377b197bd0efab3bb20b240ef34 (diff)
Added m5 assignments
Diffstat (limited to 'sem5/oop')
-rw-r--r--sem5/oop/m4/shapes/src/MyPoint.java44
-rw-r--r--sem5/oop/m5/opg1/.classpath6
-rw-r--r--sem5/oop/m5/opg1/.gitignore1
-rw-r--r--sem5/oop/m5/opg1/.project17
-rw-r--r--sem5/oop/m5/opg1/src/Main.java35
-rw-r--r--sem5/oop/m5/opg2/.classpath6
-rw-r--r--sem5/oop/m5/opg2/.gitignore1
-rw-r--r--sem5/oop/m5/opg2/.project17
-rw-r--r--sem5/oop/m5/opg2/src/Main.java10
-rw-r--r--sem5/oop/m5/opg2/src/PrintThread.java20
10 files changed, 157 insertions, 0 deletions
diff --git a/sem5/oop/m4/shapes/src/MyPoint.java b/sem5/oop/m4/shapes/src/MyPoint.java
new file mode 100644
index 0000000..46f1ffb
--- /dev/null
+++ b/sem5/oop/m4/shapes/src/MyPoint.java
@@ -0,0 +1,44 @@
+
+public class MyPoint {
+ private double x, y;
+
+ public MyPoint(double x, double y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ public double getX() {
+ return this.x;
+ }
+ public double getY() {
+ return this.y;
+ }
+
+ /**
+ * Subtracts two vectors, thus returning the difference.
+ * @param b point to subtract from this.
+ * @return returns a MyPoint which is actually a vector
+ */
+ public MyPoint sub(MyPoint b) {
+ // This is actually a vector and not a point
+ return new MyPoint(this.getX() - b.getX(), this.getY() - b.getY());
+ }
+ /**
+ * Returns a new MyVector with positive components
+ */
+ public MyPoint abs() {
+ return new MyPoint(Math.abs(this.getX()), Math.abs(this.getY()));
+ }
+
+ /**
+ * Calculates the length of MyPoint as if it was a vector.
+ * @return
+ */
+ public double modulo() {
+ return Math.sqrt(this.getX() * this.getX() + this.getY() * this.getY());
+ }
+
+ public String toString() {
+ return String.format("[%f, %f]", this.getX(), this.getY());
+ }
+}
diff --git a/sem5/oop/m5/opg1/.classpath b/sem5/oop/m5/opg1/.classpath
new file mode 100644
index 0000000..fb50116
--- /dev/null
+++ b/sem5/oop/m5/opg1/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sem5/oop/m5/opg1/.gitignore b/sem5/oop/m5/opg1/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/sem5/oop/m5/opg1/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/sem5/oop/m5/opg1/.project b/sem5/oop/m5/opg1/.project
new file mode 100644
index 0000000..8c2b620
--- /dev/null
+++ b/sem5/oop/m5/opg1/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>mm5opg1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sem5/oop/m5/opg1/src/Main.java b/sem5/oop/m5/opg1/src/Main.java
new file mode 100644
index 0000000..97f992d
--- /dev/null
+++ b/sem5/oop/m5/opg1/src/Main.java
@@ -0,0 +1,35 @@
+import javax.swing.JOptionPane;
+import javax.swing.JFrame;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.io.IOException;
+
+class PaneThing {
+ JFrame f;
+ public PaneThing(String fname) throws IOException {
+ String content = Files.readString(Path.of(fname));
+
+
+ f = new JFrame();
+ JOptionPane.showMessageDialog(f, content);
+ }
+}
+
+public class Main {
+
+ public static void main(String[] args) {
+
+ String fname = "hej.txt";
+ if (args.length > 0) {
+ fname = args[0];
+ }
+
+ try {
+ PaneThing pt = new PaneThing(fname);
+ } catch (Exception e) {
+ System.err.printf("error: %s%n", e);
+ System.exit(1);
+ }
+ }
+
+}
diff --git a/sem5/oop/m5/opg2/.classpath b/sem5/oop/m5/opg2/.classpath
new file mode 100644
index 0000000..fb50116
--- /dev/null
+++ b/sem5/oop/m5/opg2/.classpath
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sem5/oop/m5/opg2/.gitignore b/sem5/oop/m5/opg2/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/sem5/oop/m5/opg2/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/sem5/oop/m5/opg2/.project b/sem5/oop/m5/opg2/.project
new file mode 100644
index 0000000..d5b0073
--- /dev/null
+++ b/sem5/oop/m5/opg2/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>mm5opg2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sem5/oop/m5/opg2/src/Main.java b/sem5/oop/m5/opg2/src/Main.java
new file mode 100644
index 0000000..26b95b3
--- /dev/null
+++ b/sem5/oop/m5/opg2/src/Main.java
@@ -0,0 +1,10 @@
+
+public class Main {
+
+ public static void main(String[] args) {
+ for(int i=0;i<args.length;i++) {
+ new PrintThread( args[i] ).start();
+ }
+ }
+
+}
diff --git a/sem5/oop/m5/opg2/src/PrintThread.java b/sem5/oop/m5/opg2/src/PrintThread.java
new file mode 100644
index 0000000..50b8425
--- /dev/null
+++ b/sem5/oop/m5/opg2/src/PrintThread.java
@@ -0,0 +1,20 @@
+public class PrintThread extends Thread {
+ private int sleepTime;
+
+ public PrintThread(String id )
+ {
+ super(id);
+ sleepTime = (int) ( Math.random() * 5000 );
+ System.out.println( "Name: " + getName() +" Sleep: " + sleepTime );
+ }
+
+ public void run()
+ {
+ try {
+ sleep( sleepTime );
+ }
+ catch ( InterruptedException exception ) {}
+ System.out.println( "Thread " + getName() );
+ }
+
+} \ No newline at end of file