small change
This commit is contained in:
parent
9908656813
commit
5f15f03d92
BIN
bin/test/uebung/uebung09/collection/SetTest.class
Normal file
BIN
bin/test/uebung/uebung09/collection/SetTest.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/uebung09/collection/BigSet$1.class
Normal file
BIN
bin/uebung09/collection/BigSet$1.class
Normal file
Binary file not shown.
BIN
bin/uebung09/collection/BigSet.class
Normal file
BIN
bin/uebung09/collection/BigSet.class
Normal file
Binary file not shown.
BIN
bin/uebung09/collection/EmptySet$1.class
Normal file
BIN
bin/uebung09/collection/EmptySet$1.class
Normal file
Binary file not shown.
BIN
bin/uebung09/collection/EmptySet.class
Normal file
BIN
bin/uebung09/collection/EmptySet.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/uebung09/collection/SingeltonSet$1.class
Normal file
BIN
bin/uebung09/collection/SingeltonSet$1.class
Normal file
Binary file not shown.
BIN
bin/uebung09/collection/SingeltonSet.class
Normal file
BIN
bin/uebung09/collection/SingeltonSet.class
Normal file
Binary file not shown.
BIN
bin/uebung10/logo/BlackForest.class
Normal file
BIN
bin/uebung10/logo/BlackForest.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/uebung10/logo/HanselGretelVisitor$2.class
Normal file
BIN
bin/uebung10/logo/HanselGretelVisitor$2.class
Normal file
Binary file not shown.
BIN
bin/uebung10/logo/HanselGretelVisitor$3.class
Normal file
BIN
bin/uebung10/logo/HanselGretelVisitor$3.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,46 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.METER;
|
|
||||||
import static uebung07.quantities.plain.TimeUnit.SECOND;
|
|
||||||
import static uebung07.quantities.plain.VelocityUnit.METER_PER_SECOND;
|
|
||||||
|
|
||||||
public class Length extends Quantity {
|
|
||||||
private final LengthUnit unit;
|
|
||||||
|
|
||||||
public Length(double value, LengthUnit unit) {
|
|
||||||
super(value, unit);
|
|
||||||
this.unit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length plus(Length other) {
|
|
||||||
return new Length(value + other.getBaseValue() / unit.baseFactor, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length minus(Length other) {
|
|
||||||
return new Length(value - other.getBaseValue() / unit.baseFactor, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length mult(double f) {
|
|
||||||
return new Length(value * f, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length div(double f) {
|
|
||||||
return new Length(value / f, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length to(LengthUnit unit) {
|
|
||||||
return new Length(getBaseValue() / unit.baseFactor, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public double div(Length other) {
|
|
||||||
return getBaseValue() / other.getBaseValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Velocity div(Time t) {
|
|
||||||
return new Velocity(this.value(METER) / t.value(SECOND), METER_PER_SECOND);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time div(Velocity v) {
|
|
||||||
return new Time(this.value(METER) / v.value(METER_PER_SECOND), SECOND);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
public class LengthUnit extends Unit {
|
|
||||||
public LengthUnit(String name, double baseFactor) {
|
|
||||||
super(name, baseFactor);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final LengthUnit METER = new LengthUnit("m", 1);
|
|
||||||
public static final LengthUnit MILLIMETER = new LengthUnit("mm", 0.001);
|
|
||||||
public static final LengthUnit KILOMETER = new LengthUnit("km", 1000);
|
|
||||||
public static final LengthUnit MILE = new LengthUnit("mi", 1609.344);
|
|
||||||
public static final LengthUnit LIGHTYEAR = new LengthUnit("ly", 9460730472580800.0);
|
|
||||||
public static final LengthUnit PARSEC = new LengthUnit("pc", 3.0856776e16);
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.KILOMETER;
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.MILE;
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.MILLIMETER;
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.PARSEC;
|
|
||||||
import static uebung07.quantities.plain.TimeUnit.HOUR;
|
|
||||||
import static uebung07.quantities.plain.TimeUnit.MINUTE;
|
|
||||||
import static uebung07.quantities.plain.TimeUnit.SECOND;
|
|
||||||
import static uebung07.quantities.plain.VelocityUnit.KMH;
|
|
||||||
import static uebung07.quantities.plain.VelocityUnit.METER_PER_SECOND;
|
|
||||||
import static uebung07.quantities.plain.VelocityUnit.MPH;
|
|
||||||
|
|
||||||
public class PlainQuantitiesDemo {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
final Length l1 = new Length(1, KILOMETER);
|
|
||||||
final Length l2 = new Length(1200, MILLIMETER);
|
|
||||||
final Length l3 = new Length(1, MILE);
|
|
||||||
|
|
||||||
System.out.println(l1);
|
|
||||||
System.out.println(l2);
|
|
||||||
System.out.println(l1 + " + " + l2 + " = " + l1.plus(l2));
|
|
||||||
System.out.println(l1 + " + " + l2 + " (in mm) = " + l1.plus(l2).to(MILLIMETER));
|
|
||||||
|
|
||||||
System.out.println(l3 + " / " + l1 + " = " + l3.div(l1));
|
|
||||||
|
|
||||||
final Time t1 = new Time(100, SECOND);
|
|
||||||
final Time t2 = new Time(5, HOUR);
|
|
||||||
|
|
||||||
System.out.println(t1);
|
|
||||||
System.out.println(t2);
|
|
||||||
System.out.println(t1.plus(t2));
|
|
||||||
System.out.println(t1.plus(t2).to(MINUTE));
|
|
||||||
|
|
||||||
final Velocity v1 = new Velocity(12, KMH);
|
|
||||||
final Velocity v2 = new Velocity(100, METER_PER_SECOND);
|
|
||||||
|
|
||||||
System.out.println(v1);
|
|
||||||
System.out.println(v2);
|
|
||||||
System.out.println(v2.to(KMH));
|
|
||||||
System.out.println(v1.plus(v2));
|
|
||||||
|
|
||||||
final Length l4 = new Length(300, KILOMETER).to(PARSEC);
|
|
||||||
final Time t3 = new Time(2, HOUR);
|
|
||||||
final Velocity v3 = l4.div(t3);
|
|
||||||
System.out.println(l4 + " / " + l3 + " = " + v3);
|
|
||||||
|
|
||||||
System.out.println(v1 + " * " + t1 + " = " + v1.mult(t1).to(KILOMETER));
|
|
||||||
|
|
||||||
final Length l5 = v3.mult(t1.to(HOUR));
|
|
||||||
System.out.println(v3 + " * " + t1 + " = " + l5);
|
|
||||||
|
|
||||||
final Time t5 = l4.div(v2);
|
|
||||||
System.out.println(l4 + " / " + v2 + " = " + t5.to(MINUTE));
|
|
||||||
|
|
||||||
Velocity v5 = new Velocity(55, MPH);
|
|
||||||
System.out.println(v5 + " = " + v5.format("%4.1f %s", KMH));
|
|
||||||
System.out.println((v5.mult(new Time(30, MINUTE)).to(MILE)));
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
public abstract class Quantity {
|
|
||||||
public final double value;
|
|
||||||
public final Unit unit;
|
|
||||||
|
|
||||||
protected Quantity(double value, Unit unit) {
|
|
||||||
this.value = value;
|
|
||||||
this.unit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double getBaseValue() {
|
|
||||||
return value * unit.baseFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public double value(Unit unit) {
|
|
||||||
return getBaseValue() / unit.baseFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return value + " " + unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String format(String fmt, Unit unit) {
|
|
||||||
return String.format(fmt, value(unit), unit);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
import static uebung07.quantities.plain.LengthUnit.METER;
|
|
||||||
|
|
||||||
public class Time extends Quantity{
|
|
||||||
private final TimeUnit unit;
|
|
||||||
|
|
||||||
public Time(double value, TimeUnit unit) {
|
|
||||||
super(value, unit);
|
|
||||||
this.unit = unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time plus(Time other) {
|
|
||||||
return new Time( value + other.getBaseValue() / unit.baseFactor, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time minus(Time other) {
|
|
||||||
return new Time( value - other.getBaseValue() / unit.baseFactor, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time mult(double f) {
|
|
||||||
return new Time( value * f, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time div(double f) {
|
|
||||||
return new Time( value / f, unit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Time to(TimeUnit unit) {
|
|
||||||
return new Time(getBaseValue() / unit.baseFactor, unit)
|
|
||||||
}
|
|
||||||
|
|
||||||
public double div(Time other) {
|
|
||||||
return getBaseValue() / other.getBaseValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Length mult(Velocity v) {
|
|
||||||
return new Length(this.value(METER), METER);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
package uebung07.quantities.plain;
|
|
||||||
|
|
||||||
public abstract class Unit {
|
|
||||||
public final String name;
|
|
||||||
public final double baseFactor;
|
|
||||||
|
|
||||||
public Unit(String name, double baseFactor) {
|
|
||||||
this.name = name;
|
|
||||||
this.baseFactor = baseFactor;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
}
|
|
11
src/uebung10/logo/BlackForest.java
Normal file
11
src/uebung10/logo/BlackForest.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package uebung10.logo;
|
||||||
|
|
||||||
|
public class BlackForest implements DarkForest{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void breadCrumb(double x, double y) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'breadCrumb'");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -47,23 +47,21 @@ public class HanselGretelVisitor implements Visitor<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void breadCrumb() {
|
private void breadCrumb() {
|
||||||
// TODO Auto-generated method stub
|
forest.breadCrumb(turtle.getX(), turtle.getY());
|
||||||
throw new UnsupportedOperationException("Unimplemented method 'breadCrumb'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void layTrail(double d) {
|
private void layTrail(double d) {
|
||||||
forest.breadCrumb(turtle.getX(), turtle.getY());
|
// TODO Auto-generated method stub
|
||||||
|
throw new UnsupportedOperationException("Unimplemented method 'layTrail'");
|
||||||
}
|
}
|
||||||
|
|
||||||
private abstract class State {
|
private abstract class State {
|
||||||
abstract void go(double dist);
|
abstract void go(double dist);
|
||||||
void up() {}
|
abstract void up();
|
||||||
void down() {}
|
abstract void down();
|
||||||
}
|
}
|
||||||
|
|
||||||
private final State shortUp = new ShortUpState();// muss nicht geschrieben werden
|
private final State longUpState = new State(){
|
||||||
private final State down = new DownState();// muss nicht geschrieben werden
|
|
||||||
private final State longUp = new State(){
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void go(double d) {turtle.go(d);}
|
void go(double d) {turtle.go(d);}
|
||||||
@ -71,26 +69,53 @@ public class HanselGretelVisitor implements Visitor<Void> {
|
|||||||
@Override
|
@Override
|
||||||
void down(){
|
void down(){
|
||||||
breadCrumb();
|
breadCrumb();
|
||||||
state = down;
|
state = downState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void up() {}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private class DownState extends State{
|
private final State downState = new State(){
|
||||||
|
|
||||||
|
@Override
|
||||||
void go(double d){
|
void go(double d){
|
||||||
layTrail(d);
|
layTrail(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
void up(){state = shortUp;}
|
@Override
|
||||||
|
void up(){state = shortUpState;}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void down() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
private final State shortUpState = new State() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void go(double dist) {
|
||||||
|
turtle.go(dist);
|
||||||
|
gap = gap + dist;
|
||||||
|
|
||||||
|
if (gap < s) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
gap = 0;
|
||||||
|
state = longUpState;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO
|
@Override
|
||||||
private class ShortUpState extends State {
|
|
||||||
void go(double d){}
|
|
||||||
void up() {}
|
void up() {}
|
||||||
void down(){}
|
|
||||||
|
@Override
|
||||||
|
void down() {
|
||||||
|
state = downState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
private void go(double d) {
|
private void go(double d) {
|
||||||
state.go(d);
|
state.go(d);
|
||||||
|
Loading…
Reference in New Issue
Block a user