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

avec Java Discussion :

Explication exercice en Java


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 0
    Points
    0
    Par défaut Explication exercice en Java
    bonjour ,
    est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
    n = p = 0 ;
    while (n<=8) n+= p++ ; donne n=10 ??

    n = p = 0 ;
    while (n<=5) n+=p++; donne n = 15 ??

    Merci.

  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
    Citation Envoyé par psg007 Voir le message
    est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
    En consommant certaines substances hallucinatoires, ou alors en admettant une définition très créative de "ça donne n = 15".

    La première boucle se termine bien en laissant n à la valeur 10.

    Mais la deuxième le laisse à la valeur 6 et non pas 15. Il aurait en effet été étrange, et en fait impossible, que n obtienne une plus grande valeur dans la deuxième boucle que dans la première, puisqu'elles font le même traitement qui ne va que croissant, et que la seconde s'arrête plus tôt.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par thelvin Voir le message
    En consommant certaines substances hallucinatoires, ou alors en admettant une définition très créative de "ça donne n = 15".

    La première boucle se termine bien en laissant n à la valeur 10.

    Mais la deuxième le laisse à la valeur 6 et non pas 15. Il aurait en effet été étrange, et en fait impossible, que n obtienne une plus grande valeur dans la deuxième boucle que dans la première, puisqu'elles font le même traitement qui ne va que croissant, et que la seconde s'arrête plus tôt.
    c'est un exercice d'un auteur très reconnu dans le domaine de la programmation
    le même exercice a été donné en C et en java , et c'est le même résultat.
    donc il faut bien penser avant de dire quoi que ce soit .
    Merci.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Mais la deuxième le laisse à la valeur 6 et non pas 15. Il aurait en effet été étrange, et en fait impossible, que n obtienne une plus grande valeur dans la deuxième boucle que dans la première, puisqu'elles font le même traitement qui ne va que croissant, et que la seconde s'arrête plus tôt.
    Moi aussi j'arrive a 6 et non 15 ... ca devaient vraiment être de la bonne.
    Donc pour moi, pgs007, a moins que tu ne nous prouves le contraire, c'était a toi de mieux penser (sans agressions, nous sommes peut être tous deux dans l'erreur)... Et puis si le résultat avait été différent du C a java ... je pense que ca aurait été assez grave.

    Voici d'ailleurs les valeurs dans la boucle après affection a n

    N = 0
    P = 1
    N = 1
    P = 2
    N = 3
    P = 3
    N = 6
    P = 4
    Valeurs finale:
    N = 6
    P = 4
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par psg007 Voir le message
    c'est un exercice d'un auteur très reconnu dans le domaine de la programmation
    le même exercice a été donné en C et en java , et c'est le même résultat.
    donc il faut bien penser avant de dire quoi que ce soit .
    Merci.
    Donne le nom de ton auteur, ainsi que ton code compilable en C et en Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2010
    Messages : 59
    Points : 86
    Points
    86
    Par défaut
    n = p = 0 ;
    while (n<=8) n+= p++ ; donne n=10 ??


    1ere itération:
    n=0, p=0 en sortie n = 0 et p = 1

    2e itération:
    n=0, p=1 en sortie n = 1 et p = 2

    3e itération:
    n=1, p=2 en sortie n = 3 et p = 3

    4e itération:
    n=3, p=3 en sortie n = 6 et p = 4

    5e itération:
    n=6, p=4 en sortie n = 10 et p = 5
    et n=10 est bien > à 8.


    n = p = 0 ;
    while (n<=5) n+=p++; donne n = 15 ??


    pour le 2e on s'arrete encore plutot vu que n doit être > 5, si on regarde les étapes précédentes, ça serait:
    4e itération:
    n=3, p=3 en sortie n = 6 et p = 4
    Cordialement,

    David.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Le code est :
    n = p = 0 ;
    while(n<=5) n+=++p ; ça donne bien n=15 ;
    Merci

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Citation Envoyé par psg007 Voir le message
    Le code est :
    n = p = 0 ;
    while(n<=5) n+=++p ; ça donne bien n=15 ;
    Merci
    n = p = 0 ;
    while (n<=5) n+=p++; donne n = 15 ??
    ++p devient p++ maintenant apparement... mais ca reste tjrs 6 pour moi (il n'y aura que P qui sera different d'un cas a l'autre)

    Lui va donner N = 15
    Lui aussi va donner N = 15
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par psg007 Voir le message
    Le code est :
    n = p = 0 ;
    while(n<=5) n+=++p ; ça donne bien n=15 ;
    Merci
    Sympa le troll
    Et pour l'auteur ? Ou le code compilable Java (c'est à dire le code de la classe ou il nous suffit de faire un simple copier-coller pour le tester) ? Ou encore le code compilable en C ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Je vote pour le troll aussi ^^
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    un troll

    auteur : Claude Delannoy
    Exercice Jave : page 19 exercice 16 .

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par psg007 Voir le message
    un troll

    auteur : Claude Delannoy
    Exercice Jave : page 19 exercice 16 .
    Heureusement que c'est du jave, sinon j'ai aussi criée "Au Troll".

  13. #13
    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
    Bah c'est peut-être une question ouverte. Après tout, on nous donne pas du code compilable, et en l'occurence on sait pas comment sont déclarés n et p.

    C'est peut-être des variables d'instance, et elles sont peut-être volatile, et le programme a peut-être plusieurs threads en même temps qui lisent et modifient ces variables. Dans ce cas, oui, on peut avoir ce genre de résultats délirants.

    auteur : Claude Delannoy
    Exercice Jave : page 19 exercice 16 .
    Moui, on retrouve facilement le bouquin, mais les extraits gratuits ne parlent pas de cet exercice, et une recherche rapide dans les codes sources des exercices ne me l'a pas trouvé non plus.

    J'ai pas trop envie de l'acheter juste pour en avoir le cœur net. Quelqu'un l'a ?

    En tout cas tu as eu nos réponses, et au fond rien ne t'empêche d'essayer toi-même. Si le code que tu nous donnes est utilisé de la manière dont on s'y attendrait avec une telle consigne, alors n finit à 6.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Google m'a donné cette réponse là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n=p=0;
    while (p<=5) n+=p++; /* n=15 */
    source

    Citation Envoyé par psg007
    donc il faut bien penser avant de dire quoi que ce soit .
    Donc psg007 tu t'étais trompé sur ++p puis sur n à la place de p...
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

Discussions similaires

  1. Exercice sur Java
    Par romain1 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 16/06/2008, 19h53
  2. Livre d'exercice pour Java Oo
    Par hardokin dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 02/04/2008, 15h35
  3. explication ArrayList en java
    Par drexlbob dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 02/02/2008, 00h54

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