Java Modellieren.. mit algorithmen

Topas93

Commander
🎅Rätsel-Elite ’24
Registriert
Jan. 2009
Beiträge
2.105
Nun wir machen in Info gerade ien klein projekt in dem wir folgenden auftrag haben:

-klein projekt:
Es soll ein Regelwerk modelliert werden das:
-zahlen addiert
-lineare gleichungen löst
-wurzelnberechnungen mittels heronverfahren
-quadratische gleichungen löst

problem ist das ich momentan nur weiß wie man eine addition schreibt und nicht mal die geht richtig....

Wie sollte ich anfangen? was sollte ich mir überlegen? welche klassen gibt es und welche beziehungen haben diese?

danke im vorraus für die hilfe^^

MfG Topas
 
Zahlen addieren? Meinst du binär? Dann sollte das dir helfen:
http://de.wikipedia.org/wiki/Dualsystem
Das ist erklärt wie man addiert/subtrahiert auf binärer Basis.

Quadratische Gleichungen kannst du mit P-Q Formel lösen:
http://de.wikipedia.org/wiki/PQ-Formel#L.C3.B6sungsformeln
du musst jedoch aufpassen. Es kann komplexe lösungen geben wenn der Ausdruck in der Wurzel negativ ist. Du musst quasi einen negativen Ausdruck in der Wurzel mittels if Anweisung prüfen.

Wurzelziehen mittels Heronverfahren erfolgt nach diesem algo:
http://de.wikipedia.org/wiki/Heronverfahren
Dafür musst du den Algo in einer Schleife (For oder while) paar mal durchlaufen. Je öffter desto genauer das ergebniss, desto längere rechenzeit jedoch.

Meinst du lineare gleichungen Lösen oder ein lineares Gleichungssystem lösen?
Eine lineare Gleichung lautet y= ax+b. Das a ist die Steigung und b der Y Wert andem x=0 ist.

Ein lineares Gleichungssystem, mit belibig vielen Gleichungen, löst man indem man das Gleichungssystem in diese Form darstellt. A*x=b . A ist die Koeffizenten Matrize, x ist einVector mit deinen gesuchten Parameter und b ist dein lösungsvector. Wenn man das Gleichungssytsem so darstellt kann man es umstellen: x=A^-1*b. Ist ist dann dein Vector mit den gesuchten Parameter. Sowas jetzt in algos zu verfassen ist net so einfach, deshalb denke ich dass ihr das nicht so machen müsst wenn doch sag bescheid dann helf ich dir weiter.
 
hmm ... du willst gleich mit sachen anfangen, wo ich nicht den eindruck habe, dass du deren bedeutung kennst ^^ (schlussfolgere ich mal aus dem fail der addition) ...

ein kleiner einblick in dein code dürfte schon reichen, um dir wesentlich besser helfen zu können.

du scheinst auch keinen großen bedarf an modellierung zu haben, sondern eher an grundkenntnissen der programmierung.
 
Sorry aber zum einen ist CB nach wie vor kein Hausaufgabenboard und du scheinst dir im Vorfeld auch nicht die größte Mühe gegeben haben dir ein paar Sachen anzueignen oder zu recherchieren.

Wenn euch solch eine Aufgabe gestellt wird, vermutlich von einem Lehrer, dann solltet ihr davor zumindest was von UML oder einer anderen Modellierungssprache gehört haben. Ausserdem gibt es in UML wiederrum diverse Ansätze diese Aufgabe darzustellen. Einen Überblick über diverse Möglichkeiten findest du hier: http://de.wikipedia.org/wiki/Unified_Modeling_Language

Als nächstes solltest du dich für ein Werkzeug entscheiden, in deinem Fall typischerweise ein Klassendiagramm. Hierbei modellierst du alle Klassen mit ihren Multiplizitäten und Beziehungen, sodass du die Klassenrümpfe problemlos in Code fassen kannst. Anschliessend suchst du dir entsprechende Attribute und Methoden aus und trägst diese in die spezifischen Klassen ein. Eine kleine Übersicht wie sowas aussehen kann findest du hier: http://www.jeckle.de/files/umltutorial.pdf
 
Sorry für die späte meldung.

Das ganze sollte sich innerhalb einer klasse abspielen. Und nein es sind keine hausaufgasben^^. Die ganze klasse rätselt am zustandsdiagramm und den übergägngen sowie der klassenkarte und dem regelwerk....

P.s wir haben auch hobby programmierer die selbst nicht mehr weiterwissen...

Hm wie macht man nochmal spoiler?

/**
* Write a description of class GanzeZahlen here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class GanzeZahlen
{
// instance variables - replace the example below with your own
private int x;
private int y;
private int ergebnis;

/**
* Constructor for objects of class GanzeZahlen
*/
public GanzeZahlen(int neuesx ,int neuesy)
{
y = neuesy;
x = neuesx;


}

/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public int abs(int w) {
if(w>0) {
w=w;
}
else{
w=w;
}
return w;
}


public int addieren(){

if(x>0){
if(y>0){
ergebnis = (abs(x)+abs(y));
}
else{
if(abs(x)>abs(y)){
ergebnis = (abs(x)-abs(y));
}
else{
ergebnis = -(abs(y)-abs(x));
}
}
}
else{
if(y>0){
if(abs(x)>abs(y)){
ergebnis = (abs(x)-abs(y));
}
else{
ergebnis = -(abs(y)-abs(x));
}
}
else{
ergebnis = -(abs(x)+(y));
}
}
return ergebnis;}}
 
Warum machst du das addieren so kompliziert?
Code:
public int add() {
   return x+y;
}

Deine abs dürfte so, wie du sie geschrieben hast, nicht funktionieren
Code:
private int abs(int w) {
   return (w < 0) ? -w : w;
}
 
Zurück
Oben