Vous n'êtes pas identifié.
Vous êtes sur le forum du master ESA !
Le site du master ESA - description de la formation, notes de cours, contacts... vient de déménager !!!
Venez visiter notre nouveau site : www.master-esa.fr
Le programme suivant fonctionne comme on le souhaite, on peut le vérifier en jouant avec l'instruction output:
data tirage_1; /* on distribue deux cartes au joueur */
c1 = -1; c2 = -1;
do until ( (c1-c2) in (1:52) and (c1 ne c2));
c1 = round(ranuni(1),0.01) * 100;
c2 = round(ranuni(1),0.01) * 100;
*output;
end;
run;
Seulement... ce n'est pas le cas pour celui ci :
data tirage_2;
*format c1-c7 enq.;
set tirage_1;
c3=-1;c4=-1;c5=-1;c6=-1;c7=-1;
do until ( (c3-c6) in (1:52) and (c3 ne c1-c2) and (c4 ne c1-c3) and (c5 ne c1-c4) and (c6 ne c1-c5) and(c7 ne c1-c6));
c3 = round(ranuni(1),0.01) * 100; c4 = round(ranuni(1),0.01) * 100;
c5 = round(ranuni(1),0.01) * 100; c6 = round(ranuni(1),0.01) * 100;
c7 = round(ranuni(1),0.01) * 100; output;
end;
run;
Le "(c3-c6) in (1:52)" ne peut-il gérer que 2 variables...?
Hors ligne