oui j'ai pris la peine de tester : il ne marche pas sans le tilde !
merci pour le vocabulaire au passage
j'explique en gros parce que je ne crois pas que je puisse tout coller. c un programme qui va essayer de trouver un nombre en faisant des calculs a partir d'un vecteur de 6 nombres dans le principe du jeu le compte est bon
voila mon programme (du moins la partie en question):
long est la longueur du vecteur (donc 6) composantes les composantes (très recherché XD)
si j'ai oublié de dire quelque chose pour la compréhension faites le moi savoir
test=0;
%test prend la valeur 0 lorsque aucune solution n'est trouvée, et 1 lorsque une solution est trouvée.
i=0;
while ((test==0)&(i~=long-1))
i=i+1;
if composantes(i)~=0
j=i;
while ((test==0)&(j~=long))
j=j+1;
if composantes(j)~=0
comp1=max([composantes(i) composantes(j)]);
comp2=min([composantes(i) composantes(j)]);
% cette partie permet de ne pas effectuer des calculs impossibles avec la soustraction et la division
operateur=1;
% operateur permet de connaitre les calculs utilisés
while ~((test)|(operateur==5))
sol=0;
if operateur==1
sol=comp1+comp2;
elseif operateur==2
sol=comp1-comp2;
elseif operateur==3
sol=comp1*comp2;
elseif operateur==4
% on vérifie que le reste de la division est entier
if (comp1)/(comp2)==floor((comp1)/(comp2))
sol=comp1/comp2;
else
sol=sol;
end
end
if sol==N
test=1;
elseif (sol~=0)&(nb>=1)
compoaux=composantes;
compoaux(i)=sol;
compoaux(j)=0;
compoaux
%on remplace les deux chiffres utilisés par le résultat trouvé avec l'opérateur
test=tousCalculs2(nb-1,compoaux,N,long);
end
if test==1
% on affiche le calcul
if operateur==1
disp([num2str(comp1), ' + ' , num2str(comp2) , ' = ' , num2str(sol) ]);
elseif operateur==2
disp([num2str(comp1), ' - ' , num2str(comp2) , ' = ' , num2str(sol) ]);
elseif operateur==3
disp([num2str(comp1), ' * ' , num2str(comp2) , ' = ' , num2str(sol) ]);
elseif operateur==4
disp([num2str(comp1), ' / ' , num2str(comp2) , ' = ' , num2str(sol) ]);
end
end
operateur=operateur+1;
end
merci pour l'aide !