IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Petit prolème de multiplication pour débutant


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut Petit prolème de multiplication pour débutant
    J'ai une classe Trajet dans laquelle je lit une ligne contenue dans un fichier texte (trajet.txt), la ligne est par exemple : 15g ou 1 correspond a la vitesse, 5 au temps et g à la direction, j'arrive a enregistrer ces valeur dans les variables correspondantes (vitesse, temps et direction) mais ensuite lorsque je fais x=x-(temps*vitesse), le resultat obtenu n'est pas du tout bon. Sachant que je met x à 250 lors de sa déclaration je devrais donc avoir x=250-(5*1) soit 245, or j'obtient -2347.
    Je ne sais pas d'ou vient l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public class PanneauTrajet extends JPanel {
        final int LARGPAN=500;
        final int HAUTPAN=350;
     
        String ligne;
        String essai;
        //String x;
        int x=250;
     
        /** Creates a new instance of PanneauTrajet */
        public PanneauTrajet()  {
            setPreferredSize(new Dimension(LARGPAN,HAUTPAN));
            setBackground(Color.blue);
            try {
                trajet();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
     
        }
     
        public void trajet() throws IOException {
     
            String ligne;
            char vitesse;
            char temps;
            char direction;
     
     
            BufferedReader entree=new BufferedReader(new FileReader("trajet.txt"));
     
            do{
                ligne=entree.readLine();
                if (ligne!=null) {
                    System.out.println(ligne);
     
                    vitesse=ligne.charAt(0);
                    temps=ligne.charAt(1);
                    direction=ligne.charAt(2);
     
                    System.out.println("vitesse: "+vitesse);
                    System.out.println("temps: "+temps);
                    System.out.println("direction: "+direction);
                    System.out.println("x="+x);
     
                    if (direction=='g') x=x-(temps*vitesse);
     
                    System.out.println("x= "+x);
     
                    if (direction=='d') x=x+(temps*vitesse);
     
                }
     
            }
            while(ligne!=null);
            entree.close();
     
            repaint();
     
     
     
        }
     
        public void paintComponent(Graphics g){
            super.paintComponent(g);
            g.drawLine(250,350,x,50);
     
        }
     
    }
    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    vitesse=ligne.charAt(0) - '0';
                    temps=ligne.charAt(1) - '0';

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Eh j'ai pas tout capté a ton code, je doit mettre ca ou?

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A la place de ton code correspondant...

    Pour la petite explication, quand tu fais ligne.charAt(0), tu récupères la valeur du caractère dans le charset utilisé. Donc, ligne.charAt(0) - '0' te donne le chiffre équivalent...
    Exemple, la ligne = '32g':
    le caractère '0' vaut 30 dans la table ascii
    le caractère '1' vaut 31
    ...
    le caractère '9' vaut 39

    donc ligne.charAt(0) - '0' te donne bien 3 (et pas 33)

    C'est mieux ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par OButterlin
    le caractère '0' vaut 30 dans la table ascii
    le caractère '1' vaut 31
    ...
    le caractère '9' vaut 39
    En hexa (0x30 à 0x39)

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Oui, je sais, mais j'ai pensé que ce serait plus clair pour lui...
    Mais la précision reste valable

    Bye
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Invité de passage
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Par défaut erreur de compilation java
    bonjour tt le monde , je desire apprendre à programmer en java ,j'ai dejà commencer mais j'ai rencontré un peti probleme dans Eclipse il me donne une erreur dans " Keyboard " c bizzar je ne sais pas s'il la connait ou pas , mais d'apres ce que je sais ça existe dans le langage java ,voila le programe qui fait la somme c just je pense ,
    j'aimerai savoir pourquoi eclipse ne conné pas cet instruction " Keyboard " et j'aimerai avoire la solution si c possible et merci

    public class somme
    {
    public static void main(Sting args[])
    {
    int a,b,s;
    System.out.println("donner a");
    a=Keyboard.getInt();
    System.out.println("donner b");
    b=Keyboard.getInt();
    s=a+b;
    System.out.print("la somme est:"+s);
    }
    }

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut
    Aprends d'abord a te servir du forum

Discussions similaires

  1. [MySQL] Recherche dans une table - petit bug affichage multiple pour certaine recherche
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/01/2010, 10h44
  2. Petite aide pour débutant
    Par akrogames dans le forum Zend Framework
    Réponses: 4
    Dernier message: 23/01/2008, 16h49
  3. petite question de compilation pour débutant
    Par flamant dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 21/09/2007, 16h19
  4. Réponses: 12
    Dernier message: 10/05/2007, 10h18
  5. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 20h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo