Comment programmer

Nous avons un problème, comment faire un programme turbopascal qui puisse convertir un nombre en son expression litterale.
Le nombre est inférieur à un million; on suppose que le nombre 70 et 90 sont ecris réspectivement septante et nonante.
NB: les nombres à convertir sont des entiers et 80 s'ecrit en un mot.
Nous demandons votre asssistance ou des indices pour accomplir notre programme.

3 réponses

  1. comment programer une symetrie
    0
    1. j'avais fait un prog de ce genre la y'a longtemps
      alors tu fait ta saisie
      alors si tu ne gére pas les cents
      tu écris le chiffre de droite (un si 1, deux si 2) (ou onze si il y a un 1 devant) et ainsi de suite
      c'est chiant et long.
      si tu veut la source mail-moi je te len enverait (mais pas envant lundi)
      0
      1. Bjr Didier,

        Voici un truc auquel j'avais réfléchi il y a quelques temps ...

        Voici les règles que j'utiliserais :

        Cas particulièrs

        0 : zéro
        1 : un
        2 : deux
        3 : trois
        4 : quatre
        5 : cinq
        6 : six
        7 : sept
        8 : huit
        9 : neuf
        10 : dix
        11 : onze
        12 : douze
        13 : treize
        14 : quatorze
        15 : quinze
        16 : seize

        20 : vingt

        30 : trente

        40 : quarante

        50 : cinquante

        60 : soixante

        100 : cent

        1000 : mille

        Lorsque le nombre ne correspond pas exactement à un cas particulier appliquer les règles suivantes :

        Nombres à 2 chiffres :

        1n : [10] [n]

        21 : [20] et [n]
        2n : [20] [n]

        31 : [30] et [n]
        3n : [30] [n]

        41 : [40] et [n]
        4n : [40] [n]

        51 : [50] et [n]
        5n : [50] [n]

        61 : [60] et [n]
        6n : [60] [n]

        70 : [60] [10]
        71 : [60] et [11]
        7n : [60] [n+10]

        80 : [4]-[20]
        8[n] : [4]-[20][n]

        9n : [4]-[20][n+10]

        Nombres à 3 chiffres :

        1xx: [100][traitement de xxx comme un nombre inférieur à 100]

        nxx : [n][100][traitement de yyy comme un nombre inférieur à 100][1000][traitement de xxx comme un nombre inférieur à 100]

        Nombres à 4 chiffres et plus :

        1xxx: [1000][traitement de xxx comme un nombre inférieur à 100]

        yyy xxx : [traitement de yyy comme un nombre inférieur à 100][1000][traitement de xxx comme un nombre inférieur à 100]

        etc ...

        L'application des règles :

        R10(xx)

        Si cas particulier retourne directement
        Appliques les règles des nombres à 2 chiffres

        R100(xxx)

        Sicas particulier retourne [xxx]
        Si 0xx : R10(xx)
        Si 1xx : [100]+R10(xx)
        Si nxx : [n][100]+R10(xx)

        R1000(yyyxxx)

        Si cas particulier retourne [xxx]
        Si 0xxx : R100(xx)
        Si 1xxx : [1000]R100(xx)
        Si yyyxxx : R100(yyy)[1000]R100(xxx)

        Par ex

        085150 doit retourner la chaîne : "[4]-[20][5][1000][100][50]"

        978005 doit retourner la chaîne : "[9][100][60][10][8][1000][5]"

        Reste ensuite à remplacer les valeurs entres crochets par le texte ...

        Bon ben y'a plus qu'à implémenter tout çà en Pascal ;:-)

        Et à faire les adaptations pour septante et nonante que j'emploie jamais !
        Gaffe aussi aux traits d'union je sais jamais où il faut en mettre ...

        @+
        Philippe

        [[  The Truth is Out There   ]]
        0