Toon posts:

[Java] Complexe getallen berekeningen *

Pagina: 1
Acties:
  • 471 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo goeroe's!

Voor een opdracht van school moeten wij een externe class file maken om bewerkingen uit te voeren met Complexe getallen. De class voor het complexe getal moeten zelf schrijven.

code :

public class Complex
{
private float x1, y1;

//constructor
public Complex (float real, float imaginair)
{
x1 = real;
y1 = real;
}
//functie om reeel deel op te halen
public float getReal()
{
return x1;
}

//functie om imaginair deel op te halen
public float getImaginair()
{
return y1;
}

public ???? sum(?????)
{
????????????
}
}


Een van de bewerkingen die gedaan moet kunnen worden is het optellen van twee complexe getallen. De opdracht die uitgevoerd moet kunnen worden is :

Complex complex3 = complex1.sum(complex2);

Je kan uit een functie toch slechts 1 waarde naar 'buiten' sturen (met behulp van return)?? En een complex getal heeft immers een reeel deel en een imaginair deel :?

Heeft iemand een oplossing van hoe de functie met de vraagtekens hierboven ingevuld kan worden, zodat daadwerkelijk de functie :

Complex complex3 = complex1.sum(complex2);

uitgevoerd kan worden vanuit een hoofdprogramma?


grtz

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Wat dacht je van een Complex? ;) .

Heb even je titel iets verduidelijkt. De relatie met applets is gering :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Even iets anders, waarom noem je je member variabelen niet gewoon real en imaginair? Dit is een stuk duidelijker dan x1 en y1.
Je constructor wordt dan:
code:
1
2
3
4
public Complex (float real, float imaginair) {
   this.real = real;
   this.imaginair = imaginair;
}

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Het is mischien handig om te kijken naar de javadoc van de classes Integer en Real. Deze classes zijn vergelijkbaar met de class die jij moet maken. Kijk wat voor methoden er in die classes gebruikt zijn en hoe ze werken, en probeer in je eigen class dezelfde methoden te implementeren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Marcj
  • Registratie: November 2000
  • Laatst online: 17:21
code:
1
2
3
4
5
6
7
8
public Complex sum(Complex twee)
{
  float real, imag;
  real = (berekening);
  imag = (berekening);
  Complex ret(real, imag);
  return ret;
}

Zo moet het toch kunnen ??

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 17:42

Gerco

Professional Newbie

Op zaterdag 16 februari 2002 13:38 schreef Marcj het volgende:
Zo moet het toch kunnen ??
Ja, dat klopt, maar de bedoeling was waarschijnlijk om hem zelf het 1 en ander te laten uitvinden, het is tenslotte ZIJN huiswerk.

Ik denk niet dat het hier over complexe getallen gaat, maar eerder over de basisprincipes van objectgeorienteerd programmeren en nu geef je zomaar de oplossing weg :+

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik vind overigens dat je de functie beter 'add' kunt noemen. Je voegt namelijk een complexe waarde toe bij de huidige waarde en levert een nieuwe waarde op. Een 'sum' is een operatie op twee waarden die een nieuwe waarde oplevert. Er is daar geen notie van een beginwaarde. Bij dit OO ontwerpje is dat er wel :) .

Je zou er overigens zelfs voor kunnen om add( ...) de waarde op te laten tellen bij jezelf. Je hoeft dan geen nieuwe waarde op te leveren. Op deze manier beperkt je de object-creatie nogal :) . Het is dan wel handig om even een constructor te maken die gegeven een Complex een nieuwe Complex maakt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Marcj
  • Registratie: November 2000
  • Laatst online: 17:21
Op zaterdag 16 februari 2002 13:41 schreef Gerco het volgende:

[..]

Ja, dat klopt, maar de bedoeling was waarschijnlijk om hem zelf het 1 en ander te laten uitvinden, het is tenslotte ZIJN huiswerk.

Ik denk niet dat het hier over complexe getallen gaat, maar eerder over de basisprincipes van objectgeorienteerd programmeren en nu geef je zomaar de oplossing weg :+
Ok, ik zal in vervolg minder aardig zijn :P

Verwijderd

Topicstarter
Hallo goeroes,

Ik heb de volgende functie gemaakt, en deze werkt :)

code :

public Complex sum(Complex complex2)
{
float real2, imag2;

real2 = complex2.getReal();
imag2 = complex2.getImaginair();

sumReal = real2 + real;
sumImaginair = imag2 + imaginair;

Complex total = new Complex(sumReal, sumImaginair);
return total;
}

Maar klopt het dat er nu IN een object, een object van het eigen type gemaakt wordt?

Complex total = new Complex(sumReal, sumImaginair);

En heb ik daarmee dus weer een wonderbaarlijk stukje Java techniek gezien?

grtz

Verwijderd

Op dinsdag 19 februari 2002 10:52 schreef depaashaas het volgende:
Hallo goeroes,

Ik heb de volgende functie gemaakt, en deze werkt :)

code :
[een boel code]

Maar klopt het dat er nu IN een object, een object van het eigen type gemaakt wordt?

Complex total = new Complex(sumReal, sumImaginair);

En heb ik daarmee dus weer een wonderbaarlijk stukje Java techniek gezien?

grtz
Ja, dat klopt.
Op deze manier kun je dus ook meerdere waarden terug geven. Je maakt een object en vist daar later alle variabelen uit die je nodig hebt.
Pagina: 1