ReBonjour et bonne année existe t'il une fonction par le biais d'une macro qui calcul n! factorielle par exemple avec une fonction recursive qui calcul n*n-1*n-2...? avec n en paramètre
ReBonjour et bonne année existe t'il une fonction par le biais d'une macro qui calcul n! factorielle par exemple avec une fonction recursive qui calcul n*n-1*n-2...? avec n en paramètre
Il existe une fonction SAS te calculant directement le factoriel : la fonction fact
C'est sur à quoi ca sert de faire une macro qd une fonction existe mais c'est une macro que je suis obligé de faire
Bonjour,
C'est dans le cadre d'un exercice scolaire?
Plus ou moin c'est surtout pour m'entrainer alors je fais des exercices que j'ai trouvé car je vais avoir un partiel sur ls macros sas
Si c'est pour t'entraîner, je ne saurais trop te conseiller de réaliser d'abord une ébauche de programme puis de venir ensuite nous poser des questions sur : ce qui ne marche pas, les difficultés rencontrés, l'optimisation de ton programme, ....
Je ne pense pas que le fait que nous fassions directement ton exercice t'aidera, ...., en programmation la réflexion prime sur l'action!
Je ne sais pas comment commencer, j'ai fait cela mais je sais que ce n'est pas ca, je ne sais pas comment présenter la formule ou avec un while je sais pas besoin d'aide!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 %macro factorielle(n); %do i=-1 %to -&n; %if &n^=0 and &n^=1 %then %evalf(&n*(&n-&i));
Hello,
Il faut d'abord que tu écrives ton algorithme et que tu le traduises ensuite en langage macro :
Ton algo :
Si n=0 alors res=1
Si n=1 alors res=1*1
.....
Si n=10 alors n=1*2*3*...*10
est ce un bon début?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 %macro factorielle(n); %if fact=&n %then res=%do i=1 %to &n; %eval(&i*&n)%end;; %mend; %factorielle(2);
Hello,
Tu as beaucoup d'erreurs de ";".
Une autre remarque : ta variable fact n'est déclarée nulle part et n'est pas une macro-variable, de même pour res qui ne fait référence à rien.
Pour déclarer une macro-variable, tu dois utiliser %let
Pense aussi à utiliser les %PUT pour voir le résultat de ce que tu fais.
Voici ce que ton programme fait actuellement, après corrections des ";":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 %macro factorielle(n); %IF fact=&n %then res=; %do i=1 %TO &n; %PUT %eval(&i*&n); %end; %mend; %factorielle(2);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager