Trapezberechnung

jono

Top Contributor
Aufgabe:
Implementieren Sie eine statische-public Methode mit dem Namen "trapezoidArea" in der Klasse "Functionality.java", welche den Flächeninhalt eines Trapezes berechnen soll. Die Methode bekommt als Eingabeparameter die zwei parallelen Seiten a und c; und die Höhe h als Interger-Werte. Die Methode gibt einen Double-Wert zurück.
trapezoidArea(a : int, c : int, h : int) : double
Achten Sie auf die frühzeitige Datentypkonvertierung (Casting).
Sollte mindestens einer der Eingabewerte <= 0 sein, so soll -1.0 zurückgegeben werden.

Code:
Java:
    public static double trapezoidArea(int a, int c, int h) {

        double sur = 0;
        if (sur > 0) {
            sur = (double) 0.5 * (a + c) * h;
            return sur;
        } else if (a <= 0 || c <= 0 || h <= 0)
        {
            return -1.0;
        }
        return sur;

    }

Fehlermeldung der Uni:
Java:
1) testTrapezoidArea(PublicTests)
java.lang.AssertionError: expected:<4.0> but was:<0.0>
    at org.junit.Assert.fail(Assert.java:88)
    at org.junit.Assert.failNotEquals(Assert.java:834)
    at org.junit.Assert.assertEquals(Assert.java:553)
    at org.junit.Assert.assertEquals(Assert.java:683)
    at PublicTests.testTrapezoidArea(PublicTests.java:9)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:52)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
    at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
    at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Mir wird nicht wirklich klar, woran das liegt...
 

fhoffmann

Top Contributor
Java:
        double sur = 0;
        if (sur > 0) {
Die Bedingung ist nie wahr! Deshalb berechnest du nie die Fläche.
 

jono

Top Contributor
Aufgabe:
Implementieren Sie eine statische-public Methode mit dem Namen „createDouble“ in der Klasse "Functionality.java". Die Methode bekommt zwei Integer-Werte a und b als Eingabe und soll diese wie folgt zu einem Double-Wert transformieren und zurückgeben: Der erste Eingabewert a, soll vor dem Komma bzw. Punkt stehen. Der zweite Eingabewert b, soll nach dem Komma bzw. Punkt stehen und überflüssige Nullen sollen entfernt werden.

Es dürfen keine Imports verwendet werden, um diese Aufgabe zu lösen. Auch die Verwendung der Math-Bibliothek oder anderen Bibliotheken ist untersagt. Implementieren Sie einen Algorithmus, der mindestens eine sinnvolle Schleife enthält. Gegebenenfalls müssen Sie mathematische Methoden selbst implementieren.

Hierzu ist mir die Lösung des Problems nur durch Double.parseDouble gelungen. Jedoch sollen ja keine Bibliotheken verwendet werden und eine Schleife findet keine Verwendung bei meiner Lösung. Kann mir da evtl. bitte einer einen Ansatz geben ?
 
B

BestGoalkeeper

Gast
Neues Thema bitte! sonst kommt hier doch alles durcheinander (hat nicht mit Trapezberechnungen zu tun)
 

Neue Themen


Oben