Nombre complexe en java

Résolu/Fermé
zy choupinette Messages postés 14 Date d'inscription jeudi 24 novembre 2011 Statut Membre Dernière intervention 12 janvier 2013 - 2 déc. 2011 à 16:32
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 2 déc. 2011 à 22:15
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 jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
2 déc. 2011 à 16:49
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 jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
2 déc. 2011 à 16:54
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 jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
2 déc. 2011 à 16:54
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 jeudi 24 novembre 2011 Statut Membre Dernière intervention 12 janvier 2013
2 déc. 2011 à 16:56
ok je vais voir mrc
0
zy choupinette Messages postés 14 Date d'inscription jeudi 24 novembre 2011 Statut Membre Dernière intervention 12 janvier 2013
2 déc. 2011 à 19:30
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
2 déc. 2011 à 19:34
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