Comment programmer
didier
-
PhP Messages postés 1774 Statut Membre -
PhP Messages postés 1774 Statut Membre -
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.
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.
A voir également:
- Comment programmer
- Programmer sms - Guide
- Comment programmer un mail sur gmail - Guide
- Apprendre a programmer - Guide
- Programmer télécommande remotesreplaced rrs41 - Forum Matériel & Système
- Impossible de programmer télécommande came - Forum Programmation
3 réponses
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)
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)
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 ]]
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 ]]