Frage von buni94, 112

Hilfe Java Funktionen?

Hey leute ich muss die Aufgabe bis Montag erledigen und komme irgendwie garnicht weiter. Ich verstehe garnichts könnte mir jemand bitte dringend helfen ?

Funktionen berechnet und austestet.

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

a) die Umrechnung von Grad Celsius (°C) in Kelvin (K) sowie umgekehrt

b) die Information, ob eine Zahl gerade oder ungerade ist

c) die Fakultät einer Zahl

d) Rückgabewert

e) Rückgabewert logarithmische Temperaturdifferenz, die sich wie folgt berechnet:

Der natürliche Logarithmus ln einer Zahl wird mit der Funktion Math.log() berechnet.

f) Diese Funktion soll nichts zurückgeben, sondern eine Lernhilfe für das Ein-Mal-Eins ausdrucken. Als Parameter erhält sie die Zahl, für die das 1x1 ausgedruckt werden soll und bis zu welchem Wert.

Ein Aufruf mit den Parameter 3 und 5 soll dann das Ergebnis zeigen:

1 x 3 = 3 2 x 3 = 6 ... 5 x 3 = 15

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

Expertenantwort
von KnusperPudding, Community-Experte für Java, 65

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?

Antwort
von appletman, 60

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

Kommentar von KnusperPudding ,


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.

Kommentar von appletman ,

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.

Kommentar von KnusperPudding ,

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.

Kommentar von SirNik ,

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....

Kommentar von SirNik ,

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

Antwort
von buni94, 50

Leute die sache ist ich kenne mich echt garnicht aus mit programmieren wollte das halt jetzt lernen und meine hausaufgabe erledigen. Wenn es eine person zwischen euch gibt der mir gerne für diese aufgaben helfen könnte würde ich mich sehr freuen. Weil würde die antworten dann mit der person vergleichen wollen, ob ich sie richtig gelöst habe.

Kommentar von KnusperPudding ,

Leute die sache ist ich kenne mich echt garnicht aus mit programmieren

Wie kommt es dann, dass du in so einer Klasse sitzt?

wollte das halt jetzt lernen und meine hausaufgabe erledigen

Wie gesagt: Wir helfen dir, dir selbst zu helfen, indem wir dir Tipps geben. Dazu musst du uns erklären was du nicht verstanden hast.

 Wenn es eine person zwischen euch gibt der mir gerne für diese aufgaben helfen könnte würde ich mich sehr freuen. 

Können, ja. Wollen auch. Aber Arbeitsaufträge sind hier nicht erwünscht. Wir machen ja nicht deine Hausaufgaben. Wenn du was nicht verstanden hast, zeig was du versucht hast und wir helfen dir das zu verstehen. Zumal du auch keinen Lerneffekt hättest, wenn du deine Hausaufgaben an dritte delegierst.

Weil würde die antworten dann mit der person vergleichen wollen, ob ich sie richtig gelöst habe.

Dann sei so nett und poste deine Lösungen. Wir haben einige Community-Mitglieder, die hier durchaus kompetent sind. - Wir können dir daher sagen ob richtig oder falsch.

Antwort
von GermanSupporter, 65

Hallo buni94,

immer schön aufpassen!

Diese Seite sollte dir weiterhelfen: http://www.iti.fh-flensburg.de/lang/prog/funktion.htm

Liebe Grüße,

GermanSupporter

Antwort
von SirNik, 42

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;
}

// ...
}

Kommentar von SirNik ,

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

Kommentar von SirNik ,

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

Kommentar von buni94 ,

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 

Kommentar von SirNik ,

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.]

Kommentar von buni94 ,

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.

Kommentar von SirNik ,

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 }

Kommentar von SirNik ,

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

Kommentar von SirNik ,

nur .de :)

Antwort
von EightSix, 53

Und jetzr soll jemand alles für dich machen?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten