Praktikum 1: bessere ggT die sub nutzt (wenn das mal fertig ist)
This commit is contained in:
parent
f754db609d
commit
315b44694a
|
@ -1,2 +1,2 @@
|
||||||
Java_2.iml
|
java2.iml
|
||||||
target
|
target
|
|
@ -0,0 +1 @@
|
||||||
|
https://teamcity.torchwood.joethei.de/viewType.html?buildTypeId=Studium_Java2
|
12
java2.iml
12
java2.iml
|
@ -11,13 +11,9 @@
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="9.0" jdkType="JavaSDK" />
|
<orderEntry type="jdk" jdkName="9.0" jdkType="JavaSDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-surefire-provider:1.1.0" level="project" />
|
<orderEntry type="library" name="Maven: org.junit.jupiter:junit-jupiter-api:5.1.0" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
|
<orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-launcher:1.1.0" level="project" />
|
<orderEntry type="library" name="Maven: org.opentest4j:opentest4j:1.0.0" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.1.0" level="project" />
|
<orderEntry type="library" name="Maven: org.junit.platform:junit-platform-commons:1.1.0" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.apache.maven.surefire:surefire-api:2.19.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.apache.maven.surefire:common-java5:2.19.1" level="project" />
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
19
pom.xml
19
pom.xml
|
@ -8,12 +8,23 @@
|
||||||
<artifactId>java2</artifactId>
|
<artifactId>java2</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.junit.platform</groupId>
|
<groupId>org.junit.jupiter</groupId>
|
||||||
<artifactId>junit-platform-surefire-provider</artifactId>
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
<version>1.1.0</version>
|
<version>RELEASE</version>
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,23 @@
|
||||||
package de.joethei.hs.java2.praktikum1;
|
package de.joethei.hs.java2.praktikum1;
|
||||||
|
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class GrosseZahl {
|
public class GrosseZahl {
|
||||||
int Zahl[];
|
|
||||||
|
|
||||||
GrosseZahl(String d) {
|
private static Logger logger = Logger.getLogger(GrosseZahl.class.getName());
|
||||||
Boolean korrekteEingabe=true;
|
|
||||||
for(int i=0; i<d.length(); i++) {
|
private int Zahl[];
|
||||||
if(Integer.parseInt(String.valueOf(d.charAt(i))) < 0 || Integer.parseInt(String.valueOf(d.charAt(i))) > 9) {
|
|
||||||
|
public GrosseZahl(String d) {
|
||||||
|
boolean korrekteEingabe = true;
|
||||||
|
for (int i = 0; i < d.length(); i++) {
|
||||||
|
if (Integer.parseInt(String.valueOf(d.charAt(i))) < 0 || Integer.parseInt(String.valueOf(d.charAt(i))) > 9) {
|
||||||
korrekteEingabe = false;
|
korrekteEingabe = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(korrekteEingabe) {
|
if (korrekteEingabe) {
|
||||||
Zahl = new int[d.length()];
|
Zahl = new int[d.length()];
|
||||||
for(int w=0; w<d.length(); w++) {
|
for (int w = 0; w < d.length(); w++) {
|
||||||
Zahl[w] = Integer.parseInt(String.valueOf(d.charAt(w)));
|
Zahl[w] = Integer.parseInt(String.valueOf(d.charAt(w)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,76 +26,107 @@ public class GrosseZahl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GrosseZahl(int i) {
|
public GrosseZahl(int i) {
|
||||||
String intZahl = Integer.toString(i);
|
String intZahl = Integer.toString(i);
|
||||||
Zahl = new int[intZahl.length()];
|
Zahl = new int[intZahl.length()];
|
||||||
for(int w=0; w<intZahl.length(); w++) {
|
for (int w = 0; w < intZahl.length(); w++) {
|
||||||
Zahl[w] = Integer.parseInt(String.valueOf(intZahl.charAt(w)));
|
Zahl[w] = Integer.parseInt(String.valueOf(intZahl.charAt(w)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private GrosseZahl(int[] zahl) {
|
||||||
|
this.Zahl = zahl;
|
||||||
|
}
|
||||||
|
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String rueckgabe = "";
|
StringBuilder rueckgabe = new StringBuilder();
|
||||||
for(int i=0; i<Zahl.length; i++) {
|
for (int aZahl : Zahl) {
|
||||||
rueckgabe += Integer.toString(Zahl[i]);
|
rueckgabe.append(Integer.toString(aZahl));
|
||||||
}
|
}
|
||||||
return rueckgabe;
|
return rueckgabe.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int toInt() {
|
private int toInt() {
|
||||||
int IntZahl = 0;
|
int IntZahl = 0;
|
||||||
for(int i=0; i<Zahl.length; i++) {
|
for (int aZahl : Zahl) {
|
||||||
IntZahl *= 10;
|
IntZahl *= 10;
|
||||||
IntZahl += Zahl[i];
|
IntZahl += aZahl;
|
||||||
}
|
}
|
||||||
return IntZahl;
|
return IntZahl;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean less(GrosseZahl b) {
|
public boolean less(GrosseZahl b) {
|
||||||
int ZahlEins = toInt(), ZahlZwei = b.toInt();
|
if(this.equals(b)) return false;
|
||||||
if(ZahlEins < ZahlZwei) {
|
if (this.Zahl.length < b.Zahl.length) return true;
|
||||||
return true;
|
if (this.Zahl.length > b.Zahl.length) return false;
|
||||||
} else {
|
|
||||||
return false;
|
for (int i = this.Zahl.length -1; i >= 0; i--) {
|
||||||
|
if (this.Zahl[i] > b.Zahl[i]) return false;
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
GrosseZahl add(GrosseZahl b) {
|
public GrosseZahl add(GrosseZahl b) {
|
||||||
int IntZahl = 0;
|
int IntZahl = 0;
|
||||||
for(int i=0; i<Zahl.length; i++) {
|
for (int aZahl : Zahl) {
|
||||||
IntZahl *= 10;
|
IntZahl *= 10;
|
||||||
IntZahl += Zahl[i];
|
IntZahl += aZahl;
|
||||||
}
|
}
|
||||||
IntZahl += b.toInt();
|
IntZahl += b.toInt();
|
||||||
GrosseZahl rueckgabe = new GrosseZahl(IntZahl);
|
return new GrosseZahl(IntZahl);
|
||||||
return rueckgabe;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GrosseZahl mult(GrosseZahl b) {
|
public GrosseZahl sub(GrosseZahl b) {
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GrosseZahl mult(GrosseZahl b) {
|
||||||
int IntZahl = 0;
|
int IntZahl = 0;
|
||||||
for(int i=0; i<Zahl.length; i++) {
|
for (int aZahl : Zahl) {
|
||||||
IntZahl *= 10;
|
IntZahl *= 10;
|
||||||
IntZahl += Zahl[i];
|
IntZahl += aZahl;
|
||||||
}
|
}
|
||||||
IntZahl *= b.toInt();
|
IntZahl *= b.toInt();
|
||||||
GrosseZahl rueckgabe = new GrosseZahl(IntZahl);
|
return new GrosseZahl(IntZahl);
|
||||||
return rueckgabe;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GrosseZahl ggT(GrosseZahl b) {
|
/*
|
||||||
|
public GrosseZahl ggT(GrosseZahl b) {
|
||||||
int IntZahl = 0;
|
int IntZahl = 0;
|
||||||
for(int i=0; i<Zahl.length; i++) {
|
for (int aZahl : Zahl) {
|
||||||
IntZahl *= 10;
|
IntZahl *= 10;
|
||||||
IntZahl += Zahl[i];
|
IntZahl += aZahl;
|
||||||
}
|
}
|
||||||
if(IntZahl == b.toInt()) {
|
if (IntZahl == b.toInt()) {
|
||||||
return b;
|
return b;
|
||||||
} else if(this.less(b)) {
|
} else if (this.less(b)) {
|
||||||
GrosseZahl c = new GrosseZahl(b.toInt()-IntZahl);
|
GrosseZahl c = new GrosseZahl(b.toInt() - IntZahl);
|
||||||
return this.ggT(c);
|
return this.ggT(c);
|
||||||
} else {
|
} else {
|
||||||
GrosseZahl c = new GrosseZahl(IntZahl - b.toInt());
|
GrosseZahl c = new GrosseZahl(Math.abs(IntZahl - b.toInt()));
|
||||||
return c.ggT(b);
|
return c.ggT(b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
public GrosseZahl ggT(GrosseZahl b) {
|
||||||
|
if(this.equals(b)) return this;
|
||||||
|
if(this.less(b)) return this.ggT(b.sub(this));
|
||||||
|
else return this.sub(b).ggT(b);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if(o instanceof GrosseZahl) {
|
||||||
|
GrosseZahl tmp = (GrosseZahl) o;
|
||||||
|
if(tmp.Zahl.length == this.Zahl.length) {
|
||||||
|
for(int i = this.Zahl.length - 1; i >= 0; i--) {
|
||||||
|
if(tmp.Zahl[i] != this.Zahl[i]) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}else return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
import de.joethei.hs.java2.praktikum1.GrosseZahl;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.function.Executable;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class GrosseZahlTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void constructors() {
|
||||||
|
Executable exec = () -> new GrosseZahl("Hallo Welt");
|
||||||
|
assertThrows(NumberFormatException.class, exec);
|
||||||
|
assertEquals(new GrosseZahl("1456"), new GrosseZahl(1456));
|
||||||
|
assertNotEquals(new GrosseZahl("1234"), new GrosseZahl(1233));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void add() {
|
||||||
|
assertEquals(new GrosseZahl(42), new GrosseZahl("40").add(new GrosseZahl(2)));
|
||||||
|
assertEquals(new GrosseZahl("42"), new GrosseZahl(40).add(new GrosseZahl(2)));
|
||||||
|
assertNotEquals(new GrosseZahl(43), new GrosseZahl("40").add(new GrosseZahl(2)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void sub() {
|
||||||
|
assertEquals(new GrosseZahl(42), new GrosseZahl(100).sub(new GrosseZahl(58)));
|
||||||
|
assertNotEquals(new GrosseZahl(43), new GrosseZahl(100).sub(new GrosseZahl(58)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void mult() {
|
||||||
|
assertEquals(new GrosseZahl(15), new GrosseZahl("5").mult(new GrosseZahl(3)));
|
||||||
|
assertNotEquals(new GrosseZahl("15"), new GrosseZahl("4").mult(new GrosseZahl(3)));
|
||||||
|
assertEquals(new GrosseZahl(90000), new GrosseZahl(9).mult(new GrosseZahl(10000)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void less() {
|
||||||
|
assertTrue(new GrosseZahl("1234").less(new GrosseZahl("12345")));
|
||||||
|
assertFalse(new GrosseZahl("12345").less(new GrosseZahl("1234")));
|
||||||
|
assertFalse(new GrosseZahl("1234").less(new GrosseZahl("1234")));
|
||||||
|
assertFalse(new GrosseZahl("1234").less(new GrosseZahl("1233")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void ggT() {
|
||||||
|
assertEquals(new GrosseZahl(3), new GrosseZahl(45).ggT(new GrosseZahl(21)));
|
||||||
|
assertEquals(new GrosseZahl(70), new GrosseZahl(1400).ggT(new GrosseZahl(210)));
|
||||||
|
assertNotEquals(new GrosseZahl(2), new GrosseZahl("7").ggT(new GrosseZahl(13)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue