Nombre complexe en java

Résolu
zy choupinette Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis débutant en java donc j'ai des difficultés à trouver la bonne solution ,se qui ma conduit à demander votre aide.Bon c'est un tp de nombres complexes qui ne veux pas se compiler et j'ai pas su comment le justifié un coup de main svp ,voici mon pgm:
public class NombreComplexe{
public double a;
public double b;
public NombreComplexe(double a,double b){
this.a=a;
this.b=b;}

public NombreComplexe add(NombreComplexe c1){
NombreComplexe c = new NombreComplexe();
c.a=this.a+c1.a;
c.b=this.b+c1.b;
return(c);}

public NombreComplexe sub(NombreComplexe c1){
NombreComplexe c = new NombreComplexe();
c.a= this.a-c1.a;
c.b=this.b-c1.b;
return(c);}

public NomreComplexe mod(NombreComplexe c ){
NombreComplexe c = new NombreComplexe();
return(Math.sqrt(c.a*c.a+c.b*c.b));}

public static void main(String args[]){
NombreComplexe c = new NombreComplexe(2.0,4.0);
NombreComplexe c1 = new NombreComplexe(5.2,6.0);
NombreComplexe c = c.add(c1);
NombreComplexe c = c.sub(c1);
c.mod(c1);
}}
merci !

A voir également:

1 réponse

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
salut !

Tu pourrais indiquer l'erreur de compilation que te donne Java stp ? ça sera utile pour répondre plus vite !
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
ah, je crois que j'ai trouvé .

à un moment dans tes méthodes tu fais :

NombreComplexe c = new NombreComplexe(); 


tu as un constructeur qui prend 2 argunmetns pour initialiser les parties réelles et imaginaires, mais pas de constructeur qui ne prend pas d'argument.


Comme tu en as déjà un, Java ne crée pas de constructeur par défaut sans argument (il le fait tout seul habituellement, mais seulement si tu n'en crées pas d'autre)

Il te faut donc soit
1) définir un nouveau constructeur par défaut
2) soit changer tes méthodes pour qu'elles utilisent le seul constructeur que tu as déjà déclaré.

pour illustrer la deuxième possibilité, par exemple pour la méthode add :
changer

public NombreComplexe add(NombreComplexe c1){ 
  NombreComplexe c = new NombreComplexe(); 
  c.a=this.a+c1.a; 
  c.b=this.b+c1.b; 
  return(c);
}


en :

public NombreComplexe add(NombreComplexe c1){ 
  NombreComplexe c = new NombreComplexe(this.a+c1.a, this.b+c1.b); 
  return(c);
}
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
et compare avec l'erreur que tu obtiens pour la comprendre et pouvoir voir le problème toi-même ;)
0
zy choupinette Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
ok je vais voir mrc
0
zy choupinette Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai ésséyé mais c'est toujours le même problème, d'apres se que vs m'avez di j'aurai se pgm:
public class NombreComplexe{
public double a;
public double b;
public NombreComplexe(double a,double b){
this.a=a;
this.b=b;}

public NombreComplexe add(NombreComplexe c1){
NombreComplexe c = new NombreComplexe(this.a+c1.a,this.b+c1.b);
return(c);}

public NombreComplexe sub(NombreComplexe c1){
NombreComplexe c = new NombreComplexe(this.a-c1.a,this.b-c1.b);
return(c);}

public NombreComplexe mod(NombreComplexe c1 ){
NombreComplexe c = new NombreComplexe();
return(Math.sqrt(c1.a*c1.a+c1.b*c1.b));}

public static void main(String args[]){
NombreComplexe c = new NombreComplexe(2.0,4.0);
NombreComplexe c1 = new NombreComplexe(5.2,6.0);
NombreComplexe c = c.add(c1);
NombreComplexe c = c.sub(c1);
c.mod(c1);
}}
et le problème se pose toujours dans la méthode mod et c'est la même erreur qu'avant. et cette méthode ne devrais pas me rendre un nombre complexe mais plutôt un réel
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Puisque tu sais que tu dois renvoyer un réél, pourquoi est-ce que tu renvois un nombre complexe ?
De plus, à quoi te sert le paramètre c1, si tu calcules le module de this ?
0