π
<-
Chat plein-écran
[^]

Trouver lettre dans chaine

Trouver lettre dans chaine

Message non lude PiR » 25 Fév 2015, 18:35

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)
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Trouver lettre dans chaine

Message non lude Adriweb » 25 Fév 2015, 18:42

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14670
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Trouver lettre dans chaine

Message non lude PiR » 25 Fév 2015, 18:43

Ah oui, je n'y avais pas pensé merci :)
Dernière édition par PiR le 25 Fév 2015, 18:53, édité 1 fois.
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Trouver lettre dans chaine

Message non lude Adriweb » 25 Fév 2015, 18:44

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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14670
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Trouver lettre dans chaine

Message non lude critor » 25 Fév 2015, 18:49

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('.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 45%
 
Messages: 41669
Images: 15208
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Trouver lettre dans chaine

Message non lude PiR » 25 Fév 2015, 18:56

Super merci
Dernière édition par PiR le 25 Fév 2015, 18:59, édité 1 fois.
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Trouver lettre dans chaine

Message non lude Adriweb » 25 Fév 2015, 18:57

La sous-chaine est lettre par lettre ce que tu veux regarder, donc avec la commande 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
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 78.4%
 
Messages: 14670
Images: 1118
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Trouver lettre dans chaine

Message non lude grosged » 25 Fév 2015, 22:21

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)
Code: Tout sélectionner
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
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Trouver lettre dans chaine

Message non lude PiR » 25 Fév 2015, 22:58

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
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Trouver lettre dans chaine

Message non lude grosged » 26 Fév 2015, 08:30

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:
Code: Tout sélectionner
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: Tout sélectionner
sub("SAPERLIPOPETTE",6,1

nous donnera le caractère L
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1438 utilisateurs:
>1415 invités
>18 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)