Plantage PE6.1.0.0

jojojo

Senior Member
#1
Code:
Symbol VARW=w13
Symbol JOURSEM=b14
Symbol JOUR=b5
Symbol MOIS=b7
Symbol ANNEE=w5

ANNEE=2018
JOUR=27
MOIS=10
do
'L'algorithme de Mike Keith num?rote de 0 ? 6
    'Dim=0, Lun=1,...,Sam=6
   JOUR=JOUR-1

   
    if MOIS < 3 then
             VARW=ANNEE-1
            else VARW=ANNEE
    end if  
    JOURSEM= 23*MOIS/9 +JOUR+4+ANNEE
    w10=VARW/4
    JOURSEM=JOURSEM+w10
    w10=VARW/100
    JOURSEM=JOURSEM-w10
    w10=VARW/400
    JOURSEM=JOURSEM+w10
    if MOIS>= 3 then
            JOURSEM=JOURSEM-2
    endif
    JOURSEM=JOURSEM//7+1
 
   

debug
Loop
Bizarre, non ?

PE6 est totalement bloqué dès la fin du download (qui se passe bien).
C'est juste un test, pour l'horloge.
Rien d’exotique.

Ça plante aussi, chez vous ?
(Sous PE5, ça roule ... Étrange ...)
 
Last edited:

MGU

Senior Member
#4
J'ai souvent des plantages en simulation avec PE6, qui est très susceptible, surtout avec des programmes pas très au point.

Pa ex, je vois : JOURSEM=JOURSEM + W10 . Hors, JOURSEM est un byte et w10 un word.
Le problème n'est pas détecté par le contrôle de syntaxe, mais surement une source de plantage.

Souvent, des simulations qui plantent avec PE6 fonctionnent avec PE5, et je ne parle pas de time...

J'essaye ce code, pour voir.

MM
 

PieM

Senior Member
#5
Bonjour,
la ligne JOUR=JOUR-1 est une erreur.
Il faut effectivement des variables word sinon le calcul est faux.
programme corrigé:
Rich (BB code):
symbol Var_temp = w4
Symbol ANNEE= w5
Symbol An_Cor= w6
Symbol JOURSEM= w7
Symbol JOUR= b5
Symbol MOIS= b7

ANNEE=2018
MOIS=10
JOUR=21

'------------------------------------
 calcul:
    if MOIS < 3 then
             An_Cor=ANNEE-1
             else: An_Cor=ANNEE
    endif

    JOURSEM= 23*MOIS/9 +JOUR+4+ANNEE
    Var_temp= An_Cor/4
    JOURSEM= JOURSEM+Var_temp
    Var_temp= An_Cor/100
    JOURSEM= JOURSEM-Var_temp
    Var_temp= An_Cor/400
    JOURSEM= JOURSEM+Var_temp
    if MOIS>= 3 then
            JOURSEM=JOURSEM-2
    endif
    JOURSEM=JOURSEM//7

select joursem
      case 0: sertxd ("Dimanche")
      case 1: sertxd ("lundi")
      case 2: sertxd ("mardi")
      case 3: sertxd ("mercredi")
      case 4: sertxd ("jeudi")
      case 5: sertxd ("vendredi")
      case 6: sertxd ("samedi")
endselect
 

MGU

Senior Member
#6
Bonjour,
Sion supprime le +1 pour numéroter de 1 à 7 au lieu de 0 à 6, si on supprime le jour=jour-1 (peut être pour compenser le +1 ?),etc.
ça fonctionne...

MM
 
Top