Sie sind auf Seite 1von 5

public class Gegenstände {

private int Gewicht;

public int getGewicht()


{
return Gewicht;
}

public Gegenstände(int Gewicht)


{
this.Gewicht=Gewicht;
}
}

import java.util.HashSet;
import java.util.Set;

public class Behälter {

private int MaxGewicht;


private Set<Gegenstände> MengeGegenstände;
private int AktuellesGewicht;

public int getMaxGewicht()


{
return MaxGewicht;
}

public Set getMengeGegenstände()


{
return MengeGegenstände;
}

public int GegenständeEinfügen(Gegenstände x)


{
if(AktuellesGewicht+x.getGewicht()<=MaxGewicht)
{
AktuellesGewicht=AktuellesGewicht+x.getGewicht();
MengeGegenstände.add(x);
}
else{
System.out.println("Behälter voll, hinzufügen nicht
möglich");
}
return AktuellesGewicht;
}

public void NochVerfügbarAusgabe()


{
System.out.println(AktuellesGewicht);
}
public Behälter(int MaxGewicht)
{
this.MaxGewicht=MaxGewicht;
this.MengeGegenstände=new HashSet<Gegenstände>();
AktuellesGewicht = 0;
}
}

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class Problem {

private int MaxGewicht;


private Set<Gegenstände> MengeGegenstände;

public int getMaxGewicht()


{
return MaxGewicht;
}

public Set getMengeGegenstände()


{
return MengeGegenstände;
}

public Problem(int MaxGewicht , int MengeGegenstände)


{
this.MaxGewicht=MaxGewicht;
this.MengeGegenstände=new HashSet<Gegenstände>();
}

public void isTrivial()


{
if(MengeGegenstände.isEmpty()||MaxGewicht==0)
{
System.out.println("Das Problem ist trivial erfüllt");
}

public Problem() {
// TODO Auto-generated constructor stub
}

public void zufälligesProblem(int max , int anzahlGegenstände)


{
Random y = new Random();
System.out.print("MaxTragelast= " + MaxGewicht + " mit
Gegenständen mit Gewicht ");
int q=anzahlGegenstände;
int[] asd = new int[q];
for(int j = 0; j<asd.length; j++)
{
int zufallsZahl = y.nextInt(q);
asd[j] = zufallsZahl;
System.out.print(asd[j] + ", ");
}
}

import java.util.Random;

public class Test {

public static void main(String[] args) {

Gegenstände g1 = new Gegenstände( 1 );


Gegenstände g2 = new Gegenstände(2);
Gegenstände g3 = new Gegenstände(6);
Behälter b1 = new Behälter(7);
b1.GegenständeEinfügen(g1);
b1.GegenständeEinfügen(g2);
b1.GegenständeEinfügen(g3);
Problem p1 = new Problem();
p1.zufälligesProblem(4, 5);
Problem p2 = new Problem(4,0);
p2.isTrivial();

package a03.expressions;
import java.util.Stack;

public class PostfixEvaluator {

static String[] p1;


static Stack<Double> doubleList = new Stack<Double>();

public static double konvertierteZahl;


public static double performOperation(double a, double b, String c)
{
double ergebnis=0;

if(c.equals("+"))
{
ergebnis = a + b;
}
else if(c.equals("-"))
{
ergebnis = a-b;
}
else if(c.equals("*"))
{
ergebnis = a*b;
}
else if(c.equals("/"))
{
ergebnis = a/b;
}
else{
System.out.println("Fehler, die ersten 2 übergebenen Werte
müssen vom Typ double" +
"sein, der dritte ein Operator vom Typ String!");
}
return ergebnis;
}

public double evaluate(String s1[])


{
s1 = p1;

for(int i = s1.length; i>0;i--)


{

if(s1[i].equals(" "))
{
System.out.println("Fehler, ungültige
Eingaben(Leerzeichen)");
}
else if(s1[i].equals("+")|s1[i].equals("-")|
s1[i].equals("*")|s1[i].equals("/"))
{
double a = doubleList.pop();
double b = doubleList.pop();
doubleList.push(performOperation(a,b,s1[i]));
}
else
{
double konvertierteZahl = Double.valueOf(s1[i]);
doubleList.push(konvertierteZahl);

}
double t=doubleList.peek();
return t;

package a03.expressions;

public class Test


{
public static void main(String[] args)
{
// test the method with sample data
testEvaluator("3.141", 3.141);
testEvaluator("4 3 -", 4 - 3);
testEvaluator("1 -2 3 4 * * *", ((1 * -2) * 3) * 4);
testEvaluator("5 3 - 2 4 2 / + *", (5 - 3) * (2 + (4 / 2)));

PostfixEvaluator p1 = new PostfixEvaluator();


p1.performOperation(4,3,"+");

/**
* Tests the method {@link PostfixEvaluator#evaluate(String[])}
with the given data.
* @param postfix the mathematical expression in postfix notation
with ' ' separating the elements
* @param target the value the method should compute
*/
private static void testEvaluator(String postfix, double target)
{
// perform the evaluation using the test data
String[] postfixList = postfix.split(" ");
double result = PostfixEvaluator.evaluate(postfixList);

// post the results


System.out.println(postfix + " = " + result);
if(Math.abs(target - result) > 1e-3)
System.out.println("The correct result would be: " +
target + ".");
else
System.out.println("This is the correct result.");
System.out.println();
}
}