Objekt orientierte Programmierung

Sasu132

Mitglied
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 :D

Ich habe mich bereits an mehrere Teile der Aufgabe herangewagt :D
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 :D

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
 
M

Marcinek

Gast
Das mit dem Vorzeichen ist irgentwie Käse.

In der Schule haben wir gelernt, dass

Code:
x ^3 + x = x^3 + 0 * x^2 + x + 0
ist. Ergo muss man nur die Koerfizienten in einem array speichern.

Die Anzahl der Arrayfelder ist der Grad des Polynoms.

---

Die noch nicht bearbeiteren Teile möchte ich hier nicht kommentieren. Ich denke, wenn man so ein ganzes Übungsblatt bearbeitet hat, und das die schwerste Aufgabe ist, dass man das durchaus schaffen kann. Und der Ansatz habe ich ja beschrieben.
 
J

JohannisderKaeufer

Gast
In der Schule haben wir gelernt, dass

Code:
x ^3 + x = x^3 + 0 * x^2 + x + 0
ist. Ergo muss man nur die Koerfizienten in einem array speichern.

Das ist auch nur die halbe Wahrheit.

x ^3 + x = ...0 * x^4 + x^3 + 0 * x^2 + x + 0 + 0 * 1/x + 0 * x^-2 + 0 * x^-3 + 0 * x^-(3/4) + 0 * x^-(12/7) ...
 
M

Marcinek

Gast
Ich habe meine benötigte Punktzahl für den Übungsschein schon zusammen, das ist kein
Problem

Das war gelogen oder?

Wir machen hier keine Hausaufgaben. Versuch doch mal selber nachzudenken, statt hier zu spammen.


----

Naja, wenn man den grad = 10 hat und 20 koeffizienten, dann ist klar wohin die Reise geht und so ;D - Aber ich denke für den TO ist erstmal ausreichend die positiven zu betrachten.
 
Zuletzt bearbeitet von einem Moderator:

Sasu132

Mitglied
Das ist jetzt aber eine fette Unterstellung:noe:
Ich habe schon jetzt weit über den geforderten 50%.

Ich habe doch schon geschrieben, dass das eine Zusatzaufgabe ist, die ich machen möchte.
Und weil ich vorher noch kein Informatik hatte und selbst die, die bei uns in der Oberstufe Info hatten da im Moment nicht weiterkommen, wollte ich euch einfach um Rat fragen.

Und außerdem, an dem Programmcode kannst du wohl sehen, dass ich da bisher seehr viel schon selbst
dran gebastelt und herumprobiert habe.
Die Klasse Function und Main sind ja auch schon fertig.
Mir fehlt nur noch der Rest von Polynom und TrigoFunction und da komme ich im Moment nicht weiter...
 

Final_Striker

Top Contributor
Was mir auf die schnelle so aufgefallen ist
[java=15]
if(p.charAt = "-")[/code]

Ist keine Vergleich sondern eine Zuweisung ->
Code:
==
 

L-ectron-X

Gesperrter Benutzer
Trifft auch auf Anweisungen ein paar Zeilen weiter darunter zu. Sollte so in der Form aussehen:
[JAVA=15]if(p.charAt == '-')[/code]

Und die main()-Methode hat eigentlich, bis auf das Lesen aus dem Stream, nichts zu tun.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
el_niiinho13 Objekt auf der Konsole ausgeben lassen Allgemeine Java-Themen 8
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
SaftigMelo In einem Winkel Objekt bewegen Allgemeine Java-Themen 2
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
S Variable als Objekt Name Allgemeine Java-Themen 3
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
T Objekt in Array packen Allgemeine Java-Themen 6
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M Klassen Objekt weiter geben Allgemeine Java-Themen 1
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
S Applet Überprüfen ob ein Objekt angeklickt wurde Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
K Textdatei als Objekt Allgemeine Java-Themen 4
Viktim Classenname zu Objekt Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
J OOP Überwachen, ob ein Objekt erzeugt wird Allgemeine Java-Themen 9
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
F Neues Objekt aus .CSV definition Allgemeine Java-Themen 3
K Methoden Objekt wird nicht erkannt Allgemeine Java-Themen 11
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
T Objekt kontaktiert seinen "erzeuger" Allgemeine Java-Themen 5
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
T WeakReference/PhantomReference: Mitbekommen WELCHES Objekt nun GC'ed wird Allgemeine Java-Themen 2
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
L Klassen Polymorphie:2 Attribute gleichen Namens in einem Objekt Allgemeine Java-Themen 6
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
V Objekt löschen Allgemeine Java-Themen 7
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
M neues Objekt speichern, nicht Referenz Allgemeine Java-Themen 10
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
D Eigenen Objekt Pool Allgemeine Java-Themen 15
C blueJ: Objekt wird nicht in Objektleiste angezeigt Allgemeine Java-Themen 8
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
U Konstante in Objekt definieren Allgemeine Java-Themen 6
D this mit Objekt überschreiben Allgemeine Java-Themen 17
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
E Objekt erstellen Allgemeine Java-Themen 7
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
B Speicherverbrauch Objekt-Referenz Allgemeine Java-Themen 11
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
A Iterationen einer XML-Datei in einem Objekt sichern Allgemeine Java-Themen 5
R Objekt zur Laufzeit zerstören? Allgemeine Java-Themen 12
hdi Frage zur Objekt Initialisierung Allgemeine Java-Themen 4
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
T Serialisiertes Objekt über Socket nachladen Allgemeine Java-Themen 8
G Entity Objekt Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben