La boîte à outils des tableaux
Tu sais créer et parcourir un tableau. CoddyRun fournit aussi des fonctions toutes prêtes pour les opérations les plus courantes. Autant les connaître !
Calculer sur un tableau de nombres
notes est un tableau vaut [12, 15, 9, 18, 11]
affiche 'Nombre de notes : ' + longueur(notes)
affiche 'Total : ' + somme(notes) // 65
affiche 'Moyenne : ' + moyenne(notes) // 13
affiche 'Médiane : ' + mediane(notes) // 12
La médiane est la valeur du milieu quand les notes sont rangées dans l'ordre (9, 11, 12, 15, 18) : il y a autant de notes au-dessous qu'au-dessus.
Premier, dernier, chercher
podium est un tableau vaut ['Léa', 'Tom', 'Sam']
affiche premier(podium) // Léa
affiche dernier(podium) // Sam
affiche index_de(podium, 'Tom') // 1
affiche index_de(podium, 'Zoé') // -1
index_de renvoie l'index de la valeur cherchée, ou -1 si elle n'est pas dans le tableau. C'est le test le plus simple pour savoir si une valeur est présente :
invites est un tableau vaut ['Léa', 'Tom', 'Sam']
prenom est un texte
demande 'Ton prénom ? ' dans prenom
si index_de(invites, prenom) >= 0 alors
affiche 'Bienvenue à la fête, ' + prenom + ' !'
sinon
affiche 'Désolé, tu n’es pas sur la liste.'
fin si
Question : Que renvoie index_de(['a', 'b', 'c'], 'c') ? — 2. Les index commencent à 0 : 'a' est à l'index 0, 'b' à 1 et 'c' à 2.
Trier
trier range le tableau dans l'ordre croissant. Avec 'desc', l'ordre est décroissant :
scores est un tableau vaut [42, 87, 15, 93, 61]
trier(scores)
affiche joindre(scores, ' ') // 15 42 61 87 93
trier(scores, 'desc')
affiche joindre(scores, ' ') // 93 87 61 42 15
affiche 'Meilleur score : ' + premier(scores)
Les textes sont triés par ordre alphabétique.
trier modifie le tableau lui-même : l'ordre d'origine est perdu. melanger fait de même.
Retirer les doublons
unique renvoie un nouveau tableau, sans les valeurs en double. Le tableau de départ ne change pas :
votes est un tableau vaut ['bleu', 'rouge', 'bleu', 'vert', 'rouge', 'bleu']
couleursChoisies est un tableau
couleursChoisies vaut unique(votes)
affiche joindre(couleursChoisies, ', ') // bleu, rouge, vert
affiche longueur(votes) + ' votes pour ' + longueur(couleursChoisies) + ' couleurs'
Fabriquer et assembler
// Tous les nombres de 1 à 10
nombres est un tableau
nombres vaut intervalle(1, 10)
affiche joindre(nombres, ' ')
// Assembler deux tableaux
filles est un tableau vaut ['Léa', 'Inès']
garcons est un tableau vaut ['Tom', 'Sam']
equipe est un tableau
equipe vaut fusionner(filles, garcons)
affiche joindre(equipe, ', ') // Léa, Inès, Tom, Sam
intervalle(début, fin) fabrique le tableau des entiers de début à fin ;fusionner(t1, t2) met deux tableaux bout à bout ;joindre(tableau, séparateur) transforme un tableau en un seul texte, parfait pour l'afficher.
Un classement complet
temps est un tableau vaut [58, 49, 63, 51, 49]
trier(temps)
affiche 'Classement de la course (en secondes) :'
pour i de 0 à longueur(temps) - 1
affiche (i + 1) + '. ' + temps[i] + ' s'
fin pour
affiche 'Écart entre le premier et le dernier : ' + (dernier(temps) - premier(temps)) + ' s'
En résumé
somme, moyenne, mediane calculent sur un tableau de nombres.premier, dernier, index_de (ou -1 si la valeur est absente).trier(t) et trier(t, 'desc') modifient le tableau ; melanger(t) aussi.unique(t) et fusionner(t1, t2) renvoient un nouveau tableau.intervalle(début, fin) fabrique une suite de nombres ; joindre affiche un tableau.