LEX 'COMBARR' ID #71 MSG 0 POLL 0 FNRTN1 EQU #0F216 * Donne un rÅsultat en * rendant la main È BASIC. POP2N EQU #0BC8C * Prend les 2 nombres * au sommet de la Math Stack * et les passe dans A et C. ARGERR EQU #0BF19 * Renvoi: Arg. non valide. SPLITA EQU #0C6BF * Traduit un 12 digits * dans A en un 15 dans A/B. SPLTAC EQU #0C934 * Traduit 2 12 digits dans * A et C dans A/B et C/D. AD2-15 EQU #0C363 * AB = AB + CD. DV2-15 EQU #0C4AC * AB = AB/CD. FCSTRT EQU #0E757 * AB = FACT(AB). uRES12 EQU #0C994 * Transforme un 15 digits * dans AB en 12 digits * dans C. TST12A EQU #0D476 * Effectue des Tests sur * A et C. STAB2 EQU #0D400 * Stocke A/B dans R2/R3. RCCD2 EQU #0D41C * Rappelle dans C/D R2/R3. CLRFRC EQU #0C6F4 * AB = INT(AB). ENTRY ARGMT CHAR #F ENTRY CMBS CHAR #F KEY 'ARR' TOKEN 20 KEY 'COMB' TOKEN 21 ENDTXT NIBHEX 8822 ARGMT GOSUB STOCK GOSBVL uRES12 GOVLNG FNRTN1 NIBHEX 8822 CMBS * Calcul de la combinaison * de N et P. GOSUB STOCK GOSBVL STAB2 A=R1 GOSBVL SPLITA GOSBVL FCSTRT C=B W D=C W C=A W A=R3 B=A W A=R2 GOSBVL DV2-15 GOSBVL uRES12 GOVLNG FNRTN1 STOCK GOSBVL POP2N D1=D1+ 16 * Actualise D1 GOSUB STKTST A=R0 C=R1 GOSUB iARR RTN iARR * Calcul de l'arrangement * de N et P C=-C-1 S GOSBVL SPLTAC GOSBVL AD2-15 * N-P GOSBVL FCSTRT * (N-P)! GOSBVL STAB2 A=R0 GOSBVL SPLITA GOSBVL FCSTRT * N! GOSBVL RCCD2 GOSBVL DV2-15 * N!/(N-P)! RTN STKTST R0=A R1=C GOSUB TEST C=R0 GOSUB TEST A=R0 C=R1 P= 6 GOSBVL TST12A * N est-il infÅrieur È P ? RTNC GOTO ERR TEST * routine de test de la * la validitÅ des entrÅes. P=C 15 * Nombre nÅgatif ? ?P= 9 * GOYES ERR A=C W * P= 0 * Le nombre est-il > 999 ? LCHEX 002 * ?A>C X * GOYES ERR GOSBVL SPLITA GOSBVL CLRFRC * Le nombre a-t-il un * partie fractionnaire ? RTNC ERR GOVLNG ARGERR END