Hilfe Java Funktionen?

...komplette Frage anzeigen

6 Antworten

Das sind eigentlich relativ simple Aufgaben, frei nach dem Stil:

public class Homework {

 public static double celsiusToKelvin(double celiusGrad) {
   return celiusGrad+273,15;
 }

 ...
}

Woran scheitert es denn bei dir?

Hallo :)

Als Hilfestellung für dich:

In Java programmiert man innerhalb Methoden. Eine Methode in Java hat einen Ausgang und kann ein bis mehrere Eingänge haben.
Pseudomäßig sieht das so aus:
() { ... }

In Java konkret hier ein Beispiel:
public int eineMethode (int eingang) { ... }

Das 1. int steht für den Datentyp der Daten, welcher mit dem Schlüsselwort 'return' innerhalb des Methodenkörpers zurückgegeben wird.

Die Variablendeklaration in den Klammern sind die Eingänge, oder die Übergabeparameter. Die oben genannte Methode würde man wie folgt aufrufen:
eineMethode(345);

Die 345 als Wert stehen dann in der ganzzahlvariable (int) eingang.

Hoffe mal, dass das Prinzip verstanden wurde :)

Ich werde dir bei a) helfen und dir den Methodenkopf für b) hinschreiben, den rest musst du allerdings alleine lösen (aufrufe stehen in der main):

public class Demo {
public static void main(String[] args) {
Demo d = new Demo ();
d.celsiusToKelvin(32.3); // Rückgabe hier: 305.45
d.istGerade(56); // atückgabe hier: true
// Hier den Rest aufrufen
}

//a)
// Diese Methode soll ebenfalls umgekehrt programmiert werden
public double celsiusToKelvin(double celsius)
{
return celsius + 273.15;
}

// b)
public boolean istGerade(int zahl)
{
return zahl % 2 == 0;
}

// ...
}

bin am Handy, weiß also nicht, ob die Formatierungen hin gehauen hat

0

edit: Pseudomäßig sieht das so aus: Zugriffsmodifizierer Tückgabedatentyp Methodenname(Übergabeparameter) { ... }

0

Demo d = new Demo ();
d.celsiusToKelvin(32.3); // Rückgabe hier: 305.45
d.istGerade(56); // atückgabe hier: true
// Hier den Rest aufrufen
muss ich das auch aufschreiben 

was bedeutet denn demo d 

0

Eine Klasse in Java ist wie ein Bauplan für ein Objekt. mit new erstellt man dann konkret ein Objekt. de facto wird mit Demo d = new Demo(); ein Objekt/eine Instanz von Demo erstellt. dies benötigst du, damit du die Methoden überhaupt benutzen kannst. für dich alternativ: du siehst wie bei der main ganz oben ein static steht. wenn du static bei jeder Methode mit anfügst, dann brauchst du dieses Demo d = new Demo () nicht mehr und kannst die Methoden direkt aufrufen: istGerade (2);, ohne static bräuchtest du eben das new Demo () und müsstest es so aufrufen: d.istGerade (2); [beachte das d.]

0
@SirNik

okay hab a und b hinbekommen auch keine fehler im cmd zu sehen, jedoch habe ich noch eine frage wie kann ich die sachen denn im cmd sehen.

Weil ich kann irgendwie nichts sehen.

0

Du musst diese natürlich ausgeven: System.out.println(istGerade (2));, durch diese Zeile wird der rückgabewert deiner 2. Methode in der Konsole ausgegeben also einfach jede Methode innerhalb von System.out.println() aufrufen. Ausnahme: bei einer Methode wird NICHTS zurückgegeben (schlüsselwort void). public void methode ()... dort findet die ausgabe innerhalb statt (also methode () { //Aufgabe + Ausgabe }

0

Wie kommst du dazu zu programmieren? wieso in de schule? warst du nie da? www.geiler-net.dee lies dir das mal durch......

0

nur .de :)

0

Hast du an die main-Methode gedacht?

Mach doch alles in der main-Methode, ohne die läuft sowieso nichts in Java.

public static void main(String() args) {

}

Prüfung, ob Zahl gerade ist: zahl % 2 == 0 Abfrage ist die Lösung, denn bei Division der geraden Zahl durch 2 bleibt kein Rest übrig!

% : modulo-Operator


Achten Sie jeweils auf sinnvolle Parameterdeklarationen und Rückgabewerte und denken Sie daran, mögliche Fehler abzufangen.

Wenn die Aufgabe so beschrieben ist, ist davon auszugehen dass pro Aufgabe eine Methode zu erstellen ist und nicht die main-Methode enthalten sein sollte. Nur Methoden haben Rückgabe-Werte, sowie Parameter.

Der Tipp mit modulo ist sicherlich zielführend für das lösen von b, allerdings macht mich stutzig, dass wohl einfache Operationen wie Plus und Minus beim Fragesteller Probleme machen.

0
@KnusperPudding

Na schön. Erst mal: In Java gibt es keine "Funktionen". Für jede Rechenoperation sollte man eine eigene Klasse schreiben. Die Klassen werden dann von einer (Hilfs-)Klasse aufgerufen, die die main-Methode enthält. Am besten jede Klasse in eine eigene Datei, denn es darf nur eine public Klasse in einer Datei stehen.

0
@appletman

Pro Aufgabe würde ich dennoch behaupten, es reicht eine Klasse. Jedoch Pro Aufgabe eine Methode.

Der letzte Satz vom Fragesteller lässt dies vermuten:

Alle Funktionen kommen in eine Java-Datei.

Ich bin mir ehrlich gesagt gar nicht sicher, ob hier eine main Methode überhaupt verlangt wird. Ich weiß nicht genau wie das zu verstehen ist:

Bitte geben Sie Ihre Java-Datei im Dateifeld und eine Ausgabe des Programmablaufs im Textfeld ab.

Was für ein Textfeld gemeint sein soll: Keine Ahnung, auch wenn es zuerst auf den Konsolen-Output hindeutet, ist das ja etwas, was wirklich abzugeben ist. Des weiteren Programmablauf? Klingt für mich so als sollte man hier einen Programmablaufplan schreiben.

Eine Main hätte ich nur drin gelassen, bis die Aufgaben erledigt wären und wenn diese nicht explizit erwünscht ist, wieder entfernt.

0

Also mein Verständnis sieht so aus: Eine Klasse mit Methoden (Funktionen, in Java nennt man eine Funktion halt einfach Methode, der Sinn ist der gleiche). für je ein Aufgabenteil eine extra Methode. innerhalb der main soll dann ein output geschehen, d.h. jede Methode soll aufgerufen werden und das Ergebnis der Rückgabe soll ausgegeben werden. die Java-Datei soll offenbar inklusive dem generiertem Output (mittles copy&paste) auf einen server hochgeladen werden. es scheint eben irgendwas zu geben, wo er einfach das zeugs reinhauen soll. für uns ist das aber eher uninteressant. @appletman und für jede rechenoperation eine neue Klasse schreiben? das erschließt sich mir nicht ganz. denke doch nur mal an die Math-Klasse.... hier geht es auch eh nicht um Klassen, sondern um Methoden....

0

und Programmablauf: einmal ausführen, die main ruft die methoden auf, die geben was zurück, dass wird ausgegeben. das ist der programmablauf und die erzeugt eine ausgabe, die kopiert werden soll

0

Was möchtest Du wissen?