Pascal.. bug Repeat.. Until?

Fermé
Mav_is_tired - Modifié par Mav_is_tired le 21/05/2011 à 19:07
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 21 mai 2011 à 22:09
Bonjour,

Bonjour,

Je me demande pourquoi le foo1 arrête de faire "Readln(X)" après 3 ou 4 tentatives où l'entier que je tape est strictement supérieur à 100 (et inférieur a 32000).


program foo1;  
uses wincrt;  
var x:integer;  
begin  
repeat  
readln(X);  
until (X in [1..100]);  
end. 




Celui-là, par contre , marche à merveille.


program foo2;  
uses wincrt;  
var x:integer;  
begin  
repeat  
readln(X);  
until (X>0) and (X<=100);  
end. 



Mais notre prof d'info a dit que les deux écritures sont équivalentes si X est entier!! alors bug ou quoi???
(Note: Je suis sous windows 7 -32 bit et TPW 1.5)

Merci!

A voir également:

2 réponses

Mav_is_tired
21 mai 2011 à 21:51
je vois que personne n'a Pascal TPW 1.5 :(
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
21 mai 2011 à 22:09
En effet, je viens de tester sur Dev-Pascal et je n'ai pas de problème, c'est bien équivalent.
Mais utiliser TPW 1.5 qui a été édité en 1992 pour Windows 16 bits, c'est un peu absurde, la preuve, moi j'ai pas de problème avec Dev-Pascal ^^
0