Bonjour,
Voici mon problème, j'ai un programme convertisseur de base et j'aimerais que quand je tapes un mot comme BONJOUR le prgm me dise qu'il est en base 29.
En gros qu'il cherche la lettre dans le mot qui est la plus loin dans l'alphabet (ici le u).
Comment faire ça ?
Merci d'avance
PS: le prgm de base est celui d'Openclassrooms (http://openclassrooms.com/courses/appre ... r-de-bases)
Trouver lettre dans chaine
27 posts
• Page 1 of 3 • 1, 2, 3
Trouver lettre dans chaine
Mes programmes (tous en basic) sont ici
-
PiR
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 25 Feb 2015, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S-SI
Re: Trouver lettre dans chaine
Un algorithme naïf :
- Tu crées une chaine contenant tout l'alphabet.
- Pour chaque lettre de l'alphabet, tu regardes ce que donne la commande
inString
sur ta chaîne originale (elle donne la position d'une sous-chaîne) - Tu arrête ta boucle quand la commande retournera 0 (sous-chaîne non trouvée), donc la lettre la plus loin dans l'alphabet sera celle juste avant.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14727
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: Trouver lettre dans chaine
Ah oui, je n'y avais pas pensé merci
Last edited by PiR on 25 Feb 2015, 18:53, edited 1 time in total.
Mes programmes (tous en basic) sont ici
-
PiR
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 25 Feb 2015, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S-SI
Re: Trouver lettre dans chaine
Tu peux même commencer la recherche à l'envers, d'ailleurs, ça ira plus vite
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14727
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: Trouver lettre dans chaine
Un peu meilleur en complexité:
Parcours ta chaîne à l'aide d'une boucle 'pour' ('for' sur la calculatrice), teste chaque caractère et garde la valeur la plus élevée.
Pour connaître la longueur de la chaîne, tu utilises l'instruction 'longueur('.
Pour récupérer un caractère de la chaîne, tu utilises l'instruction 'sous-Chaîne('.
Parcours ta chaîne à l'aide d'une boucle 'pour' ('for' sur la calculatrice), teste chaque caractère et garde la valeur la plus élevée.
Pour connaître la longueur de la chaîne, tu utilises l'instruction 'longueur('.
Pour récupérer un caractère de la chaîne, tu utilises l'instruction 'sous-Chaîne('.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41908
- Images: 15444
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Trouver lettre dans chaine
Super merci
Last edited by PiR on 25 Feb 2015, 18:59, edited 1 time in total.
Mes programmes (tous en basic) sont ici
-
PiR
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 25 Feb 2015, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S-SI
Re: Trouver lettre dans chaine
La sous-chaine est lettre par lettre ce que tu veux regarder, donc avec la commande
@Critor :
Ca aurait été ma proposition, mais il n'y a apparemment pas de
(cf http://tibasicdev.wikidot.com/strings)
sub
: http://tibasicdev.wikidot.com/sub@Critor :
Ca aurait été ma proposition, mais il n'y a apparemment pas de
ord()
ou chr()
sur z80 (cf http://tibasicdev.wikidot.com/strings)
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14727
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: Trouver lettre dans chaine
Autre façon de faire, ...plus "tordue" héhé ! :
On n'utilise plus de chaîne mais uniquement des variables, en l'occurence les 26 lettres de l'alphabet (rien que ça!)
avec A=10, B=11 ....jusqu'à Z=35
(je me base sur le fait que A en hexadécimal vaut 10 dans notre base ordinaire)
On n'utilise plus de chaîne mais uniquement des variables, en l'occurence les 26 lettres de l'alphabet (rien que ça!)
avec A=10, B=11 ....jusqu'à Z=35
(je me base sur le fait que A en hexadécimal vaut 10 dans notre base ordinaire)
- Code: Select all
11→B
19→J
23→N
24→O
27→R
30→U
"BONJOUR→Str1
0
For(θ,1,length(Str1
max(Ans,expr(sub(Str1,θ,1
End
Ans+1→θ ; BASE
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Trouver lettre dans chaine
Merci, je vais quand même garder la méthode avec les chaines par contre je ne sais pas comment dire que le C est après le B dans l'alphabet
Mes programmes (tous en basic) sont ici
-
PiR
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 25 Feb 2015, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Terminale S-SI
Re: Trouver lettre dans chaine
Comme l'ont mentionné Adriweb & Critor,
on le saura grâce à sa position dans cette chaîne:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Et c'est l'instruction inString(chaîne,sous-chaîne,position d'où démarrera la recherche )
qui va faire le boulot (à noter qu'on peut se passer du dernier paramètre si l'on veut scruter depuis le début de la chaîne)
Ex:
nous donnera la valeur 13
Et l'on aura recours à l'instruction sub(chaîne,position,longueur ) pour extirper un caractère (ou plus) d'une chaîne
Ex:
nous donnera le caractère L
on le saura grâce à sa position dans cette chaîne:
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Et c'est l'instruction inString(chaîne,sous-chaîne,position d'où démarrera la recherche )
qui va faire le boulot (à noter qu'on peut se passer du dernier paramètre si l'on veut scruter depuis le début de la chaîne)
Ex:
- Code: Select all
inString("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ","C"
nous donnera la valeur 13
Et l'on aura recours à l'instruction sub(chaîne,position,longueur ) pour extirper un caractère (ou plus) d'une chaîne
Ex:
- Code: Select all
sub("SAPERLIPOPETTE",6,1
nous donnera le caractère L
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
27 posts
• Page 1 of 3 • 1, 2, 3
Who is online
Users browsing this forum: No registered users and 4 guests