CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Problème programmation graphique

dnob700
dnob700
Niveau 10
18 août 2010 à 18:26:08

utilises le lien que je t'ai indiqué pour mettre en ligne uniquement les partie de ton code qui correspondent à ton problème actuel (là ce n'est pas le cas vu que tu as indiqué qu'il y a d'autre problème dans d'autre fonction). N'utilises pas rapidshare, c'est très ennuyeux pour les autres.

NoSoul_
NoSoul_
Niveau 7
19 août 2010 à 00:00:38

Les calculs avec des nombres à virgules peuvent se révéler compliqués à faire. Il y a de nombreuses difficultés comme par exemple le fait qu'il est impossible de contenir 0.1 dans un type "float" ou "double".

Si je fais par exemple:

double result = 2.3 - 2.2;
System.out.println(result);

Ca va afficher:
0.09999999...9964

et pas 0.1 comme on pourrait s'y attendre.

On y ajoute les problèmes dû aux arrondis, les résultats qui peuvent différer suivant le type de processeur...

Bref, pas forcément facile à gérer...

Il y a le type BigDecimal qui permet de faire des calculs exacts mais leur utilisation est particulière et suivant ce que tu veux calculer tu devras faire des conversions entre les différents types de variables.

Tu utilises aussi partout du transtypage alors que cela peut entrainer des pertes d'informations. Il ne faut le faire que si l'on est sûr que le résultat ne sera pas faussé par cette manipulation.

Tchaikovsky
Tchaikovsky
Niveau 10
19 août 2010 à 10:08:44

Voilà le bout plus précis qui ne marche pas:

http://pastebin.ca/1919942

godrik
godrik
Niveau 30
19 août 2010 à 17:36:53

qu'est ce que ca veut dire "ca ne marche pas " ?

_skip
_skip
Niveau 10
19 août 2010 à 22:30:59

Franchement à voir ton code, tu ne sais pas ce qu'est une classe ni comment cela s'utilise. En plus tout est statique et éparpillé alors que ça devrait être local à ta méthode.

dnob700
dnob700
Niveau 10
19 août 2010 à 23:07:30

bon, c'est pas particulièrement constructif comme critique. La POO ça ne s'apprend pas par magie e il est en train d'apprendre Java.

Tchaikovsky : maintenant que tu as isolé le code qui te gène, si tu ne sais pas comment fonctionne le débogueur de Java, tu devrais commencer par mettre des fonctions d'impression dans ton code au fur et à mesure de ton algo pour voir où est-ce qu'apparaissent les valeurs qui ne sont pas correcte. Vu que ton code n'est pas très gros, essaye aussi d'effectuer le même calcul à la main pas à pas pour voir si tu trouve le résultat que tu souhaite où si le problème vient de ton algorithme.

C'est la bonne méthode à suivre pour apprendre à corriger ce genre d'erreur.

NoSoul_
NoSoul_
Niveau 7
20 août 2010 à 00:09:45

http://pastebin.ca/1920359

J'ai modifié le code pour qu'il soit un peu plus propre, ce qui ne veut pas dire que c'est corrigé pour autant.

Ca te permettra de voir ce qui se passe dans le code. Quel(s) calcul(s) sont faux. Ca te permet aussi de voir comment "corriger" son code lorsqu'on rencontre un problème (en attendant de savoir utiliser un débogueur) comme a dit dnob700.

Je ne sais pas non plus quelles variables doivent être passées en paramètre de la classe et quelles variables doivent être passées en paramètre de la méthode. Je te laisse modifier le code pour l'adapter à tes besoins.

_skip
_skip
Niveau 10
20 août 2010 à 08:47:10
  1. dnob700 Voir le profil de dnob700
  2. Posté le 19 août 2010 à 23:07:30 Avertir un administrateur
  3. bon, c'est pas particulièrement constructif comme critique. La POO ça ne s'apprend pas par magie e il est en train d'apprendre Java.

:d) Il a tout de même le culot de prétendre que c'est Java qui est pas assez "puissant" alors que visiblement il est débutant en programmation et il ne sait pas ce qu'il brasse.
Je dis pas ça pour être désagréable, mais il n'a pas les bases suffisantes.

http://java.developpez.com/cours/

Tchaikovsky
Tchaikovsky
Niveau 10
20 août 2010 à 09:43:08

Ah, en fait j'avais oublié des paranthèses.

J'ai un peu triché mathématiquement, mais ça marche maintenant !

Et oui, je suis un débutant, je fais un petit peu de Java depuis environ 6 mois.

En fait c'est mon travail de maturité que je dois pour le gymnase (lycée) et on est noté sur le résultat et non pas vraiment sur la forme, donc tous les static et tout le bordel qu'il y a c'est pas grave, c'est moi qui ai fait du tâtonnement pour que mon programme fonctionne.

Par contre je vois pas pourquoi vous dites que je sais pas ce qu'est une classe et comment on l'utilise :(
Je recopie ce qu'il y a dans le livre "Programmer en Java" de Claude Delannoy.

Tchaikovsky
Tchaikovsky
Niveau 10
20 août 2010 à 09:48:34

Et j'avoue que j'aurais pu réfléchir un peu plus avant d'accuser la puissance de Java...

Mon frère m'avait dit que ça pouvait arriver (maintenant je pense qu'il a tort, pourtant il est informaticien + génie électrique :( ) et dès que mon calcul n'a pas marché j'ai accusé Java.

Mais ne jugez pas trop vite s'il vous plaît .

tbop2
tbop2
Niveau 10
30 août 2010 à 23:18:15

Le design pattern (l'architecture et la logique de ton code) sans être entouré de pros et de vrais cours ce n'est pas simple non plus en autodidacte.

Qui plus est Java à tendance à inciter à tout vouloir faire mettre en classe et je ne suis pas sûr que ça soit un bon réflexe quand on a jamais touché à la programmation, il faut parfois des fois se raisonner un peu. Tu devrais peut-être pour ta culture apprendre le C PUIS le C++. Puis te renseigner sur des design pattern comme le MVC, le singleton. Ca te ferait avancer, mais je ne suis pas sûr que ton optique finale soit véritablement de devenir un as en programmation.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment