Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

algobox syntaxe

Posté par
baek13
04-05-13 à 19:20

Bonjour,
J'ai fait un algorithme assez complexe sur algobox. J'ai apparemment fait une erreur de syntaxe mais je ne la trouve.

Je ne vous demande pas de comprendre l'algorithme, mais juste que vous cherchiez une erreur de syntaxe :

VARIABLES
  n EST_DU_TYPE NOMBRE
  x EST_DU_TYPE NOMBRE
  c EST_DU_TYPE NOMBRE
  a EST_DU_TYPE NOMBRE
  b EST_DU_TYPE NOMBRE
  t EST_DU_TYPE NOMBRE
  p1 EST_DU_TYPE NOMBRE
  p2 EST_DU_TYPE NOMBRE
  p3 EST_DU_TYPE NOMBRE
  p4 EST_DU_TYPE NOMBRE
  p5 EST_DU_TYPE NOMBRE
  p6 EST_DU_TYPE NOMBRE
  p7 EST_DU_TYPE NOMBRE
  p8 EST_DU_TYPE NOMBRE
  p9 EST_DU_TYPE NOMBRE
  p0 EST_DU_TYPE NOMBRE
  a1 EST_DU_TYPE NOMBRE
  b1 EST_DU_TYPE NOMBRE
  c1 EST_DU_TYPE NOMBRE
  d EST_DU_TYPE NOMBRE
  d1 EST_DU_TYPE NOMBRE
  p EST_DU_TYPE NOMBRE
  a11 EST_DU_TYPE NOMBRE
  b11 EST_DU_TYPE NOMBRE
  c11 EST_DU_TYPE NOMBRE
  d11 EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  n PREND_LA_VALEUR 1
  x PREND_LA_VALEUR 0
  TANT_QUE (x!=10) FAIRE
    DEBUT_TANT_QUE
    n PREND_LA_VALEUR n+1
    a PREND_LA_VALEUR 0
    b PREND_LA_VALEUR 0
    c PREND_LA_VALEUR 0
    d PREND_LA_VALEUR 0
    x PREND_LA_VALEUR 0
    p PREND_LA_VALEUR 2
    t PREND_LA_VALEUR floor(1+(log(n)/log(10)))
    TANT_QUE (n%p!=0 OU p<=floor(n/2)+5) FAIRE
      DEBUT_TANT_QUE
      p PREND_LA_VALEUR p+1
      FIN_TANT_QUE
    SI (t==1) ALORS
      DEBUT_SI
      a PREND_LA_VALEUR n
      FIN_SI
    SI (t==2) ALORS
      DEBUT_SI
      a PREND_LA_VALEUR floor(n/pow(10,1))
      b PREND_LA_VALEUR floor(n-a*10)
      FIN_SI
    SI (t==3) ALORS
      DEBUT_SI
      a PREND_LA_VALEUR floor(n/pow(10,2))
      b PREND_LA_VALEUR floor((n-a*pow(10,2))/10)
      c PREND_LA_VALEUR n-a*100-b*10
      FIN_SI
    SI (t==4) ALORS
      DEBUT_SI
      a PREND_LA_VALEUR floor(n/pow(10,3))
      b PREND_LA_VALEUR floor((n-a*pow(10,3))/pow(10,2))
      c PREND_LA_VALEUR floor((n-a*1000-b*100)/10)
      d PREND_LA_VALEUR n-a*1000-b*100-c*10
      FIN_SI
    SI (((a==1 OU b==1 OU c==1 d==1) ET (a>=b>=c>=d))) ALORS
      DEBUT_SI
      p1 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p1 PREND_LA_VALEUR 0
        FIN_SINON
    SI (a==1 OU a==3 OU a==5 OU a==7 OU a==9 ) ALORS
      DEBUT_SI
      a1 PREND_LA_VALEUR 1
      a11 PREND_LA_VALEUR a
      FIN_SI
      SINON
        DEBUT_SINON
        a1 PREND_LA_VALEUR 0
        a11 PREND_LA_VALEUR 1
        FIN_SINON
    SI (b==1 OU b==3 OU b==5 OU b==7 OU b==9 ) ALORS
      DEBUT_SI
      b1 PREND_LA_VALEUR 1
      b11 PREND_LA_VALEUR b
      FIN_SI
      SINON
        DEBUT_SINON
        b1 PREND_LA_VALEUR 0
        b11 PREND_LA_VALEUR 1
        FIN_SINON
    SI (c==1 OU c==3 OU c==5 OU c==7 OU c==9 ) ALORS
      DEBUT_SI
      c1 PREND_LA_VALEUR 1
      c11 PREND_LA_VALEUR c
      FIN_SI
      SINON
        DEBUT_SINON
        c1 PREND_LA_VALEUR 0
        c11 PREND_LA_VALEUR 1
        FIN_SINON
    SI (d==1 OU d==3 OU d==5 OU d==7 OU d==9)) ALORS
      DEBUT_SI
      d1 PREND_LA_VALEUR 1
      d11 PREND_LA_VALEUR d
      FIN_SI
      SINON
        DEBUT_SINON
        d1 PREND_LA_VALEUR 0
        d11 PREND_LA_VALEUR 1
        FIN_SINON
    SI (((a==2 OU b==2 OU c==2 OU d==2) ET (a1+b1+c1+d1>=2))) ALORS
      DEBUT_SI
      p2 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p2 PREND_LA_VALEUR 0
        FIN_SINON
    SI (((a==3 OU b==3 OU c==3 OU d==3) ET (a!=b!=c!=d)) ALORS
      DEBUT_SI
      p3 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p3 PREND_LA_VALEUR 0
        FIN_SINON
    SI (((a==4 OU b==4 OU c==4 OU d==4) ET (d1==0)) ALORS
      DEBUT_SI
      p4 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p4 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==5 OU b==5 OU c==5 OU d==5) ET (floor((a*b*c*d)/5)==((a*b*c*d)/5))) ALORS
      DEBUT_SI
      p5 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p5 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==6 OU b==6 OU c==6 OU d==6) ET ((a+b+c)%2!=0 OU (b+c+d)%2!=0)) ALORS
      DEBUT_SI
      p6 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p6 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==7 OU b==7 OU c==7 OU d==7) ET p>floor(n/2)) ALORS
      DEBUT_SI
      p7 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p7 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==8 OU b==8 OU c==8 OU d==8) ET (b1==1 OU c1 ==1)) ALORS
      DEBUT_SI
      p8 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p8 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==9 OU b==9 OU c==9 OU d==9) ET (floor(sqrt(a11*b11*c11*d11))==sqrt(a11*b11*c11*d11)) ALORS
      DEBUT_SI
      p9 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p9 PREND_LA_VALEUR 0
        FIN_SINON
    SI ((a==0 OU b==0 OU c==0 OU d==0) ET ((a==b+c+d OU b==a+c+d OU c==a+b+d OU d==a+b+c) ET a!=b!=c!=d)) ALORS
      DEBUT_SI
      p0 PREND_LA_VALEUR 1
      FIN_SI
      SINON
        DEBUT_SINON
        p0 PREND_LA_VALEUR 0
        FIN_SINON
    x PREND_LA_VALEUR p1+p2+p3+p4+p5+p6+p7+p8+p9+p0
    FIN_TANT_QUE
  AFFICHER* "Le nombre mystère est :"
  AFFICHER n
FIN_ALGORITHME

Posté par
Eric1
re : algobox syntaxe 04-05-13 à 19:24

Bonjour

SI (((a==1 OU b==1 OU c==1 d==1) ET (a>=b>=c>=d))) ALORS

Il manque un operatuer non?



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1768 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !