Hilfe bei der Aufgabe

jonathanpizza

Mitglied
Wir haben eine Aufgabe bekommen, wo ich seit Stunden nicht weiter komme. Wir sollten zunächst einen einfachen Rechner (nach seinen Vorgaben) programmieren, was mit problemlos gelungen ist. Den Code dazu werde ich euch einfügen.


public class Rechner
{
private double ergeb, a, b;


public Rechner()
{
ergeb = 0;
}

/** a und b können jeweils ein Wert des Types double vergeben oder ein neuer Wert gegeben werden.
* Eigentlich war diese Methode in zwei geteilt, ich habe diese aber in eine zusammengefasst.
* Trotzdem macht diese Methode in meinen Augen nicht viel Sinn,
* da bei jeder neuen Rechenoperation sowieso neue Werte vergeben werden.
*/
public void setA(double neuerAWert){
a = neuerAWert;

}

public void SetB(double neuerBWert){
b = neuerBWert;

}

//Mit den folgenden Methoden kann man einen Wert für jeweils a und b vergeben.
//Mit diesen wird dann die ausgewählte Rechenoperation durchgeführt und das Ergebnis wird ausgegeben.

public double addiere(double a, double b){ // Methode zur Addition der Werte

ergeb = a + b;
return ergeb;

}




public double summe(){

int ergeb;


for (int a = 1; a <= ergeb; a++){
ergeb = (int)addiere(a, b);
System.out.println(ergeb);
}

return ergeb;
}


public double berechneFakultaet(int f) {

int fakultaet = 1; //außerhalb der Schleife anlegen und Wert zuweisen
int faktor = 1;

while (faktor <= f) {
fakultaet = fakultaet * faktor;
faktor++;
}

System.out.println("Die Fakultät von " + f + " ist: " + fakultaet);

return fakultaet;
}






public double subtrahiere(double a, double b){ // Methode zur Subtraktion der Werte

ergeb = a - b;
return ergeb;

}

public double multipliziere(double a, double b){ // Methode zur Multiplikation der Werte

ergeb = a*b;
return ergeb;

}

public double dividiere(double a, double b){ // Methode zur Division der Werte



if (a == 0 || b == 0) { //if-Anweisung: falls einer der Variablen den Wert 0 hat, wird eine Fehlermeldung ausgegeben.

System.err.println();
System.err.println ("Fehler! Sie haben versucht mit 0 zu teilen."); // Alternative print Anweisung, Error wird ausgegeben
return ergeb = 0;
}
else //Ansonsten wird das Ergebnis einer "normalen" Rechnung (ohne "0" als Wert) ausgegeben.
ergeb = a/b;

return ergeb;
}

public double getErgebnis(){ // Mit dieser Methode kann das Ergebnis nochmal aufgerufen werden.

System.out.println("Das vorherige Ergebnis lautet: " + ergeb + "."); // Das Ergebnis der letzten Rechenoperation wird angezeigt.

return ergeb;

}
}

Dazu sollen wir folgendes machen:

a.
Die Methode double summe(int, int) soll die Summe aller Ganzzahlen von der ersten bis zur zweiten Ganzzahl ausgeben. Dabei soll sie auf die bereits bestehende Methode addiere(double, double) zugreifen! Es soll egal sein, in welcher der beiden Parameter größer ist. Sie soll also nicht „selber rechnen

b.
Die Methode double fakultaet(int) soll die Fakultät des Übergabeparameters zurückgeben. Dabei soll sie auf die bereits bestehende Methode multipliziere(double, double) zugreifen! Sie soll also nicht „selber rechnen

c.
Die Methode double fakultDifferenz(int, int) soll die Differenz zweier Fakultäten zurückgeben und ebenfalls nicht selber rechne

d. Schreiben Sie eine Klasse Teste. Diese Klasse soll eine Methode boolean testen() beinhalten, die mit geeigneten Parametern testet, ob die drei oben genannten Funktionen funktionieren. Es dürfen hier noch keine Unit-Tests genutzt werden.


a und b habe ich versucht, die anderen beiden noch nicht angefangen.

Ich verstehe nicht ganz wie ich auf die Variablen der Method addiere(double, double) und fakultaet(int) zugreifen soll..



Noch dazu hat er gesagt dass die Codes ungefähr so aussehen sollen:

public double summe (int a, int b) {
int ergeb;

....
ergeb = addiere(a, b);

.....

}


Würde mich sehr um Hilfe freuen! Danke schonmal!
 
B

BestGoalkeeper

Gast
Wahrscheinlich ist die Aufgabe c) so gemeint:
Java:
public class Rechner {
    public double facDif(int f, int g) {
        double fac = 1;
        double fac2 = 1;
        int a = 1;
        int b = f < g ? f : g;
        int c = f < g ? g : f;
        for (int i = a; i <= c; i++) {
            fac *= i;
            if (i == b) {
                fac2 = fac;
            }
        }
        return fac - fac2;
    }

    public static void main(String[] args) {
        Rechner rech = new Rechner();
        System.out.println(rech.facDif(1, 1));
        System.out.println(rech.facDif(1, 2));
        System.out.println(rech.facDif(2, 1));
        System.out.println(rech.facDif(5, 4));
        System.out.println(rech.facDif(4, 5));
        System.out.println(rech.facDif(7, 3));
        System.out.println(rech.facDif(3, 7));
    }
}
 

Blender3D

Top Contributor
[CODE lang="java" title="Test" highlight="6,7,10"]public class Test {
public static TestItem[] tests = { new TestItem(TestItem.FUNC_TYPE.SUM, 2, 5, 14),
new TestItem(TestItem.FUNC_TYPE.FACT, 7, 5040), new TestItem(TestItem.FUNC_TYPE.FACDIFF, 3, 5, -114) };

public static void main(String[] args) {
for (TestItem t : tests)
System.out.println(t.type + "\t" + testen(t) + "\t" + t);
}

public static boolean testen(TestItem test) {
switch (test.type) {
case FACT:
return Rechner.fakultaet(test.param[0]) == test.result;
case FACDIFF:
return Rechner.fakultDifferenz(test.param[0], test.param[1]) == test.result;
case SUM:
return Rechner.summe(test.param[0], test.param[1]) == test.result;
}
return false;
}
}[/CODE]
[CODE lang="java" title="TestItem"]public class TestItem {
public enum FUNC_TYPE {
SUM, FACT, FACDIFF
};

public final int[] param;
public final int result;
public final FUNC_TYPE type;

public TestItem(FUNC_TYPE type, int a, int result) {
this.type = type;
param = new int[1];
param[0] = a;
this.result = result;
}

public TestItem(FUNC_TYPE type, int a, int b, int result) {
this.type = type;
param = new int[2];
param[0] = a;
param[1] = b;
this.result = result;
}

@Override
public String toString() {
String str = "[";
for (Integer i : param)
str += i + " ";
return str + "-> " + result + "]";
}
}[/CODE]
[CODE lang="java" title="Rechner" highlight="2-7,9-11,13-23"]public class Rechner {
public static double fakultaet(int n) {
double result = 1;
for (int value = 2; value <= n; value++)
result = multiplizier(result, value);
return result;
}

public static double fakultDifferenz(int a, int b) {
return subtrahiere(fakultaet(a), fakultaet(b));
}

public static double summe(int a, int b) {
if (a > b) {
int tmp = a;
a = b;
b = tmp;
}
int sum = 0;
for (int value = a; value <= b; value++)
sum = (int) addiere(sum, value);
return sum;
}

public static double addiere(double a, double b) {
return a + b;
}

public static double dividiere(double a, double b) {
if (b == 0)
throw new IllegalArgumentException("divisen by zero!");
return a / b;
}

public static double subtrahiere(double a, double b) {
return a - b;
}

public static double multiplizier(double a, double b) {
return a * b;
}
}[/CODE]
 
B

BestGoalkeeper

Gast
Naja, a) hätte dort stehen müssen, Sie dürfen keine Elementarrechenoperationen direkt verwenden und b) ist es unsinnig die Fakultät zweimal zu berechnen.
 

MoxxiManagarm

Top Contributor

Blender3D

Top Contributor
Es kommt darauf an wie die "Fakultätsdifferenz" definiert ist... Wenn es um die absolute Differenz geht dann ja liefert immer korrekte Werte.
Mir scheint du nimmst es mit den lesen von Vorgaben nicht so ganz genau.
In der Angabe steht:
c.
Die Methode double fakultDifferenz(int, int) soll die Differenz zweier Fakultäten zurückgeben und ebenfalls nicht selber rechnen ..
Differenz = Minuend - Subtrahend
 
B

BestGoalkeeper

Gast
Also nicht absolute Differenz... Dann lass das "f < g ? f : g;" Geraffel halt weg. ;)

Und nein, wenn die Aufgabenstellung nicht >gut< und eindeutig ist dann lese ich solche nicht mehr. ;) Und hier mangelte es ja schon an der korrekten Wiedergabe der Aufgabenstellung....
 

Blender3D

Top Contributor
Wenn die Absicht der Aufgabenstellung ist, nichts dabei zu lernen dann ist das Ziel ja errreicht
Ich denke das Ziel der Aufgabenstellung ist es, ein Gefühl für die Verwendung von Funktionen zu entwickeln und eine Einführung für die Notwendigkeit von Testverfahren ( JUnit) zu vermitteln.
Ich denke nicht, dass es um die Optimierung von Algorithmen dabei geht. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
V Hilfe Aufgabe Zahlen Java Basics - Anfänger-Themen 9
O Hilfe bei Aufgabe Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
D Hilfe bei Verständnis von Aufgabe Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
K Erste Schritte Hilfe bei Aufgabe Java Basics - Anfänger-Themen 20
M Hilfe bei array Aufgabe. Java Basics - Anfänger-Themen 2
B Programmier - Aufgabe Hilfe :( Java Basics - Anfänger-Themen 0
B Programmier - Aufgabe ohne Ahnung Hilfe :( Java Basics - Anfänger-Themen 5
R hilfe bei Aufgabe Java Basics - Anfänger-Themen 1
J Hilfe mit Aufgabe Java Basics - Anfänger-Themen 2
P Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 9
N Hilfe bei function aufgabe! Java Basics - Anfänger-Themen 3
Q Vererbung Kleine Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 5
H mysql brauche hilfe, wer kann eine (längere) aufgabe für mich erledigen Java Basics - Anfänger-Themen 2
I Hilfe bei Aufgabe Java Basics - Anfänger-Themen 2
S Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 11
S Erste Schritte BlueJ-Aufgabe: Programmcode / Brauche dringend Hilfe !!! Java Basics - Anfänger-Themen 37
S Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 19
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Hilfe bei Java-Aufgabe Java Basics - Anfänger-Themen 15
A [Hilfe] einfache Aufgabe Java Basics - Anfänger-Themen 26
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
F Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 2
G Hilfe zur einer Aufgabe: Datumsüberprüfung beim Gregorianis Java Basics - Anfänger-Themen 2
A Uni-Aufgabe - brauche Hilfe Java Basics - Anfänger-Themen 15
S Brauche hilfe zu dieser AUfgabe Java Basics - Anfänger-Themen 4
D Java Aufgabe fürs Studium (bitte um Hilfe) Java Basics - Anfänger-Themen 8
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben