Que fais ce programme java?
freemasons
-
freemasons -
freemasons -
salut!!!
est ce que quelqu'un peut me dire ce que fais ce programmme, je ne le comprends absolument pas!
merci
Soient les trois classes A, B et C:
public class A{
booleanf;
public A (int v1) {f=m(v1);}
private boolean m(int v1) {System.out.println("A "+ v1);
if (v1<0) return true; else return false;}
protected int m(int v1; int v2) {System.out.printl ("A "+ v1 + " " "+ v2);
if (f) return v1; else return v2; }
}
public classe B extends A{
public B(int v1) {super(v1);}
double m(double v1, int v2) {System.out.println("B "+ v1 + " " + v2);
return v1/m(v2, v2+1);}
}
public class C extends A{
public C(int v1, int v2) {super(v1+v2);}
boolean m(int v1, double v2) {System.out.println("C" +v1 " " + v2);
if (v1>v2)return true; else return false;}
}
Qu'affiche le programme suivant avec les valeurs entières v1, v2 initialisées à partir de votre date de naissance: v1=mois v2= quantième du mois
public static void main (String[] args {
int v1, v2;
B b = new B(v2);
C c= new C (v1,v2);
c.m(v2, b.m(1.0 , v1));
b.m(c.m(v1, v2),v1);
}
est ce que quelqu'un peut me dire ce que fais ce programmme, je ne le comprends absolument pas!
merci
Soient les trois classes A, B et C:
public class A{
booleanf;
public A (int v1) {f=m(v1);}
private boolean m(int v1) {System.out.println("A "+ v1);
if (v1<0) return true; else return false;}
protected int m(int v1; int v2) {System.out.printl ("A "+ v1 + " " "+ v2);
if (f) return v1; else return v2; }
}
public classe B extends A{
public B(int v1) {super(v1);}
double m(double v1, int v2) {System.out.println("B "+ v1 + " " + v2);
return v1/m(v2, v2+1);}
}
public class C extends A{
public C(int v1, int v2) {super(v1+v2);}
boolean m(int v1, double v2) {System.out.println("C" +v1 " " + v2);
if (v1>v2)return true; else return false;}
}
Qu'affiche le programme suivant avec les valeurs entières v1, v2 initialisées à partir de votre date de naissance: v1=mois v2= quantième du mois
public static void main (String[] args {
int v1, v2;
B b = new B(v2);
C c= new C (v1,v2);
c.m(v2, b.m(1.0 , v1));
b.m(c.m(v1, v2),v1);
}
A voir également:
- Que fais ce programme java?
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Programme demarrage windows - Guide
- Java apk - Télécharger - Langages
7 réponses
Je reposte plus clairement ton programme pour y voir plus clair. Merci de faire la même chose la prochaine fois.
Et le main :
public class A{
boolean f;
public A (int v1) {
f=m(v1);
}
private boolean m(int v1) {
System.out.println("A "+ v1);
if (v1<0)
return true;
else
return false;
}
protected int m(int v1; int v2) {
System.out.printl ("A "+ v1 + " " "+ v2);
if (f)
return v1;
else return v2;
}
}
public classe B extends A{
public B(int v1) {
super(v1);
}
double m(double v1, int v2) {
System.out.println("B "+ v1 + " " + v2);
return v1/m(v2, v2+1);
}
}
public class C extends A{
public C(int v1, int v2) {
super(v1+v2);
}
boolean m(int v1, double v2) {
System.out.println("C" +v1 " " + v2);
if (v1>v2)
return true;
else
return false;
}
}
Et le main :
public static void main (String[] args {
int v1 = 10, v2 = 06;
B b = new B(v2);
C c= new C (v1,v2);
c.m(v2, b.m(1.0 , v1));
b.m(c.m(v1, v2),v1);
}
Je ne sais pas ce qu'elle fait exactement mais en tout cas ton prog ne risque pas de fonctionner c'est bourré d'erreur de syntaxe.
Aussi, il y a une boucle infinie dans ton programme :
Cette fonction se rappelle elle-même sans condition d'arrêt / retour, donc ca risque de boucler à l'infinie, du moins au moins jusqu'à ce qu'une exception sur la division soit levée...
Aussi, il y a une boucle infinie dans ton programme :
double m(double v1, int v2) {
System.out.println("B "+ v1 + " " + v2);
return v1/m(v2, v2+1);
}
Cette fonction se rappelle elle-même sans condition d'arrêt / retour, donc ca risque de boucler à l'infinie, du moins au moins jusqu'à ce qu'une exception sur la division soit levée...
Fautes de syntaxes :
Mise à part ca, je pense que ton prof n'as pas du relire correctement le programme ni même tenter de l'éxécuter pour la raison suivante :
Ta classe B hérite de la classe A. Dans la classe A tu as une méthode nommée 'm', de même dans la classe B. Généralement, le fait de redéfinir une méthode (même nom, même retour, mêmes paramètres) dans une classe fille permet de changer son comportement par rapport à la classe mère (ou une autre classe fille).
Or le problème avec ton programme c'est que tu as bien la fonction 'm' reféfinie dans la classe fille B, mais pas avec les mêmes paramètres ni le même retour, ce qui a pour conséquence de ne pas pouvoir compiler le programme puisqu'il y a ambiguité entre les deux fonctions.
public classe B extends A // Pas de 'e' à class
int v1; int v2) // ';' à remplacer par ','
System.out.println("C" +v1 " " + v2); // manque un '+' juste apres v1
Mise à part ca, je pense que ton prof n'as pas du relire correctement le programme ni même tenter de l'éxécuter pour la raison suivante :
Ta classe B hérite de la classe A. Dans la classe A tu as une méthode nommée 'm', de même dans la classe B. Généralement, le fait de redéfinir une méthode (même nom, même retour, mêmes paramètres) dans une classe fille permet de changer son comportement par rapport à la classe mère (ou une autre classe fille).
Or le problème avec ton programme c'est que tu as bien la fonction 'm' reféfinie dans la classe fille B, mais pas avec les mêmes paramètres ni le même retour, ce qui a pour conséquence de ne pas pouvoir compiler le programme puisqu'il y a ambiguité entre les deux fonctions.
J'ai fais quelques modifications pour pouvoir faire tourner ton programme (renommer certaines méthodes, fautes de syntaxes corrigées, etc.). Voici le code :
J'ai fais tourner et voici ce que ca affiche :
Quans à savoir ce qu'il fait... aucune idée ^^
public class Test {
public class A{
boolean f;
public A (int v1) {
f=m(v1);
}
private boolean m(int v1) {
System.out.println("A "+ v1);
if (v1<0)
return true;
else
return false;
}
protected int m(int v1, int v2) {
System.out.println ("A "+ v1 + " " + v2);
if (f)
return v1;
else return v2;
}
}
public class B extends A{
public B(int v1) {
super(v1);
}
protected double mm(double v1, int v2) {
System.out.println("B "+ v1 + " " + v2);
return v1/m(v2, v2+1);
}
}
public class C extends A{
public C(int v1, int v2) {
super(v1+v2);
}
protected boolean mmm(int v1, double v2) {
System.out.println("C" +v1 +" " + v2);
if (v1>v2)
return true;
else
return false;
}
}
public void myMain ( ){
int v1 = 10, v2 = 6;
B b = new B(v2);
C c= new C (v1,v2);
c.mmm(v2, b.mm(1.0 , v1));
b.m(c.m(v1, v2),v1);
}
public static void main (String[] args ) {
Test myTest = new Test();
myTest.myMain();
}
}
J'ai fais tourner et voici ce que ca affiche :
A 6 A 16 B 1.0 10 A 10 11 C6 0.09090909090909091 A 10 6 A 6 10
Quans à savoir ce qu'il fait... aucune idée ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question