Hallo,
ich versuche mir gerade selbst Java beizubringen und habe im Zuge dessen ein Programm geschrieben, dass vom User die Koeffizienten, den Grad und die zu untersuchende Stelle von einem beliebigen Polynom erfragt. Das versuche ich mit variablen Parametern zu realisieren. Das Programm funktioniert auch recht gut bis auf die Tatsache, dass ich keine Ahnung habe wie ich der Methode
die erfragten variablen Parameter gebe. Habe schon überlegt, ob man einen String erstellen kann und mit diesem String die Parametereingabe verwirklicht.
Hier das Programm Teil 1 (Problem in Teil 2):
Und Teil 2 mit dem Problem:
In meinem JAVA-Buch steht zu diesem Thema nichts und auch im I-Net konnte ich bis jetzt nichts finden, vielleicht hat einer einen Tipp für mich.
LG Stefan.
ich versuche mir gerade selbst Java beizubringen und habe im Zuge dessen ein Programm geschrieben, dass vom User die Koeffizienten, den Grad und die zu untersuchende Stelle von einem beliebigen Polynom erfragt. Das versuche ich mit variablen Parametern zu realisieren. Das Programm funktioniert auch recht gut bis auf die Tatsache, dass ich keine Ahnung habe wie ich der Methode
Code:
funktion(double x, double... args)
Hier das Programm Teil 1 (Problem in Teil 2):
Java:
import java.io.*;
public class Funktion
{
int x; //Funktionsvariable
int AnzKoeff; //Anzahl der Koeffizienten = Polynomgrad-1
int[] Koeff; //Koeffizenten
String writeFunction; //Hiermit soll das Polynom darstellbar sein
String writeKoeff; //Versuch: variablen Parameter über Stringeingabe
public int getAnzKoeff()
throws IOException
{
BufferedReader din = new BufferedReader(
new InputStreamReader(System.in));
int a;
System.out.println("Geben sie die Anzahl der Funktionskoeffizienten an.");
a = Integer.parseInt(din.readLine());
AnzKoeff = a;
System.out.println("Sie haben "+AnzKoeff+" gewählt.");
return AnzKoeff;
}
public int getX()
throws IOException
{
BufferedReader din = new BufferedReader(
new InputStreamReader(System.in));
int a;
System.out.println("Geben sie die zuberechnende Stelle (x) an. ");
a = Integer.parseInt(din.readLine());
a= x;
return x;
}
public void getKoeff()
throws IOException
{
BufferedReader din = new BufferedReader(
new InputStreamReader(System.in));
Koeff = new int[AnzKoeff];
for(int i = 0; i < AnzKoeff; ++i )
{
System.out.println( "Geben sie den " + i + ". Funktionskoeffizienten an." );
Koeff[i] = Integer.parseInt(din.readLine());
}
}
public String getFuncString()
{
String writeFunk = "";
for(int i = 0; i < AnzKoeff; ++i )
{
writeFunk = ( Koeff[i] + "x^" + i + "+" + writeFunk );
}
writeFunction = writeFunk;
System.out.println(writeFunction);
return writeFunction;
}
/*public String getKoeffString()
*{
* String writeFunk = (String)(Koeff[0]);
* for(int i = 0; i < AnzKoeff; ++i )
* {
* writeFunk = ( Koeff[i]+, + writeFunk );
* }
*
* writeFunction = writeFunk;
* System.out.println(writeFunction);
*
* return writeKoeff;
*}
*/
// Hier wird das eigentliche Programm ausgeführt
public static void funktion(double x, double... args)
{
double funktion = 0;
for( int i = 0; i < args.length; ++i )
{
funktion = funktion + args[i] * Math.pow( x , i );
System.out.println( args[i] + " = a" + i + " für x^" + i );
// System.out.println(funktion);
}
System.out.println( "Für die obenstehenden Koeffizienten und x = " + x + " ist der Funktionswert: " + funktion );
}
}
Und Teil 2 mit dem Problem:
Java:
import java.io.*;
public class TestFunktion
{
public static void main(String[] args)
throws IOException
{
Funktion funktionsTest = new Funktion();
funktionsTest.getX();
funktionsTest.getAnzKoeff();
funktionsTest.getKoeff();
funktionsTest.getFuncString();
// HIER STECKT MEIN PROBLEM !! Die Eingabe soll variabel sein, genau wie die Methode.
funktionsTest.funktion(funktionsTest.x , funktionsTest.Koeff[0],funktionsTest.Koeff[1],funktionsTest.Koeff[2]);
}
}
In meinem JAVA-Buch steht zu diesem Thema nichts und auch im I-Net konnte ich bis jetzt nichts finden, vielleicht hat einer einen Tipp für mich.
LG Stefan.