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

Java Discussion :

Y a-t-il une erreur dans cette question ?


Sujet :

Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Y a-t-il une erreur dans cette question ?
    Bonjour, bonsoir,

    Je ne sais pas si mon topic est au bon endroit, mais j'ai un petit soucis qui concerne la mémoire de Java.
    On travaille actuellement sur la mémoire en java (niveau débutant).

    La mémoire [Cours]
    – Dans la mémoire sont stockées des valeurs.
    – Une déclaration ajoute une variable à la mémoire avec sa valeur initiale.
    – Une affection modifie la valeur d’une variable dans la mémoire.
    – On représente la mémoire par une table associant chaque variable à sa valeur.
    – Exemple :
    Dans cette mémoire, x vaut 2, y vaut 7, et z vaut 42.


    (Exemples d’évaluation, ?)
    1. Quelles sont les valeurs des expressions entières suivantes : 4 − 4 / 3, 3 ∗ 3 / 2, 4 − 3 − 2 ?
    2. Étant donnée la mémoire suivante ;
    comment sont évaluées les expressions qui suivent : a ∗ b − 10, a + c ∗ a, a + b − c, a + d ?

    Je ne comprends tout simplement pas la question 1...
    4-(4/3) n'est pas un ENTIER, donc comment java "stocke-t-il" cette expression ?
    Pareil pour (3*3)/2, qui n'est pas non plus un entier...

    Quelqu'un peut-il m'expliquer ?

    Merci d'avance
    Bonne soirée (journée).

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Les ordinateurs ont un moyen de représenter en mémoire des nombres décimaux. Je n'entrerai pas dans les détails, mais en gros l'idée est de stocker un certain nombre de chiffres significatifs, d'une part, et la position de la virgule, d'autre part. (En gros la notation scientifique : un chiffre avant la virgule, plusieurs chiffres après, le tout multiplié par dix puissance quelque chose. Sauf que c'est par deux puissance quelque chose, puisque les ordinateurs comptent en binaire.)
    Bien sûr cela ne permet pas de stocker la valeur exacte de nombres comme 4/3, mais c'est une représentation approchée assez précise.
    Java, comme beaucoup d'autres langages, utilise ce système.


    ... Et malheureusement tout cela est hors sujet, car si, ce sont bien des entiers .

    En Java et dans beaucoup de langages, quand on fait des opérations entre entiers, le résultat est un entier.
    Dans le cas de l'opérateur / il fait une division entière. Comme à l'école primaire, quand tu devais calculer le quotient et le reste de la division. C'est pareil.

    La question n'est donc pas fausse, mais on peut se demander comment tu aurais deviné ça si ça ne fait pas partie du cours. Ou peut-être que les instructions étaient "d'essayer pour voir ce que ça donne quand on essaie" ?
    Auquel cas, tu devrais juste essayer pour voir.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Salut !

    Woah, merci pour cette réponse bien détaillée qui m'aura permis de bien comprendre !
    Effectivement, en cours, on n'a pas vu que l'opérateur "/" faisait une division entière. On nous a par contre dit qu'on ne pouvait pas stocker le résultat d'une division d'entiers int dans une variable int, si le résultat est un double (pas très clair ce que je raconte ). Du coup je ne comprenais plus rien

    Merci de m'avoir éclaircie, bonne journée à toi !

Discussions similaires

  1. [OCI] une erreur dans l'execution pour cette requete SQL
    Par Abdelkaoui dans le forum Interfaces de programmation
    Réponses: 2
    Dernier message: 14/09/2007, 12h29
  2. msaccess a provoqué une erreur dans KERNEL32.dll
    Par massol joel dans le forum Access
    Réponses: 12
    Dernier message: 03/04/2006, 14h32
  3. Une erreur dans un script
    Par tsing dans le forum Linux
    Réponses: 9
    Dernier message: 16/03/2006, 15h50
  4. Comment détecter une erreur dans un process
    Par chuckboy dans le forum MFC
    Réponses: 3
    Dernier message: 25/10/2005, 10h40
  5. Comment lancer une erreur dans une procédure stockée
    Par borgfabr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2005, 17h06

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