Praktikum 1: bessere ggT die sub nutzt (wenn das mal fertig ist)

This commit is contained in:
Johannes Theiner 2018-03-23 16:32:49 +01:00
parent f754db609d
commit 315b44694a
6 changed files with 146 additions and 51 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
Java_2.iml
java2.iml
target

1
README.md Normal file
View File

@ -0,0 +1 @@
https://teamcity.torchwood.joethei.de/viewType.html?buildTypeId=Studium_Java2

View File

@ -11,13 +11,9 @@
</content>
<orderEntry type="jdk" jdkName="9.0" jdkType="JavaSDK" />
<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" scope="TEST" 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" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine: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" />
<orderEntry type="library" name="Maven: org.junit.jupiter:junit-jupiter-api:5.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
<orderEntry type="library" name="Maven: org.opentest4j:opentest4j:1.0.0" level="project" />
<orderEntry type="library" name="Maven: org.junit.platform:junit-platform-commons:1.1.0" level="project" />
</component>
</module>

19
pom.xml
View File

@ -8,12 +8,23 @@
<artifactId>java2</artifactId>
<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>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.1.0</version>
<scope>test</scope>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>

View File

@ -1,11 +1,15 @@
package de.joethei.hs.java2.praktikum1;
import java.util.logging.Logger;
public class GrosseZahl {
int Zahl[];
GrosseZahl(String d) {
Boolean korrekteEingabe=true;
private static Logger logger = Logger.getLogger(GrosseZahl.class.getName());
private int Zahl[];
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;
@ -22,7 +26,7 @@ public class GrosseZahl {
}
}
GrosseZahl(int i) {
public GrosseZahl(int i) {
String intZahl = Integer.toString(i);
Zahl = new int[intZahl.length()];
for (int w = 0; w < intZahl.length(); w++) {
@ -30,59 +34,69 @@ public class GrosseZahl {
}
}
public String toString() {
String rueckgabe = "";
for(int i=0; i<Zahl.length; i++) {
rueckgabe += Integer.toString(Zahl[i]);
private GrosseZahl(int[] zahl) {
this.Zahl = zahl;
}
return rueckgabe;
public String toString() {
StringBuilder rueckgabe = new StringBuilder();
for (int aZahl : Zahl) {
rueckgabe.append(Integer.toString(aZahl));
}
return rueckgabe.toString();
}
private int toInt() {
int IntZahl = 0;
for(int i=0; i<Zahl.length; i++) {
for (int aZahl : Zahl) {
IntZahl *= 10;
IntZahl += Zahl[i];
IntZahl += aZahl;
}
return IntZahl;
}
boolean less(GrosseZahl b) {
int ZahlEins = toInt(), ZahlZwei = b.toInt();
if(ZahlEins < ZahlZwei) {
return true;
} else {
return false;
public boolean less(GrosseZahl b) {
if(this.equals(b)) return false;
if (this.Zahl.length < b.Zahl.length) return true;
if (this.Zahl.length > b.Zahl.length) 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;
for(int i=0; i<Zahl.length; i++) {
for (int aZahl : Zahl) {
IntZahl *= 10;
IntZahl += Zahl[i];
IntZahl += aZahl;
}
IntZahl += b.toInt();
GrosseZahl rueckgabe = new GrosseZahl(IntZahl);
return rueckgabe;
return new GrosseZahl(IntZahl);
}
GrosseZahl mult(GrosseZahl b) {
public GrosseZahl sub(GrosseZahl b) {
return null;
}
public GrosseZahl mult(GrosseZahl b) {
int IntZahl = 0;
for(int i=0; i<Zahl.length; i++) {
for (int aZahl : Zahl) {
IntZahl *= 10;
IntZahl += Zahl[i];
IntZahl += aZahl;
}
IntZahl *= b.toInt();
GrosseZahl rueckgabe = new GrosseZahl(IntZahl);
return rueckgabe;
return new GrosseZahl(IntZahl);
}
GrosseZahl ggT(GrosseZahl b) {
/*
public GrosseZahl ggT(GrosseZahl b) {
int IntZahl = 0;
for(int i=0; i<Zahl.length; i++) {
for (int aZahl : Zahl) {
IntZahl *= 10;
IntZahl += Zahl[i];
IntZahl += aZahl;
}
if (IntZahl == b.toInt()) {
return b;
@ -90,8 +104,29 @@ public class GrosseZahl {
GrosseZahl c = new GrosseZahl(b.toInt() - IntZahl);
return this.ggT(c);
} else {
GrosseZahl c = new GrosseZahl(IntZahl - b.toInt());
GrosseZahl c = new GrosseZahl(Math.abs(IntZahl - b.toInt()));
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;
}
}

View File

@ -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)));
}
}