Inital commit
This commit is contained in:
commit
64604b9bf5
17 changed files with 346 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*/bin/
|
18
.vscode/launch.json
vendored
Normal file
18
.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"type": "java",
|
||||
"name": "CodeLens (Launch) - App",
|
||||
"request": "launch",
|
||||
"mainClass": "app.App",
|
||||
"projectName": "de.hhn.ai.prog2.blatt1.exceptions"
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
"name": "CodeLens (Launch) - App",
|
||||
"request": "launch",
|
||||
"mainClass": "app.App",
|
||||
"projectName": "de.hhn.ai.prog2.blatt1.mathematikaufgaben"
|
||||
}
|
||||
]
|
||||
}
|
6
de.hhn.ai.prog2.blatt1.exceptions/.classpath
Normal file
6
de.hhn.ai.prog2.blatt1.exceptions/.classpath
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
17
de.hhn.ai.prog2.blatt1.exceptions/.project
Normal file
17
de.hhn.ai.prog2.blatt1.exceptions/.project
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<projectDescription>
|
||||
<name>de.hhn.ai.prog2.blatt1.exceptions</name>
|
||||
<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>
|
|
@ -0,0 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
11
de.hhn.ai.prog2.blatt1.exceptions/.vscode/launch.json
vendored
Normal file
11
de.hhn.ai.prog2.blatt1.exceptions/.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"type": "java",
|
||||
"name": "CodeLens (Launch) - App",
|
||||
"request": "launch",
|
||||
"mainClass": "app.App",
|
||||
"projectName": "de.hhn.ai.prog2.blatt1.exceptions"
|
||||
}
|
||||
]
|
||||
}
|
7
de.hhn.ai.prog2.blatt1.exceptions/src/app/App.java
Normal file
7
de.hhn.ai.prog2.blatt1.exceptions/src/app/App.java
Normal file
|
@ -0,0 +1,7 @@
|
|||
package app;
|
||||
|
||||
public class App {
|
||||
public static void main(String[] args) throws Exception {
|
||||
PersonService.main();
|
||||
}
|
||||
}
|
5
de.hhn.ai.prog2.blatt1.exceptions/src/app/Hobbies.java
Normal file
5
de.hhn.ai.prog2.blatt1.exceptions/src/app/Hobbies.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
package app;
|
||||
|
||||
public enum Hobbies {
|
||||
PROGRAMMIEREN, SCHLAFEN, SONSTIGES, HOBBY4, HOBBY5, HOBBY6
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
package app;
|
||||
|
||||
/**
|
||||
* NoFreeTimeException
|
||||
*/
|
||||
public class NoFreeTimeException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = 497594916291844818L;
|
||||
|
||||
}
|
69
de.hhn.ai.prog2.blatt1.exceptions/src/app/Person.java
Normal file
69
de.hhn.ai.prog2.blatt1.exceptions/src/app/Person.java
Normal file
|
@ -0,0 +1,69 @@
|
|||
package app;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Person
|
||||
*/
|
||||
public class Person {
|
||||
private String preName;
|
||||
private String lastName;
|
||||
private int age;
|
||||
private List<Hobbies> hobbies = new ArrayList<Hobbies>();
|
||||
|
||||
public Person(String preName, String lastName, int age) {
|
||||
setPreName(preName);
|
||||
setLastName(lastName);
|
||||
setAge(age);
|
||||
}
|
||||
|
||||
public String getPreName() {
|
||||
return this.preName;
|
||||
}
|
||||
|
||||
public void setPreName(String preName) {
|
||||
if (preName.isEmpty())
|
||||
throw new IllegalArgumentException();
|
||||
this.preName = preName;
|
||||
}
|
||||
|
||||
public String getLastName() {
|
||||
return this.lastName;
|
||||
}
|
||||
|
||||
public void setLastName(String lastName) {
|
||||
if (lastName.isEmpty())
|
||||
throw new IllegalArgumentException();
|
||||
this.lastName = lastName;
|
||||
}
|
||||
|
||||
public int getAge() {
|
||||
return this.age;
|
||||
}
|
||||
|
||||
public void setAge(int age) {
|
||||
if (age < 0)
|
||||
throw new IllegalArgumentException();
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public List<Hobbies> getHobbies() {
|
||||
return this.hobbies;
|
||||
}
|
||||
|
||||
public void addHobby(Hobbies hobby) throws NoFreeTimeException {
|
||||
if (!hobbies.contains(hobby))
|
||||
if (hobbies.size() > 4)
|
||||
throw new NoFreeTimeException();
|
||||
else
|
||||
hobbies.add(hobby);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "{" + " preName='" + preName + "'" + ", lastName='" + lastName + "'" + ", age='" + age + "'"
|
||||
+ ", hobbies='" + hobbies + "'" + "}";
|
||||
}
|
||||
|
||||
}
|
28
de.hhn.ai.prog2.blatt1.exceptions/src/app/PersonService.java
Normal file
28
de.hhn.ai.prog2.blatt1.exceptions/src/app/PersonService.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
package app;
|
||||
|
||||
/**
|
||||
* PersonService
|
||||
*/
|
||||
public class PersonService {
|
||||
public static void main() {
|
||||
Person person = new Person("Max", "Mustermann", 18);
|
||||
try {
|
||||
person.addHobby(Hobbies.PROGRAMMIEREN);
|
||||
person.addHobby(Hobbies.PROGRAMMIEREN);
|
||||
person.addHobby(Hobbies.SCHLAFEN);
|
||||
person.addHobby(Hobbies.SONSTIGES);
|
||||
person.addHobby(Hobbies.HOBBY4);
|
||||
person.addHobby(Hobbies.HOBBY5);
|
||||
person.addHobby(Hobbies.HOBBY6);
|
||||
} catch (Exception e) {
|
||||
System.err.println("NoFreeTimeException");
|
||||
}
|
||||
System.out.println(person);
|
||||
try {
|
||||
Person person2 = new Person("", "Muster", 2);
|
||||
System.out.println(person2);
|
||||
} catch (IllegalArgumentException e) {
|
||||
System.err.println("Fehler beim erstellen einer Person");
|
||||
}
|
||||
}
|
||||
}
|
6
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.classpath
Normal file
6
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.classpath
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
17
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.project
Normal file
17
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.project
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<projectDescription>
|
||||
<name>de.hhn.ai.prog2.blatt1.mathematikaufgaben</name>
|
||||
<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>
|
|
@ -0,0 +1,7 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
21
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.vscode/launch.json
vendored
Normal file
21
de.hhn.ai.prog2.blatt1.mathematikaufgaben/.vscode/launch.json
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "java",
|
||||
"name": "Debug (Launch) - Current File",
|
||||
"request": "launch",
|
||||
"mainClass": "${file}"
|
||||
},
|
||||
{
|
||||
"type": "java",
|
||||
"name": "Debug (Launch)-App<de.hhn.ai.prog2.blatt1.mathematikaufgaben>",
|
||||
"request": "launch",
|
||||
"mainClass": "app.App",
|
||||
"projectName": "de.hhn.ai.prog2.blatt1.mathematikaufgaben"
|
||||
}
|
||||
]
|
||||
}
|
10
de.hhn.ai.prog2.blatt1.mathematikaufgaben/src/app/App.java
Normal file
10
de.hhn.ai.prog2.blatt1.mathematikaufgaben/src/app/App.java
Normal file
|
@ -0,0 +1,10 @@
|
|||
package app;
|
||||
|
||||
public class App {
|
||||
public static void main(String[] args) throws Exception {
|
||||
System.out.println(MathLogic.isAbundant(20));
|
||||
System.out.println(MathLogic.isPerfect(28));
|
||||
System.out.println(MathLogic.isHarshad(27));
|
||||
MathLogic.printAllLists(100);
|
||||
}
|
||||
}
|
106
de.hhn.ai.prog2.blatt1.mathematikaufgaben/src/app/MathLogic.java
Normal file
106
de.hhn.ai.prog2.blatt1.mathematikaufgaben/src/app/MathLogic.java
Normal file
|
@ -0,0 +1,106 @@
|
|||
|
||||
package app;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* MathLogic
|
||||
*/
|
||||
public class MathLogic {
|
||||
|
||||
/**
|
||||
* Get a list of divisors
|
||||
*
|
||||
* @param input Integer from which you want to get all divisors
|
||||
* @return List of Divisors
|
||||
*/
|
||||
private static List<Integer> getDivisors(int input) {
|
||||
List<Integer> divisors = new ArrayList<Integer>();
|
||||
for (int i = 1; i < input; i++) {
|
||||
if (input % i == 0) {
|
||||
divisors.add(i);
|
||||
}
|
||||
}
|
||||
return divisors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sum all divisors
|
||||
*
|
||||
* @param input number wich the divisors shall be summed
|
||||
* @return added up divisors
|
||||
*/
|
||||
private static int sumDivisors(int input) {
|
||||
List<Integer> divisors = getDivisors(input);
|
||||
int count = 0;
|
||||
for (int divisor : divisors) {
|
||||
count += divisor;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test entered number for abundanz
|
||||
*
|
||||
* @param input number wich shall be tested
|
||||
* @return if `input` is abundant or not?
|
||||
*/
|
||||
public static boolean isAbundant(int input) {
|
||||
int count = sumDivisors(input);
|
||||
return count > input;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test entered number for perfect
|
||||
*
|
||||
* @param input number which shall be tested
|
||||
* @return if `input` is perfect or not?
|
||||
*/
|
||||
public static boolean isPerfect(int input) {
|
||||
int count = sumDivisors(input);
|
||||
return count == input;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test entered number for Harshad-Zahl
|
||||
*
|
||||
* @param input number which shall be tested
|
||||
* @return if `input` is a Harshad-Zahl or not?
|
||||
*/
|
||||
public static boolean isHarshad(int input) {
|
||||
int num = input;
|
||||
int sum = 0;
|
||||
while (num > 0) {
|
||||
sum = sum + num % 10;
|
||||
num = num / 10;
|
||||
}
|
||||
return (input % sum) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Print everything
|
||||
*
|
||||
* @param limit number from 1 where to go
|
||||
*/
|
||||
public static void printAllLists(int limit) {
|
||||
List<Integer> abundants = new ArrayList<Integer>();
|
||||
List<Integer> perfects = new ArrayList<Integer>();
|
||||
List<Integer> harshads = new ArrayList<Integer>();
|
||||
for (int i = 1; i <= limit; i++) {
|
||||
if (isAbundant(i))
|
||||
abundants.add(i);
|
||||
if (isPerfect(i))
|
||||
perfects.add(i);
|
||||
if (isHarshad(i))
|
||||
harshads.add(i);
|
||||
}
|
||||
System.out.println("All abundant numbers from 1 to " + limit);
|
||||
System.out.println(abundants);
|
||||
System.out.println("All perfect numbers from 1 to " + limit);
|
||||
System.out.println(perfects);
|
||||
System.out.println("All harshad numbers from 1 to " + limit);
|
||||
System.out.println(harshads);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue