Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1056 connectés 

  FORUM HardWare.fr
  Programmation

  [java] devinette (pour s'amuser)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] devinette (pour s'amuser)

n°33410
lamatrice
Posté le 21-05-2001 à 12:42:12  profilanswer
 

Il faut deviner, sans l'exécuter, le mot de passe affiché par ce programme.
 
class Str
{ Str(char x)
  { System.out.print(x); }
};
 
class Base  
{ static Str s=new Str('P');  
  int a_=methode();
  final int b_;
  static
  { b_=surcharge();
  }
  Base()
  { System.out.print  ('E');  
  }
  int methode()
  { System.out.print  ('L');  
    return 0;
  }
  int surcharge()
  { System.out.print  ('S');
    return 1;
  }
  static
  { System.out.print  ('A');  
  }
  static Str t;  
  static  
  { t=new Str('R');
  }
}
 
class Derive extends Base
{ int c_=surcharge();
  Derive()
  { super();
    System.out.print  ('E');  
  }
  int surcharge()
  { System.out.print  ('L');  
    return 2;
  }
  static
  { System.out.print  ('A');  
  }
}
 
public class Start
{ public static void main(String[] argv)
  { new Derive();
    System.out.flush();
  }
}

mood
Publicité
Posté le 21-05-2001 à 12:42:12  profilanswer
 

n°33412
AMDFan
Posté le 21-05-2001 à 12:54:39  profilanswer
 

Simplement : EP ?

n°33413
lamatrice
Posté le 21-05-2001 à 12:57:43  profilanswer
 

et non.

n°33414
verdoux
And I'm still waiting
Posté le 21-05-2001 à 13:02:32  profilanswer
 

Chez moi javac n'aime pas:

Code :
  1. static
  2.   { b_=surcharge();
  3.   }


Ni b_, ni sucharge ne sont statiques.

n°33416
lamatrice
Posté le 21-05-2001 à 13:16:59  profilanswer
 

"deviner, sans l'exécuter...."
 
donc c'est normal que javac n'en veux pas il faut juste le lire et deviner la sortie...
 
!il faut précompiler dans la tête!

n°33417
verdoux
And I'm still waiting
Posté le 21-05-2001 à 13:19:01  profilanswer
 

Ben oui mais si le compilo n'en veut pas, c'est que c'est pas du Java :D

n°33424
AirBg
The Philosopher
Posté le 21-05-2001 à 13:51:13  profilanswer
 

L L E ?

n°33430
lamatrice
Posté le 21-05-2001 à 13:58:12  profilanswer
 

et non c'est pas ça non plus
allez je vous aide mais moi non plus j'avais pas trouvé
 
1.        L’ordre de déclaration de la méthode static {} vis à vis des attributs statiques est important.
 
2.        Si un constructeur appel une méthode qui est surchargé, c'est la version surchargée qui est exécuté (contrairement au C++). Attention, l'instance dérivée n'est pas encore construite ! La méthode surchargée ne peut utiliser que les attributs hérités. Il ne faudrait pas appeler de méthode non final dans un constructeur.  
 
3.        L'initialisation des attributs s'effectue juste après l'appel du super() et avant le corps du constructeur.  
 
4.        L'ordre de déclaration des attributs est important.

n°33437
verdoux
And I'm still waiting
Posté le 21-05-2001 à 14:08:46  profilanswer
 

Modifie au moins ton code pour que ce soit du Java.

n°33448
petoulachi
A fortiori, brigadier chef
Posté le 21-05-2001 à 14:28:51  profilanswer
 

ouais et tant que t'y es, essaie de le mettre en page un peu mieu, parce que là c illisible ton truc.
et c quoi le but de ton jeu? on t'as posé une colle, et tu veux nous faire repondre parce que tu trouves pas ?

mood
Publicité
Posté le 21-05-2001 à 14:28:51  profilanswer
 

n°33449
yuggoth
Plus optimiste que jamais...
Posté le 21-05-2001 à 14:30:56  profilanswer
 

G trouvé!!!!
(mais G triché)
 
Très intéressant comme exemple

n°33458
verdoux
And I'm still waiting
Posté le 21-05-2001 à 14:57:21  profilanswer
 

Le code correct est:

Code :
  1. class Str {
  2. Str(char x) {
  3.   System.out.print(x); }
  4. }
  5. class Base {
  6. static Str s=new Str('P');
  7. int a_=methode();
  8. final int b_;
  9. Base() {
  10.   b_ = surcharge();
  11.   System.out.print ('E');
  12. }
  13. int methode() {
  14.   System.out.print ('L');
  15.   return 0;
  16. }
  17. int surcharge() {
  18.   System.out.print ('S');
  19.   return 1;
  20. }
  21. static {
  22.   System.out.print ('A');
  23. }
  24. static Str t;
  25. static {
  26.   t=new Str('R');
  27. }
  28. }
  29. class Derive extends Base {
  30. int c_=surcharge();
  31. Derive() {
  32.   super();
  33.   System.out.print ('E');
  34. }
  35. int surcharge() {
  36.   System.out.print ('L');
  37.   return 2;
  38. }
  39. static {
  40.   System.out.print ('A');
  41. }
  42. }
  43. public class Start
  44. {
  45. public static void main(String[] argv) {
  46.   new Derive();
  47.   System.out.flush();
  48. }
  49. }
 

[edit]--Message édité par Verdoux--[/edit]

n°33459
under
(avec u comme under)
Posté le 21-05-2001 à 15:00:24  profilanswer
 

un truce du genre PLEASE?

n°33460
verdoux
And I'm still waiting
Posté le 21-05-2001 à 15:01:41  profilanswer
 

Non, ça affiche "PARALLELE"

n°33461
under
(avec u comme under)
Posté le 21-05-2001 à 15:03:30  profilanswer
 

PARLEE??
 
aaaaaaaaaaaaaarg ca m'enerve ton truc là !!  :cry:

n°33463
under
(avec u comme under)
Posté le 21-05-2001 à 15:04:29  profilanswer
 

parallele? au bout de 30 essais j'aurais trouve  :D

n°33465
lamatrice
Posté le 21-05-2001 à 15:06:12  profilanswer
 

c'est exact parallele,
 
vous êtes lent !
 
non j'avais la réponse mais je trouvais l'astuce amusante.

n°33467
lamatrice
Posté le 21-05-2001 à 15:12:32  profilanswer
 

--------------
petoulouchi a écrit
 
ouais et tant que t'y es, essaie de le mettre en page un peu mieu, parce que là c illisible ton truc.
et c quoi le but de ton jeu? on t'as posé une colle, et tu veux nous faire repondre parce que tu trouves pas ?
 
------------------------
he ! quelle arogance ! j'aporte un peu de gaité à ce forum et toi tu le prend mal,
j'ai pas besoin de vous pour répondre à une colle.
je glande au chomdu et en pendant ce temps j'étudie java, je tombe sur des truc amusant et educatif et je vous en fait profiter, c'est tout.
y a rien qui t'oblige à lire mon poste ! c'est un forum ici c'est pas c'est wall-street

n°33468
petoulachi
A fortiori, brigadier chef
Posté le 21-05-2001 à 15:12:56  profilanswer
 

heu pour le 'vous etes lents', ça veut dire que tu te consideres ultra rapide? non parce que nous aussi on peut te sortir des colles, et tu seras lent aussi.
C juste peut etre que c'etait pas super interessant ...

n°33470
lamatrice
Posté le 21-05-2001 à 15:16:52  profilanswer
 

pour petoulachi qui croit qu'on a besoin de lui pour faire ses devoir :
 
http://perso.club-internet.fr/ppra [...] ction.html
 
sur ce site y la réponse et le développement en détail du problème de hierachie des methode etc....
 
 
-moi çà fait des années que j'ai plus de devoir.......snif.

n°33473
verdoux
And I'm still waiting
Posté le 21-05-2001 à 15:21:15  profilanswer
 

N'empêche que le code donné était faux. Un bloc statique ne peut utiliser un membre ou une méthode non statiques.

n°33477
petoulachi
A fortiori, brigadier chef
Posté le 21-05-2001 à 15:28:54  profilanswer
 

oui surtout que je pense pas avoir posé de post pour m'aider a faire mes devoir... enfin ...

n°33493
lamatrice
Posté le 21-05-2001 à 16:15:43  profilanswer
 

ok ok, y avait bien une faute mais personne ne devais compiler ce truc.....c'était un test mental... donc vous avez presque tous triché.
 
 
 
enfin c'est bien...vous avez trouvée.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [java] devinette (pour s'amuser)

 

Sujets relatifs
[java] dialogue entre une JComboBox et une Jlist[JAVA] transformer mon programme en .EXE
[enfin un peu de JAVA] Transfert de fichiers par TCP/IP[JAVA] RMI debutant
[JAVA] utiliser des dll windowscomment eviter que le site dans mon iframe ne fasse du java ? ou...
[JAVA]n'afficher que deux chiffres après la virguleJAVA : SimpleDateFormat ("yyyy-MM-dd")
[JAVA] impement 
Plus de sujets relatifs à : [java] devinette (pour s'amuser)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR