Hey,
hier kommt eine Aufgabe für echt Java-Profis.
Da ist eine Zusatzaufgabe unseres Übungsblattes.
Ich habe meine benötigte Punktzahl für den Übungsschein schon zusammen, das ist kein
Problem
Trotzdem reizt es mich noch diese zusätzliche Aufgabe auszuprobieren und somit noch mehr von
der Programmierwelt in Java zu verstehen.
Ich hatte in der Oberstufe kein Informatik, habe also jetzt im Studium mit Programmierung neu
angefangen, deshalb fehlt mir noch die Erfahrung, alles möglichst unkompliziert und optisch ansprechend zu programmieren
Ich habe mich bereits an mehrere Teile der Aufgabe herangewagt
Doch nun bin total überfordert und blicke einfach nicht mehr durch.
Ich würde mich sehr freuen, wenn mir da jemand sagen könnte, ob ich bisher alles richtig gemacht habe und wie ich das Programm noch vervollständigen muss.
-----------------------------------------------------------------------------------
1. Erstellen Sie eine abstrakte Klasse Function.java, die eine Funktion f :
R ! R modellieren soll. Die Klasse soll die folgenden drei abstrakten
Methoden enthalten:
• public abstract Function ableitung();
Diese berechnet die Ableitung der Funktion und gibt diese als Objekt
vom Typ Function zur¨uck.
• public abstract double integrate(double a, double b);
Diese berechnet das Integral ¨uber die Funktion in den Grenzen von
a bis b. Das Ergebnis ist eine reelle Zahl, die zur¨uckgegeben wird.
Dabei wird a b vorausgesetzt.
• public abstract String toString();
Diese gibt eine Beschreibung der Funktion als String zur¨uck.
Als konkrete Typen von Funktionen wollen wir Polynome und trigonometrische
Funktionen betrachten. Leiten Sie dazu eine Klasse Polynom.java
aus der Klasse Function.java ab. Diese Klasse soll die drei obigen abstrakten
Methoden in einer f¨ur Polynome geeigneten Art und Weise implementieren.
Wir gehen davon aus, dass das Polynom als Summe von
Termen der Form axk vorliegt, dabei ist x das reellwertige Argument der
Funktion, a eine reellwertige Konstante und k eine nat¨urliche Zahl. Ein
Beispiel f¨ur ein Polynom w¨are etwa:
2x2 + 6x3
− 12x1 + 7x5 + 4x0
¨Uberlegen Sie sich zuerst, wie Sie ein Polynom intern repr¨
asentieren wollen.
Der Konstruktor der Klasse Polynom.java bekommt die Beschreibung
des Polynoms als String:
public Polynom(String p)
Diese muss dann erst einmal in die von Ihnen gew¨ahlte interne Repr¨asentation
¨ubertragen werden.
Analog soll aus der Klasse Function.java auch eine Klasse TrigoFunction.
java abgeleitet werden, die eine Funktion repr¨asentiert, die sich als
Summe von Termen der Form a sin(bx) und a cos(bx) zusammensetzt. Ein
Beispiel w¨are etwa:
2 sin(1x) + 3 sin(2x) − 4 cos(2x) + 1 sin(7x)
¨Uberlegen Sie auch hier zuerst wieder, wie Sie eine solche trigonometrische
Funktion intern repr¨asentieren wollen. Der Konstruktor bekommt die
Beschreibung der Funktion wieder als String.
Schreiben Sie ein Programm, welches als Kommandozeilenparameter folgende
Informationen erh¨alt:
• Den Namen einer Datei, welche in jeder Zeile die Beschreibung einer
Funktion als String enth¨alt. Ein Beispiel f¨ur eine solche Datei ist im
Material zu diesem Aufgabenblatt enthalten.
• Die Anweisung ableiten. Dann soll das Programm f¨ur jede Funktion
in der Eingabedatei die Ableitung berechnen und diese dann zeilenweise
in eine Ausgabedatei schreiben. Der Name der Ausgabedatei
wird vom Nutzer als letzter Kommandozeilenparameter angegeben.
• Die Anweisung integrieren. Dann soll das Programm f¨ur jede Funktion
in der Eingabedatei das Integral berechnen. Die Grenzen a und
b werden vom Nutzer auch als Kommandozeilenparameter vorgegeben
und sind f¨ur alle Funktionen in der Eingabedatei dieselben. In
die Ausgabedatei soll dann zeilenweise immer die Funktion und der
Wert des Intregrals geschrieben werden.
-------------------------------------------------------------------------------------
also die Dateil Function.java habe ich schon geschrieben
die Main Methode habe ich zum Teil auch schon
und hier kommt mal meine bisherige Klasse Polynom.java ... also das was ich bis jetzt schon geschrieben habe
So ... das sind meine bisherigen Erkenntnisse
Bin nun total überfordert und würde mich sehr freuen, wenn mir da jemand helfen könnte.
Vielen Dank schonmal für die Mühe
Viele Grüße und einen schönen Abend
Sasu
hier kommt eine Aufgabe für echt Java-Profis.
Da ist eine Zusatzaufgabe unseres Übungsblattes.
Ich habe meine benötigte Punktzahl für den Übungsschein schon zusammen, das ist kein
Problem
Trotzdem reizt es mich noch diese zusätzliche Aufgabe auszuprobieren und somit noch mehr von
der Programmierwelt in Java zu verstehen.
Ich hatte in der Oberstufe kein Informatik, habe also jetzt im Studium mit Programmierung neu
angefangen, deshalb fehlt mir noch die Erfahrung, alles möglichst unkompliziert und optisch ansprechend zu programmieren
Ich habe mich bereits an mehrere Teile der Aufgabe herangewagt
Doch nun bin total überfordert und blicke einfach nicht mehr durch.
Ich würde mich sehr freuen, wenn mir da jemand sagen könnte, ob ich bisher alles richtig gemacht habe und wie ich das Programm noch vervollständigen muss.
-----------------------------------------------------------------------------------
1. Erstellen Sie eine abstrakte Klasse Function.java, die eine Funktion f :
R ! R modellieren soll. Die Klasse soll die folgenden drei abstrakten
Methoden enthalten:
• public abstract Function ableitung();
Diese berechnet die Ableitung der Funktion und gibt diese als Objekt
vom Typ Function zur¨uck.
• public abstract double integrate(double a, double b);
Diese berechnet das Integral ¨uber die Funktion in den Grenzen von
a bis b. Das Ergebnis ist eine reelle Zahl, die zur¨uckgegeben wird.
Dabei wird a b vorausgesetzt.
• public abstract String toString();
Diese gibt eine Beschreibung der Funktion als String zur¨uck.
Als konkrete Typen von Funktionen wollen wir Polynome und trigonometrische
Funktionen betrachten. Leiten Sie dazu eine Klasse Polynom.java
aus der Klasse Function.java ab. Diese Klasse soll die drei obigen abstrakten
Methoden in einer f¨ur Polynome geeigneten Art und Weise implementieren.
Wir gehen davon aus, dass das Polynom als Summe von
Termen der Form axk vorliegt, dabei ist x das reellwertige Argument der
Funktion, a eine reellwertige Konstante und k eine nat¨urliche Zahl. Ein
Beispiel f¨ur ein Polynom w¨are etwa:
2x2 + 6x3
− 12x1 + 7x5 + 4x0
¨Uberlegen Sie sich zuerst, wie Sie ein Polynom intern repr¨
asentieren wollen.
Der Konstruktor der Klasse Polynom.java bekommt die Beschreibung
des Polynoms als String:
public Polynom(String p)
Diese muss dann erst einmal in die von Ihnen gew¨ahlte interne Repr¨asentation
¨ubertragen werden.
Analog soll aus der Klasse Function.java auch eine Klasse TrigoFunction.
java abgeleitet werden, die eine Funktion repr¨asentiert, die sich als
Summe von Termen der Form a sin(bx) und a cos(bx) zusammensetzt. Ein
Beispiel w¨are etwa:
2 sin(1x) + 3 sin(2x) − 4 cos(2x) + 1 sin(7x)
¨Uberlegen Sie auch hier zuerst wieder, wie Sie eine solche trigonometrische
Funktion intern repr¨asentieren wollen. Der Konstruktor bekommt die
Beschreibung der Funktion wieder als String.
Schreiben Sie ein Programm, welches als Kommandozeilenparameter folgende
Informationen erh¨alt:
• Den Namen einer Datei, welche in jeder Zeile die Beschreibung einer
Funktion als String enth¨alt. Ein Beispiel f¨ur eine solche Datei ist im
Material zu diesem Aufgabenblatt enthalten.
• Die Anweisung ableiten. Dann soll das Programm f¨ur jede Funktion
in der Eingabedatei die Ableitung berechnen und diese dann zeilenweise
in eine Ausgabedatei schreiben. Der Name der Ausgabedatei
wird vom Nutzer als letzter Kommandozeilenparameter angegeben.
• Die Anweisung integrieren. Dann soll das Programm f¨ur jede Funktion
in der Eingabedatei das Integral berechnen. Die Grenzen a und
b werden vom Nutzer auch als Kommandozeilenparameter vorgegeben
und sind f¨ur alle Funktionen in der Eingabedatei dieselben. In
die Ausgabedatei soll dann zeilenweise immer die Funktion und der
Wert des Intregrals geschrieben werden.
-------------------------------------------------------------------------------------
also die Dateil Function.java habe ich schon geschrieben
Java:
abstract class Function
{
//abstrakte Methoden
public abstract Function ableitung();
public abstract double integrate(double a, double b);
public abstract String toString();
}
die Main Methode habe ich zum Teil auch schon
Java:
public class Main
{
public static void main(String[] args)
{
//Bufferedreader erzeugen, um die Datei lesen zu koennen
BufferedReader in = new BufferedReader(new FileReader (args[0]));
String zeile;
zeile = in.readLine();
zeile = in.readLine();
}
}
und hier kommt mal meine bisherige Klasse Polynom.java ... also das was ich bis jetzt schon geschrieben habe
Java:
public class Polynom
extends Function
{
// Variablen die global verfuegbar sein sollen
char[] Vorzeichen;
double [] Koeffizienten;
int [] Exponenten;
// Konstruktor
public Polynom(String p)
{
// Variablen spezifiziert
int AnzahlVorzeichen = 0;
if(p.charAt != "-")
{
AnzahlVorzeichen++;
}
for(int j = 0; j < p.length; j++)
{
if(p.charAt[j] == "-" || p.charAt[j] == "+")
{
AnzahlVorzeichen++;
}
}
// Array festlegen
Vorzeichen = new char[AnzahlVorzeichen];
Koeffizient = new double[AnzahlVorzeichen];
Exponent = new int[AnzahlVorzeichen];
// Array fuellen
//Beispiel fuer Methode charAt
Vorzeichen = p.charAt(Platz des gesuchten Vorzeichens);
//Beispiel fuer Methode substring
String s = "hierllllbinich"
Koeffizient = Integer.parseInt(s.substring(Zahl1, Zahl2));
Exponent = Integer.parseInt(s.substring(Zahl3, Zahl4));
}
public int findeVorzeichen (int start)
{
for(int i = start; i < p.length; i++)
{
if(p.charAt[i] = "-")
{
return i;
}
else {if(p.charAt[i] = "+")
{
return i;
}
else {if(p.charAt[i] = "+")
{
return i;
}}}
return
}
// alle weiteren Methoden
public Function ableitung()
{
}
public double integrate(double a, double b)
{
}
}
So ... das sind meine bisherigen Erkenntnisse
Bin nun total überfordert und würde mich sehr freuen, wenn mir da jemand helfen könnte.
Vielen Dank schonmal für die Mühe
Viele Grüße und einen schönen Abend
Sasu