Skip to content

Instantly share code, notes, and snippets.

@hannojg
Created December 15, 2018 15:36
Show Gist options
  • Save hannojg/55865c593186bcba4908e17c195c0e73 to your computer and use it in GitHub Desktop.
Save hannojg/55865c593186bcba4908e17c195c0e73 to your computer and use it in GitHub Desktop.
/**
* Ein Wuerfel, der aus Gummi besteht und eine bestimmte Form hat.
* Er verhaelt sich auf bestimmte Art und Weise wenn er gedrueckt wird.
*/
public class Gummiwuerfel implements Produkt {
private double hoehe, laenge, breite;
private double gesamtPresskraft;
private int pressvorgaenge = 0;
/**
* Erstellt einen neuen Gummiwuerfel mit gleichlangen Seiten,
* die der gegebenen seitenlaenge entsprechen
* @param seitenlaenge Seitenlaenge fuer den Wuerfel
*/
public Gummiwuerfel(double seitenlaenge) {
this.hoehe = seitenlaenge;
this.laenge = seitenlaenge;
this.breite = seitenlaenge;
}
/**
* Dureckt den Wuerfel um einen gegebenen Faktor. Bei einem Faktor der größer
* als 5 ist wird der Wuerfel halbiert in der Hoehe. Laenge und Breite bleiben
* gleich. Mit jeder weiteren fuenfer Abstufung wird der Wuerfel erneut halbiert.
* @param pressfaktor Pressfaktor der auf den Wuerfel drueckt
*/
public void druecke(double pressfaktor) {
//akkumuliere gesamt presskraft, da mehrere Pressen angelegt sein koennen
gesamtPresskraft += pressfaktor;
//Rechne die Anzahl an nötigen Pressvorgängen nach der gesamten Pressleistung aus
int gesamtPressvorgaenge = new Double(gesamtPresskraft - (gesamtPresskraft % 5)).intValue()/5;
for(int i=pressvorgaenge+1;i<=gesamtPressvorgaenge;i++) {
pressvorgaenge = i;
//Teile die Hoehe durch den gegebenen Faktor
hoehe = hoehe / 2;
}
}
/**
* Gibt die Daten des Wuerfels in der Standardausgabe aus.
*/
public void print() {
System.out.format("Gummiwürfel: %.2fx%.2fx%.2f\n", laenge, breite, hoehe);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment