Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2020-03-05T13:03:25+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Mon "While" fausse le résultat de mon calcul, message #2166522020-03-05T13:03:25+01:00lesagejeanjean/@lesagejeanjeanhttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216652<p>Le problème est résolu. Merci beaucoup les gars.</p>Mon "While" fausse le résultat de mon calcul, message #2166302020-03-05T09:54:21+01:00SpaceFox/@SpaceFoxhttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216630<figure><img src="https://ljdchost.com/039/LRqktwS.jpg" alt="Différence entre while et do…while"><figcaption><a href="https://lesjoiesducode.fr/boucle-while-do-while">https://lesjoiesducode.fr/boucle-while-do-while</a></figcaption></figure>Mon "While" fausse le résultat de mon calcul, message #2166292020-03-05T09:00:31+01:00Skodt/@Skodthttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216629<p>Ta condition dans la boucle while devrait être <code>while(op != '+' && op != '-' && op != '*')</code>sinon quand tu essaies d’entrer <code>*</code> par exemple, le programme va d’abord tester si <code>'*' != '+'</code> ce qui est vrai donc tu vas passer par la boucle une nouvelle fois.</p>Mon "While" fausse le résultat de mon calcul, message #2166272020-03-05T01:55:06+01:00lesagejeanjean/@lesagejeanjeanhttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216627<p>Merci pour votre réponse, Amaury. Mais je ne suis pas sûr de comprendre ton explication. Au départ, j’avais mis la boucle while avant le switch, mais cela ne change rien. Quand j’essaie de saisir un caractère différent des opérateurs(juste pour tester), le message de saisie s’affiche, je saisis un bon opérateur et le même message s’affiche a nouveau. Pour la variable, j’avais changé "choix" en "op" car je demandais de l’aide sur un site anglophone et j’avais oublié de la modifier dans le message d’erreur. Donc, je ne dois pas faire le calcul dans le switch? Peux-tu corriger le code pourmoi, s’il te plait?</p>Mon "While" fausse le résultat de mon calcul, message #2166262020-03-04T23:50:14+01:00Amaury/@Amauryhttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216626<figure><blockquote>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-cpp"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><iostream></span></span>
<span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> <span class="hljs-built_in">std</span>;
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span>
</span>{
<span class="hljs-keyword">double</span> x, y;
<span class="hljs-keyword">double</span> total = <span class="hljs-number">0</span>;
<span class="hljs-keyword">char</span> op;
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Enter your first number: "</span>;
<span class="hljs-built_in">cin</span>>>x;
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Enter your second number: "</span>;
<span class="hljs-built_in">cin</span>>>y;
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Enter an operator: "</span>;
<span class="hljs-built_in">cin</span>>>op;
<span class="hljs-keyword">switch</span>(op){
<span class="hljs-keyword">case</span> <span class="hljs-string">'+'</span>:
total = x+y;
<span class="hljs-keyword">break</span>;
<span class="hljs-keyword">case</span> <span class="hljs-string">'-'</span>:
total = x-y;
<span class="hljs-keyword">break</span>;
<span class="hljs-keyword">case</span> <span class="hljs-string">'*'</span>:
total = x*y;
<span class="hljs-keyword">break</span>;
}
<span class="hljs-keyword">while</span>((op != <span class="hljs-string">'+'</span>) || (op != <span class="hljs-string">'-'</span>) || (op != <span class="hljs-string">'*'</span>)){
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Bad operator. Enter en operator: "</span><<<span class="hljs-built_in">endl</span>;
<span class="hljs-built_in">cin</span>>>choix;
}
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Total:"</span><<total<<<span class="hljs-built_in">endl</span>;
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
</code></pre></div>
<p></p>
</blockquote><figcaption>— <a href="https://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216621">lesagejeanjean</a></figcaption></figure>
<p>Je me suis permis de formater le code (tu peux le faire avec la touche <kbd></></kbd> de la barre d’outils) histoire que ce soit plus lisible pour tous <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>
<hr>
<p>Le problème vient du fait que tu fais le calcul <em>avant</em> de vérifier l’opérateur. En l’état, tu demandes l’opéateur, tu fais le calcul (dans le <code>switch</code>), puis tu vérifies que l’opérateur est le bon, et quand il est bon tu… affiches le résultat calculé avant la vérification.</p>
<p>Il faudrait faire la vérification <em>avant</em>.</p>
<p>Aussi, ici, tu ne stockes pas le nouveau choix dans la bonne variable, ce qui fait que je soupçonne un boucle infinie en cas d’erreur d’opérateur… Je suis d’ailleurs surpris que ça compile <img src="/static/smileys/hihi.png" alt="^^" class="smiley"> .</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-cpp"><span class="hljs-keyword">while</span>((op != <span class="hljs-string">'+'</span>) || (op != <span class="hljs-string">'-'</span>) || (op != <span class="hljs-string">'*'</span>)){
<span class="hljs-built_in">cout</span><<<span class="hljs-string">"Bad operator. Enter en operator: "</span><<<span class="hljs-built_in">endl</span>;
<span class="hljs-built_in">cin</span>>>choix; <span class="hljs-comment">// devrait être >> op</span>
}
</code></pre></div>Mon "While" fausse le résultat de mon calcul, message #2166212020-03-04T22:42:57+01:00lesagejeanjean/@lesagejeanjeanhttps://zestedesavoir.com/forums/sujet/13687/mon-while-fausse-le-resultat-de-mon-calcul/?page=1#p216621<p>Bonjour! Je suis nouveau dans C++, j’essaie de faire une calculatrice, mais le résultat est faussé quand j’utilise une boucle "While" pour vérifier si l’utilisateur saisit le bon opérateur. Aidez-moi, s’il vous plait!</p>
<p>#include <iostream></p>
<p>using namespace std;</p>
<p>int main()
{
double x, y;
double total = 0;
char op;
cout«"Enter your first number: ";
cin»x;
cout«"Enter your second number: ";
cin»y;
cout«"Enter an operator: ";
cin»op;</p>
<p>switch(op){</p>
<p> case '+’:
total = x+y;
break;</p>
<p> case '-’:
total = x-y;
break;</p>
<p> case '<em>':
total = x</em>y;
break;
}</p>
<p>while((op != '+’) || (op != '-’) || (op != '*’)){
cout«"Bad operator. Enter en operator: "«endl;
cin»choix;
}</p>
<p>cout«"Total:"«total«endl;
return 0;
}</p>Erreur While, Do Loop, ... [VB.NET], message #1879042018-08-31T18:51:37+02:00LeGeek57510/@LeGeek57510https://zestedesavoir.com/forums/sujet/11222/erreur-while-do-loop-vbnet/?page=1#p187904<p>Finalement j’ai réussi, il a juste fallut vérifier si le Invoke était requis.</p>Erreur While, Do Loop, ... [VB.NET], message #1877902018-08-30T21:09:47+02:00LeGeek57510/@LeGeek57510https://zestedesavoir.com/forums/sujet/11222/erreur-while-do-loop-vbnet/?page=1#p187790<p>Une solution ? Merci</p>Erreur While, Do Loop, ... [VB.NET], message #1875222018-08-29T11:19:45+02:00LeGeek57510/@LeGeek57510https://zestedesavoir.com/forums/sujet/11222/erreur-while-do-loop-vbnet/?page=1#p187522<p>Merci <img src="/static/smileys/rire.gif" alt=":lol:" class="smiley"> <img src="/static/smileys/heureux.png" alt=":D" class="smiley"></p>Erreur While, Do Loop, ... [VB.NET], message #1875212018-08-29T10:53:13+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/11222/erreur-while-do-loop-vbnet/?page=1#p187521<p>J’ai modifié ton message pour que l’image apparaisse.</p>
<p>Tu peux aussi héberger tes images sur le site. </p>Erreur While, Do Loop, ... [VB.NET], message #1875192018-08-29T10:11:44+02:00LeGeek57510/@LeGeek57510https://zestedesavoir.com/forums/sujet/11222/erreur-while-do-loop-vbnet/?page=1#p187519<p>Bonjour,
J’ai actuellement ce code:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-vbnet"><span class="hljs-keyword">Private</span> <span class="hljs-keyword">Sub</span> Form1_Load(<span class="hljs-keyword">ByVal</span> sender <span class="hljs-keyword">As</span> System.<span class="hljs-built_in">Object</span>, <span class="hljs-keyword">ByVal</span> e <span class="hljs-keyword">As</span> System.EventArgs) <span class="hljs-keyword">Handles</span> <span class="hljs-keyword">MyBase</span>.Load
<span class="hljs-keyword">Dim</span> Thread1 <span class="hljs-keyword">As</span> <span class="hljs-keyword">New</span> Thread(<span class="hljs-keyword">Sub</span>() viewBattery())
Thread1.IsBackground = <span class="hljs-literal">True</span>
Thread1.Start()
<span class="hljs-keyword">End</span> <span class="hljs-keyword">Sub</span>
<span class="hljs-keyword">Sub</span> viewBattery()
<span class="hljs-keyword">Do</span>
<span class="hljs-keyword">If</span> battery <> (SystemInformation.PowerStatus.BatteryLifePercent * <span class="hljs-number">100</span>) <span class="hljs-keyword">Then</span>
battery = (SystemInformation.PowerStatus.BatteryLifePercent * <span class="hljs-number">100</span>)
Invoke(<span class="hljs-keyword">New</span> MethodInvoker(<span class="hljs-keyword">Sub</span>()
Label1.<span class="hljs-keyword">Text</span> = <span class="hljs-string">"Actuellement: "</span> & battery & <span class="hljs-string">"%"</span>
<span class="hljs-keyword">End</span> <span class="hljs-keyword">Sub</span>))
<span class="hljs-keyword">End</span> <span class="hljs-keyword">If</span>
<span class="hljs-keyword">Loop</span>
<span class="hljs-keyword">End</span> <span class="hljs-keyword">Sub</span>
</code></pre></div>
<p>Qui me permet d’avoir le pourcentage de ma battery en temps réel. Donc jusque là tout fonctionne, mais lorsque je ferme le logiciel, sa m’affiche une erreur: </p>
<figure><img src="https://zupimages.net/up/18/35/rncr.png" alt="Image utilisateur"><figcaption>Image utilisateur</figcaption></figure>
<p>Alors comment faire ?
Merci</p>Boucles de redirection, message #451632015-02-22T22:46:22+01:00viki53/@viki53https://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45163<figure><blockquote>
<p>Quant aux conditions, c'est extrêmement difficile. Le client dit "Dém**dez-vous, ça doit marcher tout le temps" (parce qu'évidemment, ça ne le lui a fait qu'un jour et maintenant plus), et les utilisateurs, le client ne veut pas les recontacter pour le leur demander. Pour autant que e problème soit signalé… ce qui n'est arrivé qu'une fois à ma connaissance depuis qu'on travaille pour lui, ce qui fait depuis novembre 2014.</p>
<p>Donc en gros, on est dans un cas très particulier que nous n'arrivons pas à déceler.
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45157">Ymox</a></p></figcaption></figure><p>Super pratique. Du coup même pas sûr que ce soit lié au navigateur. Ni même au code. Ni même à quoi que ce soit. Si le cas est apparu qu'une fois et jamais reproduit, ça sent le bug fantôme ou le PEBKAC.</p>
<figure><blockquote>
<figure><blockquote>
<p>Les sessions ne dépendent pas nécessairement de cookies (même si 99% du temps c'est vrai). <img alt=";)" src="/static/smileys/clin.png"> </p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45156">viki53</a></p></figcaption></figure><p>Quels autres moyens y a-t-il, en plus de passer PHPSESSID dans l'URL ? Cette dernière méthode n'est pas utilisée sur le site, on a vérifié.
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45157">Ymox</a></p></figcaption></figure><p>Bah c'en est déjà un, non ? <img alt=";)" src="/static/smileys/clin.png"> </p>Boucles de redirection, message #451572015-02-22T21:40:03+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45157<figure><blockquote>
<p>Tu sais entre quelles pages la boucle se fait ? Et éventuellement quelles conditions les provoquent ?
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45156">viki53</a></p></figcaption></figure><figure><blockquote>
<p>Un des cas que j'ai pu tracer est le suivant :</p>
<ul>
<li>on arrive sur la page de connexion</li>
<li>on demande à réinitialiser son mot de passe</li>
<li>cela redirige vers une autre page</li>
<li>l'utilisateur donne un élément d'identification</li>
<li>le mot de passe temporaire est envoyé</li>
<li>on est redirigé sur la page de connexion</li>
</ul>
<p>… et là c'est le drame et le client pousse des hauts cris.
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44594">Ymox</a></p></figcaption></figure><p>Quant aux conditions, c'est extrêmement difficile. Le client dit "Dém**dez-vous, ça doit marcher tout le temps" (parce qu'évidemment, ça ne le lui a fait qu'un jour et maintenant plus), et les utilisateurs, le client ne veut pas les recontacter pour le leur demander. Pour autant que le problème soit signalé… ce qui n'est arrivé qu'une fois à ma connaissance depuis qu'on travaille pour lui, ce qui fait depuis novembre 2014.</p>
<p>Donc en gros, on est dans un cas très particulier que nous n'arrivons pas à déceler.</p>
<figure><blockquote>
<p>Les sessions ne dépendent pas nécessairement de cookies (même si 99% du temps c'est vrai). <img alt=";)" src="/static/smileys/clin.png"> </p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45156">viki53</a></p></figcaption></figure><p>Quels autres moyens y a-t-il, en plus de passer PHPSESSID dans l'URL ? Cette dernière méthode n'est pas utilisée sur le site, on a vérifié.</p>Boucles de redirection, message #451562015-02-22T21:32:55+01:00viki53/@viki53https://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45156<p>Les sessions ne dépendent pas nécessairement de cookies (même si 99% du temps c'est vrai). <img alt=";)" src="/static/smileys/clin.png"> </p>
<p>C'est étrange que Chrome ne lise pas les headers, même pour limiter les accès au réseau. Y'a une anguille dans le potage…</p>
<p>Tu sais entre quelles pages la boucle se fait ? Et éventuellement quelles conditions provoquent les redirections ?</p>Boucles de redirection, message #451552015-02-22T21:19:49+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45155<p>J'ai justement vérifié les cookies, et il n'y en a aucun du site au moment de la redirection, donc pas de session PHP non-plus.</p>Boucles de redirection, message #450962015-02-22T10:35:51+01:00viki53/@viki53https://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p45096<p>Au lieu de lyncher Chrome, tu t'es renseigné sur le pourquoi de la boucle de redirection ?</p>
<p>Par exemple en regardant les cookies ou en examinant la session : si après déconnexion tu n'as pas accès à la page de connexion c'est qu'il doit y avoir des éléments qui bloquent.</p>
<p>Surtout que, de mémoire, le cache n'existe que sur le contenu des pages, pas les headers qui sont lus à chaque fois (même si, bon, des fois Chrome s'emmerde pas trop à le faire pour économiser un peu d'énergie — fainéant !).</p>Boucles de redirection, message #447082015-02-19T20:00:17+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44708<p>Ben ce genre de soucis de redirection entre autres, qui arrive plus souvent avec Chrome qu'avec d'autres navigateurs de ce que j'ai pu constater (et si c'est pas lié au navigateur, on pourrait faire avancer le sujet), des CSS et des JS pas mis à jour qu'après une semaine (!), et parfois même en forçant avec <kbd>Ctrl</kbd> + <kbd>F5</kbd> – il semble qu'avoir la barre de développement ouverte désactiverait totalement le cache, mais j'avais un collègue pour qui ça ne faisait absolument rien, il lui fallait absolument passer en navigation privée ou fermer Chrome et utiliser un programme du genre CCleaner parce que même purger le cache avec <kbd>Ctrl</kbd> + <kbd>⇧</kbd> + <kbd>Del</kbd> et tout cocher ne réglait pas le problème, et ce sur toute une année.</p>
<p>J'y ai aussi eu droit quand j'ai tenté d'utiliser Chrome pour le développement, d'ailleurs.</p>Boucles de redirection, message #446892015-02-19T18:27:59+01:00Zazou/@Zazouhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44689<p>Hum non pourtant, je ne fais absolument rien de particulier. Je l'utilise comme un navigateur lambda, comme j'utiliserais firefox si son interface ne me rebutait pas…</p>
<p>Quels sont les problèmes liés à Chrome franchement ? Parce que dans le fond, je les ai peut-être aussi mais je ne les rencontre pas ou je ne m'en rends pas compte tout simplement.</p>Boucles de redirection, message #446332015-02-19T14:06:45+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44633<figure><blockquote>
<p>C'est marrant ça, je l'utilise quotidiennement professionnellement et personnellement et je n'ai noté aucun problème de cache.
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44599">Zazou</a></p></figcaption></figure><p>Apparemment, tu sais comment l'utiliser et le régler en conséquence, contrairement à la majorité de ceux qui utilisent ce navigateur par effet de mode <img alt=";)" src="/static/smileys/clin.png"></p>Boucles de redirection, message #445992015-02-19T11:45:23+01:00Zazou/@Zazouhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44599<p>C'est marrant ça, je l'utilise quotidiennement professionnellement et personnellement et je n'ai noté aucun problème de cache.</p>Boucles de redirection, message #445942015-02-19T11:19:47+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44594<p>Un des cas que j'ai pu tracer est le suivant :</p>
<ul>
<li>on arrive sur la page de connexion</li>
<li>on demande à réinitialiser son mot de passe</li>
<li>cela redirige vers une autre page</li>
<li>l'utilisateur donne un élément d'identification</li>
<li>le mot de passe temporaire est envoyé</li>
<li>on est redirigé sur la page de connexion</li>
</ul>
<p>… et là c'est le drame et le client pousse des hauts cris.</p>
<figure><blockquote>
<p>Disons qu'une pratique sympa c'est de mettre une entête de réponse du type Must-Revalidate dès qu'une modification de fond (nouvelles url, nouvelle architecture) ou de front (JS…) est opérée.</p>
</blockquote>
<figcaption><p><a href="#p44574">artragis</a></p></figcaption></figure><p>Je vais voir ça, merci</p>
<figure><blockquote>
<p>Ensuite, tu as les durées d'expiration du cache, mais là à part dire "il expire dans une seconde", je ne vois pas trop quoi faire.</p>
<p>Enfin, il existe, si mes souvenirs sont bons, une clause Cache-Control: No-Cache. Mais elle réduit fortement les perfs du site.
</p>
</blockquote>
<figcaption><p><a href="#p44574">artragis</a></p></figcaption></figure><p>Dans ces deux cas, je pensais aussi que c'était overkill, mais je ne connais pas assez pour pouvoir m'en assurer</p>
<figure><blockquote>
<p>PS: encore une preuve que Chrome est l'IE6 de 2015
</p>
</blockquote>
<figcaption><p><a href="http://zestedesavoir.com/forums/sujet/2486/boucles-de-redirection/?page=1#p44574">artragis</a></p></figcaption></figure><p>C'est bien beau de le vendre comme "c'est nous le plus rapide et le plus léger", mais quand on remarque que le cache n'est vidé complètement que si aucun onglet n'est ouvert (donc forcer le rechargement sans cache ne fonctionne pas vraiment), j'avoue encore me demander pourquoi une large majorité de mes collègues développeurs travaillent avec, tout en pestant contre ces soucis de cache agressif.</p>