PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kleine Frage zu einem Code


AlcoLix
2008-12-08, 15:36:11
Hallo Community,

ich hab folgende Frage und zwar hab ich eine Aufgabe in der ich eine Methode namens "signum" schreiben soll, die einen double-Wert als Parameter übergeben bekommt und davon folgende int-Werte zurück liefert:

double-Parameter > 0.0Rückgabewert lautet 1
double-Parameter == 0.0 Rückgabewert lautet 0
double-Parameter < 0.0 Rückgabewert lautet -1

Mein Code schaut folgendermaßen aus:

class Signum
{
public static void main (String [] args)
{
double Parameter;
int rueckgabewert;
StdEingabe instream_ref;

//Objekt erzeugen

instream_ref = new StdEingabe();

//zahl einlesen

Parameter = instream_ref.liesDoubleN ("Bitte Parameter angeben: ");

if (Parameter > 0.0)
{
rueckgabewert = 1;
System.out.println ("Der Rueckgabewert lautet:" + rueckgabewert);
}
if (Parameter == 0.0)
{
rueckgabewert = 0;
System.out.println ( "Der Rueckgabewert lautet:" + rueckgabewert);
}
if (Parameter < 0.0)
{
rueckgabewert = -1;
System.out.println ("Der Rueckgabewert lautet:" + rueckgabewert);
}

}//endmethod main
}//endclass Signum

Hab ich jetzt hier zuviel geschrieben? Und wie ist das gemeint mit dem Parameter übergeben?

robobimbo
2008-12-08, 16:02:49
Du hast keine Methode geschrieben die die Anforderungen erfüllt sondern einfach Spaghetticode in die statische MainMethode reingetippt.

Dein logischer Programmablauf ist ansich fast richtig, aber Du solltest Dich nochmal mit deinen Unterlagen auseinandersetzen und dann nochmal deine Aufgabe lesen.

Eine Methodensingnatur sieht folgendermassen aus:

modifizierer rückgabetyp methodenname (parameteryp1 parameterwert1, ...., parametertypN parameterwertN)
{
// dein code
// ....
// ....
return deinrückgabewert;
}


Ansonsten, in Deinem Ablauf kannst Du dir ein if sparen, wenn nicht grösser als 0 ist und nicht kleiner als null ist - kannst du mit unwahrscheinlich hoher sicherheit davon ausgehen dass nur mehr 0 überbleibt :)

ManuelCalavera
2008-12-08, 16:05:53
Ich würde Aufgabenstellung so interpretieren, dass es im Endeffekt nicht eigenständig lauffähig sein muss

class Aufgabe_XY
{

public int signum (double value) {
if (value > 0) return 1;
else if (value < 0) return -1;
else return 0;
}

}

Ansonsten, in Deinem Ablauf kannst Du dir ein if sparen, wenn nicht grösser als 0 ist und nicht kleiner als null ist - kannst du mit unwahrscheinlich hoher sicherheit davon ausgehen dass nur mehr 0 überbleibt

gibts in java kein NAN?

AlcoLix
2008-12-08, 16:08:05
doch, in Java gibts NAN

und à propos einfacher Spaghetticode, ich bin froh das ich überhaupt was hinbekomm :D glaub ich lern das nie :P

Trap
2008-12-08, 16:32:16
Viel kürzer wird die Methode wenn man http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Double.html#compareTo(java.lang.Double) mit den richtigen Parametern benutzt ;)

Ok, vielleicht doch nicht, compareTo gibt irgendwas positives/negatives oder 0 zurück nicht 1, 0 oder -1.

#44
2008-12-08, 16:37:54
StdEingabe instream_ref;

Du studierst nicht zufällig in Würzburg?

AlcoLix
2008-12-08, 16:45:40
Du studierst nicht zufällig in Würzburg?

Mag sein :)