A voir également:
- Exercice de java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Jeux java itel touche - Forum Mobile
5 réponses
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
Modifié par EminoMeneko le 13/11/2011 à 22:53
Modifié par EminoMeneko le 13/11/2011 à 22:53
On va essayer de voir ce qui se passe dans tes boucles pas à pas.
Un tableau serait idéal pour représenter tout ça mais je n'ai pas ce qu'il faut ici et je ne vais pas m'amuser à faire de l'ASCII-art... ^^'
Soit i un entier qui représente les itérations à partir de 1.
Soit r le résultat du calcul
Tu dois aussi savoir que la ligne n+= p++ est équivalente à la ligne n = n+p mais après avoir fait le calcul p se voit incrémenter de 1.
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
à ce stade on ne vérifie plus la condition n <= 8 car n=10 > 8.
Maintenant il n'est pas logique que tu obtiennes 15 avec la condition n<=5.
En réutilisant les valeurs trouvées précédemment on devrait trouver 6, résultat que je peux confirmer avec un petit programme que j'ai écris vite fait et qui est équivalent au tient.
Si tu veux bien essayer de le compiler et de vérifier :
Avec ces résultats :
Tu devrais utiliser le débogueur pour voir d'où vient ton erreur.
n = p = 0 ; while (n<=8) n+= p++ ; ==> n=10 <== le résultat
Un tableau serait idéal pour représenter tout ça mais je n'ai pas ce qu'il faut ici et je ne vais pas m'amuser à faire de l'ASCII-art... ^^'
Soit i un entier qui représente les itérations à partir de 1.
Soit r le résultat du calcul
Tu dois aussi savoir que la ligne n+= p++ est équivalente à la ligne n = n+p mais après avoir fait le calcul p se voit incrémenter de 1.
i n p r
1 0 0 0
2 0 1 1
3 1 2 3
4 3 3 6
5 6 4 10
à ce stade on ne vérifie plus la condition n <= 8 car n=10 > 8.
Maintenant il n'est pas logique que tu obtiennes 15 avec la condition n<=5.
En réutilisant les valeurs trouvées précédemment on devrait trouver 6, résultat que je peux confirmer avec un petit programme que j'ai écris vite fait et qui est équivalent au tient.
Si tu veux bien essayer de le compiler et de vérifier :
import java.util.Scanner; public class Somme { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int val; int n,p; n = p = 0; affiche("Seuil de la boucle : "); val = sc.nextInt(); while (n <= val) { n+= p++; } affiche(String.valueOf(n)); } public static void affiche(String msg) { System.out.println(msg); } }
Avec ces résultats :
eminomeneko@Devstation:~$ java Somme Seuil de la boucle : 8 10 eminomeneko@Devstation:~$ java Somme Seuil de la boucle : 5 6
Tu devrais utiliser le débogueur pour voir d'où vient ton erreur.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 nov. 2011 à 18:14
13 nov. 2011 à 18:14
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 nov. 2011 à 18:27
13 nov. 2011 à 18:27
j'ai déjà le corrigé .
Ben affiche-le alors ;-)
Ben affiche-le alors ;-)
beh , c'est pas de ma faut si vous avez des problèmes de vue !!!!!!!!!!!!!
mais j'ai fourni les réponses que j'arrive pas à comprendre :
bonjour ,
est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10 <== le résultat
n = p = 0 ;
while (n<=5) n+=p++; ==> n = 15 <==résultat
Merci
mais j'ai fourni les réponses que j'arrive pas à comprendre :
bonjour ,
est ce que vous pouvez m'expliquer, comment on a obtenu ces résultats :
n = p = 0 ;
while (n<=8) n+= p++ ; ==> n=10 <== le résultat
n = p = 0 ;
while (n<=5) n+=p++; ==> n = 15 <==résultat
Merci
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
13 nov. 2011 à 18:34
13 nov. 2011 à 18:34
Ben si tu as la réponse c'est que tu dois savoir comment tu as fait, non ?
Utilisateur anonyme
14 nov. 2011 à 01:29
14 nov. 2011 à 01:29
Salut,
Avec le code que tu nous donnes le résultat est n = 10 à la sortie de la 1ère boucle et n = 6 à la sortie de la seconde.
Quelles sont les résultats que tu attendais ?
Peut-être ne nous donnes tu pas exactement le code que tu utilises pour tester et obtenir 10 et 15 ...
Cordialement,
Dan
--Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
Avec le code que tu nous donnes le résultat est n = 10 à la sortie de la 1ère boucle et n = 6 à la sortie de la seconde.
Quelles sont les résultats que tu attendais ?
Peut-être ne nous donnes tu pas exactement le code que tu utilises pour tester et obtenir 10 et 15 ...
Cordialement,
Dan
--Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
14 nov. 2011 à 03:17
14 nov. 2011 à 03:17
Oui, parce que l'algorithme (ou la suite de calculs si tu préfères) donnera tout le temps ça. Je ne sais pas comment on a obtenu 15 mais c'est sûrement pas avec la formule n+p.
tout d'abord je tiens à vous remercier pour votre aide , en effet les deux résultats
sont correctes , comme je suis débutant j'ai eu du mal à comprendre la logique de ce genre de calcul , mais après quelques recherches sur internet , j'ai pu faire la différence entre ++p et p++ .
Cordialement.
sont correctes , comme je suis débutant j'ai eu du mal à comprendre la logique de ce genre de calcul , mais après quelques recherches sur internet , j'ai pu faire la différence entre ++p et p++ .
Cordialement.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
14 nov. 2011 à 14:33
14 nov. 2011 à 14:33
Il faut que tu testes les deux et que tu regardes ce que ça donne pour comprendre.
Ou alors faire une recherche Google, c'est le genre de question qu'on pose tout le temps, que ce soit en C, C++, Java...
Ou alors faire une recherche Google, c'est le genre de question qu'on pose tout le temps, que ce soit en C, C++, Java...
int a,b; b=0; a = b++; System.out.println(a); // 0 System.out.println(b); // 1 b=0; a = ++b; System.out.println(a); // 1 System.out.println(b); // 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
13 nov. 2011 à 23:39
Merci encore une fois .