Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Java: Flächeninhalt eines Trapez berechnen
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Java: Flächeninhalt eines Trapez berechnen
derechteChickenWing
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 24.06.2020
Mitteilungen: 39
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-11-09


Die Aufgabe lauter: 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
Die Formel für die Berechnung des Trapez-Flächeninhaltes finden Sie beispielsweise unter mathematik-wissen.de/klasse-7/berechnung-von-flaechen/flaecheninhalt-trapez
Achten Sie auf die frühzeitige Datentypkonvertierung (Casting).
Sollte mindestens einer der Eingabewerte <= 0 sein, so soll -1.0 zurückgegeben werden. Wie soll ich es machen ?



Wahlurne Für derechteChickenWing bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
derechteChickenWing
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 24.06.2020
Mitteilungen: 39
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2020-11-09


Den Anfang habe ich schon.Weiter weiß ich nicht mehr    

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



Wahlurne Für derechteChickenWing bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27690
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2020-11-09


Hi derechteChickenWing

Den Anfang, gut.
Aber warum die Parameter int sein sollen, diese Vorgabe ist Quatsch😖
Aber sei's drum, der Funktionskopf ist danach ok.
Aber du wirst doch wohl eine mathematische Formel in Java umsetzen können😲
Und mehr ist es doch (fast) nicht.

Gruß vom ¼


-----------------
Bild



Wahlurne Für viertel bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Scynja
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.02.2011
Mitteilungen: 364
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2020-11-09


Hallo derechteChickenWing,

fang doch einfach einmal an und bereite dir einen Aufruf der Methode vor, wo du weißt welches Ergebnis zurückkommen muss. Jetzt kannst du an deiner Methode arbeiten, sodass sie dir das gewünschte Ergebnis liefert.
Java
static void main(String[] args){
 
  double result = trapezoidArea(-1,1,2);
  system.out.println(result);
}
 
public static double trapezoidArea(int a, int c, int h) {
  double result;
 
  return result;
}


[Die Antwort wurde nach Beitrag No.1 begonnen.]



Wahlurne Für Scynja bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
derechteChickenWing
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 24.06.2020
Mitteilungen: 39
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, vom Themenstarter, eingetragen 2020-11-09


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


So in etwa vielleicht? Aber irgendwo habe ich einen Fehler gemacht. Die Schleife wird nicht durchlaufen



Wahlurne Für derechteChickenWing bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Scynja
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.02.2011
Mitteilungen: 364
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2020-11-09


Spiel dein Programm doch einmal auf dem Papier durch. Dann wirst du sehen, dass du toten code geschrieben hast.



Wahlurne Für Scynja bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
thureduehrsen
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 13.11.2007
Mitteilungen: 895
Herkunft: Kiel, Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-11-09


Hallo zusammen,

2020-11-09 12:46 - Scynja in Beitrag No. 3 schreibt:
Java
double result = trapezoidArea(-1,1,2);
 

negative Seitenlängen?

Faszinierend!

Man kann diesen Testfall aber natürlich zum Anlass nehmen, in der Methode  trapezoidArea eine gute Fehlerbehandlung umzusetzen.

mfg
thureduehrsen


-----------------
sammeltlemmas.blogspot.de/

https://www.informatik.uni-kiel.de/~tdu/



Wahlurne Für thureduehrsen bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
derechteChickenWing
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 24.06.2020
Mitteilungen: 39
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2020-11-09


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

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

Verstehe nicht warum die Schleife nicht durchlaufen wird



Wahlurne Für derechteChickenWing bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Scynja
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.02.2011
Mitteilungen: 364
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2020-11-09


@thureduehrsen laut Aufgabenstellung ist eine gesonderte Behandlung von Seitenlängen <=0 gefordert.

@derechteChickenWing
1) Du hast keine Schleife beschrieben. Schleifen sind for/while/forEach usw.
2) Dein Code macht folgendes:

a) Eingabewert ist 0.
b) Wenn Eingabewert > 0 ist
 b1) dann: ...
 b2) sonst: ...

Wie unschwer zu erkennen ist, ist Eingabewert unter keinen Umständen > 0.



Wahlurne Für Scynja bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27690
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2020-11-09


2020-11-09 15:03 - derechteChickenWing in Beitrag No. 7 schreibt:
Verstehe nicht warum die Schleife nicht durchlaufen wird
Und ich verstehe nicht, welche Schleife du meinst 😲
Eine Schleife ist ein Block von Anweisungen, die wiederholt ausgeführt werden, z.B. mit for oder while.

Warum eine if-Abfrage (immer wieder) als Schleife bezeichnet wird kann ich nicht nachvollziehen.



Wahlurne Für viertel bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
derechteChickenWing
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 24.06.2020
Mitteilungen: 39
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2020-11-09


Danke für die Antworten




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

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

Jetzt ist die if Abfrage richtig



Wahlurne Für derechteChickenWing bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27690
Herkunft: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2020-11-09

\(\begingroup\)\(\newcommand\d{\mathop{}\!\mathrm{d}}\)
Wozu soll dieser Kopfstand mit dem Eingabewert eigentlich gut sein?

Du legst den Wert auf 0 fest und fragst dann, ob er $\ge 0$ ist. Nicht sehr sinnig.

Zumal deine andere Abfrage, ob einer der Übergabeparameter $\le 0$ ist, damit völlig lahmgelegt ist, denn der else-Zweig kann ja niemals erreicht werden.
\(\endgroup\)


Wahlurne Für viertel bei den Matheplanet-Awards stimmen
Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
derechteChickenWing hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]