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
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :