|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 | |
![]() ![]() Inscription : juillet 2007 Messages : 1 296 ![]() |
Citation:
|
|
|
|
00
|
|
|
#22 |
|
Membre éclairé
![]() Inscription : janvier 2005 Messages : 474 ![]() |
Salut Monsieur Richard,
je crois que Dr.Who a laissé le choix à l'utilisateur pou imax Bonne chance Merci.
__________________
Deux, n'apprendront pas; le timide |
|
|
00
|
|
|
#23 | |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2004 Messages : 1 964 ![]() |
Citation:
Mais je crois surtout et ce qui angoisse richard qu'on va tomber dans une boucle infinie si on ne prend pas en compte la proposition de darrylsite écrite juste au dessus !!!
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! ! Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells |
|
|
|
00
|
|
|
#24 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Gia,
Citation:
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#25 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2004 Messages : 1 964 ![]() |
Oui si tu me prends aux mots et aux valeurs de bornes 'integer'
Juste pour dire qu'on allait faussé le résultat attendu
__________________
Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! ! Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells |
|
|
00
|
|
|
#26 | |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 427 ![]() |
Citation:
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
|
00
|
|
|
#27 |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 427 ![]() |
Oui-da, mais dans ce cas elle se sera jamais exécutée car la condition ne peut pas être vérifiée puisque 0 est le plus petit entier existant à ma connaissance, cette boucle est donc inutile ... Le choix entre une boucle infinie ou une boucle jamais exécutée est angoissant, non ?
( M'enfin c'était juste une erreur de '<' au lieu de '>' , tout le monde avait compris, simplement c'est ce type d'erreur qui peut planter tout un programme
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
00
|
|
|
#28 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hai,
Citation:
Et quand l'incrémentation de la variable atteindra le maximum possible pour les valeurs positives, le débordement lors du calcul renverra une valeur négative. Et paf, la boucle s'arrêtera, car la condition deviendra vraie.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#29 | ||
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 427 ![]() |
Citation:
Citation:
Mais je bute peut-être sur une de mes lacunes fondamentales ?
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
||
|
|
00
|
|
|
#30 | |
![]() ![]() Inscription : juillet 2007 Messages : 1 296 ![]() |
Citation:
i commence à 0 et croit jusqu'à ce que i soit inférieur à iMax. Alors si nous admettons que nous initialisons iMax à -1, mathématiquement i ne pourra pas être inférieur à iMax puisque sa valeur croit à partir de 0 : i E [0; +infini[ Mais vu les limitations sur les types de données Integer, si je suppose par exemple que les entiers sont représentés sur 16 bit en compléments à 2, le domaine de variation de i sera : i E [0; +32767[ U [-32768; 0[ On voit donc bien que i prendra des valeurs négatives inférieures à iMax. Mais si au départ la valeur de iMax est supérieure à 0, alors la boucle ne s'exécutera pas. Je suppose que c'est ce que tu disais. |
|
|
|
00
|
|
|
#31 |
|
Membre expérimenté
![]() ![]() Inscription : avril 2002 Messages : 427 ![]() |
Juste. J'avais oublié qu'arrivé à la fin des entiers positifs, I prenait une valeur négative.
C'est pour moi un effet de bord qui ne correspond pas du tout à l'algorithme mais effectivement, dans la pratique, c'est toi [EDIT <et Droggo>] qui a raison et donc moi qui ai tort. Merci pour ce rafraîchissement de mémoire, en tout cas.
__________________
"Software is getting slower more rapidly than hardware becomes faster." Niklaus Wirth |
|
|
00
|
|
|
#32 | |
![]() ![]() Inscription : juillet 2007 Messages : 1 296 ![]() |
Citation:
|
|
|
|
00
|
|
|
#33 | ||
|
Invité de passage
![]() Stephane Analyste développeur Inscription : décembre 2011 Messages : 1 ![]() |
en essayant ça ? ( même 12 mois après je veux essayer
Code :
|
||
|
|
00
|
|
|
#34 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Qua,
Pourquoi toujours tenir à compliquer le code ? Le problème est résolu depuis longtemps, en Pascal, c'est du domaine d'une boucle while (ou repeat .. until, si, si Avec ton code, ta boucle vas faire 2 fois de tours que nécessaire, ce simple fait montre que ce n'est pas adapté.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
|
|
#35 | |
![]() ![]() Inscription : juillet 2007 Messages : 1 296 ![]() |
Citation:
En management on parle souvent d'efficience et d'efficacité. Le code que propose minifux peu être considéré comme efficace en ce sens qu'il résout le problème posé. Mais non efficient puisqu'il utilise plus de moyen que nécessaire. La solution avec une boucle while est plutôt efficient, et là la meilleur solution. |
|
|
|
00
|
|
|
#36 | ||
|
Invité de passage
![]() George KlarcksonÉtudiant Inscription : mars 2012 Messages : 10 ![]() |
Il y a beaucoup de solutions, dont celle-ci :
Code :
|
||
|
|
01
|
|
|
#37 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hoe,
C'était envisageable, mais c'est du code très sale, car modification du compteur de boucle dans la boucle, ce qu'on n'est pas censé faire en Pascal. D'ailleurs, les compilateurs plus récents doivent l'interdire. Et une fois de plus, pourquoi insister, ce sujet est résolu depuis longtemps ! Et en plus avec un code crade ...
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
00
|
|
|
#38 | |||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 687 ![]() |
Si je puis me permettre, moi je ne trouve même pas ça "envisageable". L'instruction donnée à la machine est inintelligible.
Ça me rappelle ces vers : Citation:
Cependant je serais curieux de savoir ce qui se passe dans la machine si on essaie d'exécuter ce code : Code :
1° Turbo-Pascal i croît indéfiniment, sans s'arrêter à la limite indiquée. 2° Virtual-Pascal Le programme donne le résultat espéré : à 10 il s'arrête. 3° Free-Pascal La compilation est refusée. Un message explique qu'il est "illégal" de changer la valeur de i. Les bons exemples ont tous été donnés dans la première page.
__________________
L'Art est long et le Temps est court. |
|||
|
|
10
|
|
|
#39 | |
|
Membre émérite
![]() anthony Enseignant Inscription : avril 2005 Messages : 1 026 ![]() |
Excellent
__________________
Citation:
|
|
|
|
00
|
|
|
#40 |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Qui,
Par "envisageable", je voulais dire que TP aurait accepter ce code, je ne dis pas que le programmeur aurait dû envisager de le faire. C'était un des bugs de TP, dans lequel ils sont nombreux à être tombés, et aussi nombreux à en avoir perdu le peu de Pascal qu'ils avaient ("peu de Pascal", car un programmeur connaissant vraiment Pascal ne devrait même pas se poser la question "Puis-je faire ça ?").
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com