'toutlet DECLARE FUNCTION TouteLettres$ (Total AS CURRENCY) DIM mot$(100), digit(20) AS INTEGER, unit$(9) DIM nn AS LONG, c AS STRING * 1, nombre$(20), somme AS LONG CLS GOSUB init somme = 976345678 nbchif = 0 FOR i = LEN(LTRIM$(STR$(somme))) TO 1 STEP -1 nbchif = nbchif + 1 digit(i) = VAL(MID$(LTRIM$(STR$(somme)), i, 1)) NEXT i FOR i = nbchif TO 1 STEP -1 IF (unit$(nbchif + 1 - i) = "*") THEN nb = digit(i) * 10 + digit(i + 1) IF (mot$(nb) = "*") THEN nombre$(i) = mot$(digit(i) * 10) + " " ELSE nombre$(i) = mot$(nb) + " " + unit$(nbchif + 1 - i - 1) + " " nombre$(i + 1) = " " END IF ELSE IF (digit(i) = 1) THEN nombre$(i) = unit$(nbchif + 1 - i) + " " ELSE nombre$(i) = mot$(digit(i)) + " " + unit$(nbchif + 1 - i) + " " END IF END IF NEXT i PRINT PRINT somme MID$(nombre$(1), 1, 1) = UCASE$(MID$(nombre$(1), 1, 1)) PRINT tl$ = "" FOR i = 1 TO nbchif tl$ = tl$ + nombre$(i) NEXT i PRINT tl$ END '---------------------------------------------------------------------------- init: FOR i = 0 TO 100 mot$(i) = "*" NEXT i DO READ nn, mot$(nn) LOOP UNTIL nn = 0 unit$(1) = "" unit$(2) = "*" unit$(3) = "cent" unit$(4) = "mille" unit$(5) = "*" unit$(6) = "cent" unit$(7) = "million" unit$(8) = "*" unit$(9) = "cent" RETURN '------------------------------------------------------------------------ DATA 1,"un" DATA 2,"deux" DATA 3,"trois" DATA 4,"quatre" DATA 5,"cinq" DATA 6,"six" DATA 7,"sept" DATA 8,"huit" DATA 9,"neuf" DATA 10,"dix" DATA 11,"onze" DATA 12,"douze" DATA 13,"treize" DATA 14,"quatorze" DATA 15,"quinze" DATA 16,"seize" DATA 17,"dix sept" DATA 18,"dix huit" DATA 19,"dix neuf" DATA 20,"vingt" DATA 21,"vingt et un" DATA 30,"trente" DATA 21,"trente et un" DATA 40,"quarante" DATA 41,"quarante et un" DATA 50,"cinquante" DATA 51,"cinquante et un" DATA 60,"soixante" DATA 61,"soixante et un" DATA 70,"soixante dix" DATA 71,"soixante et onze" DATA 72,"soixante douze" DATA 73,"soixante treize" DATA 74,"soixante quatorze" DATA 75,"soixante quinze" DATA 76,"soixante seize" DATA 77,"soixante dix sept" DATA 78,"soixante dix huit" DATA 79,"soixante dix neuf" DATA 80,"quatre vingt" DATA 90,"quatre vingt dix" DATA 91,"quatre vingt onze" DATA 92,"quatre vingt douze" DATA 93,"quatre vingt treize" DATA 94,"quatre vingt quatorze" DATA 95,"quatre vingt quinze" DATA 96,"quatre vingt seize" DATA 97,"quatre vingt dix sept" DATA 98,"quatre vingt dix huit" DATA 99,"quatre vingt dix neuf" DATA 100,"cent" DATA 0,"" DATA "mille" DEFINT A-Z ' ' ' ' ' FUNCTION TouteLettres$ (Total AS CURRENCY) SHARED mot$(), unit$(), nombre$(), digit() AS INTEGER DIM somme AS LONG vv$ = LTRIM$(STR$((Total))) FOR i = LEN(LTRIM$(STR$(somme))) TO 1 STEP -1 nbchif = nbchif + 1 digit(i) = VAL(MID$(LTRIM$(STR$(somme)), i, 1)) NEXT i FOR i = nbchif TO 1 STEP -1 IF (unit$(nbchif + 1 - i) = "*") THEN nb = digit(i) * 10 + digit(i + 1) IF (mot$(nb) = "*") THEN nombre$(i) = mot$(digit(i) * 10) + " " ELSE nombre$(i) = mot$(nb) + " " + unit$(nbchif + 1 - i - 1) + " " nombre$(i + 1) = " " END IF ELSE IF (digit(i) = 1) THEN nombre$(i) = unit$(nbchif + 1 - i) + " " ELSE nombre$(i) = mot$(digit(i)) + " " + unit$(nbchif + 1 - i) + " " END IF END IF NEXT i END FUNCTION