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.
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.
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.
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
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
Le code est :
n = p = 0 ;
while(n<=5) n+=++p ; ça donne bien n=15 ;
Merci
++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)n = p = 0 ;
while (n<=5) n+=p++; donne n = 15 ??
Lui va donner N = 15
Code : Sélectionner tout - Visualiser dans une fenêtre à part while (n<=13) n+=p++;
Lui aussi va donner N = 15
Code : Sélectionner tout - Visualiser dans une fenêtre à part while (n<=13) n+=++p;
Je vote pour le troll aussi ^^
un troll
auteur : Claude Delannoy
Exercice Jave : page 19 exercice 16 .
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.
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.auteur : Claude Delannoy
Exercice Jave : page 19 exercice 16 .
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.
Google m'a donné cette réponse là :
source
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 n=p=0; while (p<=5) n+=p++; /* n=15 */
Donc psg007 tu t'étais trompé sur ++p puis sur n à la place de p...Envoyé par psg007
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager