Convertir et tester les types
Le texte '12' et le nombre 12 se ressemblent, mais pour CoddyRun ce sont deux choses différentes : l'un se colle, l'autre se calcule. Savoir passer de l'un à l'autre évite bien des surprises.
Texte ou nombre ?
codePostal est un texte vaut '75'
quantite est un nombre vaut 75
affiche codePostal + 1 // 751 : on colle
affiche quantite + 1 // 76 : on additionne
affiche type_de(codePostal) // texte
affiche type_de(quantite) // nombre
type_de donne le type d'une valeur. C'est le premier réflexe quand un calcul donne un résultat bizarre.
Convertir
texteTape est un texte vaut '12'
valeur est un nombre
valeur vaut convertir_nombre(texteTape)
affiche valeur * 2 // 24
total est un nombre vaut 7.5
message est un texte
message vaut convertir_texte(total)
affiche 'Longueur du texte : ' + longueur(message) // 3
convertir_nombre(texte) transforme un texte en nombre, pour pouvoir calculer ;convertir_texte(valeur) transforme une valeur en texte, pour utiliser les fonctions de texte.
Le nombre 7.5 devient le texte 7,5 : à l'affichage, CoddyRun écrit les décimales avec une virgule. Ce texte compte bien 3 caractères.
convertir_nombre('douze') provoque une erreur : le texte ne représente pas un nombre. Il faut vérifier avant de convertir.
Tester avant de convertir
reponse est un texte
demande 'Combien de billes as-tu ? ' dans reponse
si est_nombre(reponse) alors
affiche 'Avec 5 de plus, tu en aurais ' + (convertir_nombre(reponse) + 5) + '.'
sinon
affiche '« ' + reponse + ' » n’est pas un nombre.'
fin si
est_nombre répond vrai si la valeur est un nombre, ou un texte qui représente un nombre. Il existe aussi est_texte et est_booleen.
Question : Que répond est_nombre('3.5') ? — vrai. Le texte '3.5' représente bien un nombre : est_nombre répond vrai, et convertir_nombre pourra le transformer.
Choisir entre deux valeurs avec sialors
sialors(condition, valeurSiVrai, valeurSiFaux) choisit une valeur selon une condition. C'est un si ... sinon qui tient sur une ligne :
age est un nombre vaut 15
statut est un texte
statut vaut sialors(age >= 18, 'majeur', 'mineur')
affiche 'Tu es ' + statut + '.'
Un usage très courant : accorder un mot au pluriel.
pour i de 0 à 2
affiche i + ' point' + sialors(i > 1, 's', '')
fin pour
Ce programme affiche 0 point, 1 point et 2 points.
Vide ou pas ?
est_vide répond vrai pour un texte sans caractère ou un tableau sans élément :
prenom est un texte
demande 'Ton prénom ? ' dans prenom
si est_vide(prenom) alors
affiche 'Tu n’as rien écrit !'
sinon
affiche 'Bonjour ' + majuscule_initiale(prenom) + ' !'
fin si
En résumé
type_de(x) donne le type d'une valeur.convertir_nombre et convertir_texte passent d'un type à l'autre.est_nombre, est_texte, est_booleen, est_vide testent une valeur.sialors(condition, a, b) renvoie a si la condition est vraie, sinon b.