Funktionswerte berechnen < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 00:38 Fr 22.10.2010 | Autor: | Fatih17 |
Aufgabe | In dieser Aufgabe sollen Sie ein Java-Programm schreiben, welches die Funktionswerte der Funktion f(x) := [mm] 3x^2 [/mm] + 6x - 7 für x = 0 (x = 0.0), x = 2.5 und x = 241.284 be-rechnet. Sie sollten dabei nur 2 Variablen vom Datentyp double verwenden. Vergessen Sie nicht diese Variablen vor ihrer ersten Verwendung zu deklarieren. In einer Variable wird der Wert x gespei-chert, in der anderen soll der jeweilige Funktionswert f(x) bis zur Ausgabe in der Konsole zwi-schengespeichert werden. Natürlich können Sie diese Variablen mehrmals verwenden (z.B. andere Werte zuweisen). |
Wie oben beschrieben soll ich ein Java Programm schreiben, dass Funktionswerte berechnet.
Die Ausgabe soll folgendermaßen Aussehen(CMD):
Funktionsgleichung: f(x) := [mm] 3x^2 [/mm] + 6x - 7
f(0.0)=-7
f(2.5)=26.75
f(241.284)=176094.60.....
Das hier ist mein Code:
public class Funktionswerte {
public static void main ( String[] args )
{
double funktion;
float zahl1= 0.0F;
double funktion2;
int zahl2= 2.5F;
{
funktion = (Math.pow(3*zahl1,2)+(6*zahl1)-7);
funktion2 = (Math.pow(3*zahl2,2)+(6*zahl2)-7);
System.out.println (" f(x) := [mm] "+3+"x^2"+ [/mm] " + " + 6+"x" + " - " + 7);
System.out.println ("f("+zahl1+")"+ " = "+funktion);
System.out.println ("f("+zahl2+")"+ " = "+funktion2);
}
}
}
Ich weiß es sieht nicht elegant aus, aber anders kenne ich es nicht. Leider komme ich nicht drum herum einen 3.double zu benutzen und das zwischenspeichern kann ich auch nicht.
Aber das komische ist, dass er bei 2.5 ein Ergebnis von 64,25 ausgibt. Was ist da falsch
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:55 Fr 22.10.2010 | Autor: | Marc |
Hallo,
> Ich weiß es sieht nicht elegant aus, aber anders kenne ich
> es nicht. Leider komme ich nicht drum herum einen 3.double
> zu benutzen und das zwischenspeichern kann ich auch nicht.
Du könntest doch schreiben
1: | double x,y;
| 2: | x = 0.0;
| 3: | y = 3*Math.pow(x,2)+6*x-7;
| 4: | System.out.println ("f("+x+")"+ " = "+y);
| 5: |
| 6: | x = 2.5;
| 7: | y = 3*Math.pow(x,2)+6*x-7;
| 8: | System.out.println ("f("+x+")"+ " = "+y); |
(Hier könnte man vorteilhaft Java-Funktionen benutzen, ich weiß aber nicht, ob ihr dieses benutzen dürft.)
> Aber das komische ist, dass er bei 2.5 ein Ergebnis von
> 64,25 ausgibt. Was ist da falsch
In deiner Funktionsdefinition schreibst du: Math.pow(3*zahl1,2). Damit ist der Term [mm] $(3*\text{zahl1})^2$ [/mm] gemeint und nicht der Term [mm] $3(\text{zahl1})^2$ [/mm] wie in der Aufgabestellung verlangt.
-Marc
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 11:40 Fr 22.10.2010 | Autor: | Fatih17 |
Zu deiner Frage über Javafunktionen:
Ich weiß noch nicht mal was du damit meinst :D
In der Vorlesung kam folgendes vor:
(Integer.parseInt(args[0])*Math.random())*3
vielleicht meinst du das damit?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:02 Fr 22.10.2010 | Autor: | Marc |
Hallo,
> Zu deiner Frage über Javafunktionen:
>
> Ich weiß noch nicht mal was du damit meinst :D
> In der Vorlesung kam folgendes vor:
>
> (Integer.parseInt(args[0])*Math.random())*3
>
> vielleicht meinst du das damit?
Nein, ich meine eine selbstgeschriebene Java-Funktion, also etwas derat:
1: | double Normalparabel( double x ) {
| 2: | return x*x;
| 3: | } |
Dann kannst du im Hauptteil des Programms bequem schreiben
1: | y = Normalparabel( 2 );
| 2: | ...
| 3: | y = Normalparabel( -3 );
| 4: | ... |
Der Vorteil ist, dass du die Funktionsvorschrift (hier x*x) nur einmal notieren musst, und dann für verschiedene x-Werte auswerten kannst.
Wie gesagt, wahrscheinlich stehst du aber noch am Anfang des Java-Lernens (die Aufgabenstellung deutet darauf hin), und du solltest hier noch keine selbst definierten Java-Funktionen benutzen.
-Marc
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:10 Fr 22.10.2010 | Autor: | Fatih17 |
alles klar vieln dank!
|
|
|
|