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
|
|
@ -0,0 +1 @@
|
|||
https://teamcity.torchwood.joethei.de/viewType.html?buildTypeId=Studium_Java2
|
12
java2.iml
12
java2.iml
|
@ -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
19
pom.xml
|
@ -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>
|
||||
|
||||
|
|
|
@ -1,19 +1,23 @@
|
|||
package de.joethei.hs.java2.praktikum1;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class GrosseZahl {
|
||||
int Zahl[];
|
||||
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
if(korrekteEingabe) {
|
||||
if (korrekteEingabe) {
|
||||
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)));
|
||||
}
|
||||
|
||||
|
@ -22,76 +26,107 @@ 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++) {
|
||||
for (int w = 0; w < intZahl.length(); w++) {
|
||||
Zahl[w] = Integer.parseInt(String.valueOf(intZahl.charAt(w)));
|
||||
}
|
||||
}
|
||||
|
||||
private GrosseZahl(int[] zahl) {
|
||||
this.Zahl = zahl;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
String rueckgabe = "";
|
||||
for(int i=0; i<Zahl.length; i++) {
|
||||
rueckgabe += Integer.toString(Zahl[i]);
|
||||
StringBuilder rueckgabe = new StringBuilder();
|
||||
for (int aZahl : Zahl) {
|
||||
rueckgabe.append(Integer.toString(aZahl));
|
||||
}
|
||||
return rueckgabe;
|
||||
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()) {
|
||||
if (IntZahl == b.toInt()) {
|
||||
return b;
|
||||
} else if(this.less(b)) {
|
||||
GrosseZahl c = new GrosseZahl(b.toInt()-IntZahl);
|
||||
} else if (this.less(b)) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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