Outils pour utilisateurs

Outils du site


liste_renquin

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

liste_renquin [2018/12/21 15:25] (Version actuelle)
195.221.62.1 créée
Ligne 1: Ligne 1:
 +# Exercices de base sur les Listes
  
 +## Ajouter un élément
 +
 +On peut ajouter un élément à une liste grâce à la commande `Ajouter_a`.  ​
 +La commande `Longueur` retourne le nombre d’éléments de la liste passée en argument
 +
 +(MicroAlg "​ajouter_a"​)
 +(Declarer ma_liste De_type "​liste"​)
 +(Affecter_a ma_liste (Liste))
 +(Afficher ma_liste)
 +
 +(Ajouter_a ma_liste 42)
 +(Afficher ma_liste)
 +(Afficher (Longueur ma_liste))
 +
 +(Ajouter_a ma_liste "​bonjour"​)
 +(Afficher ma_liste)
 +(Afficher (Longueur ma_liste))
 +
 +(Ajouter_a ma_liste Vrai)
 +(Afficher ma_liste)
 +(Afficher (Longueur ma_liste))
 +(/MicroAlg)
 +
 +Vous pouvez faire quelques expériences en modifiant le programme ci-dessus.
 +
 +## Lire un élément
 +
 +On peut accéder à la valeur d’un élément d’une liste grâce à la commande `Nieme`.
 +
 +Cette commande se prononce « énième » (comme « deuxième »,​ « troisième »… mais
 +avec un « n » au début).  ​
 +Attention, on numérote les éléments à partir de 1.
 +
 +(MicroAlg "​nieme"​)
 +(Declarer ma_liste De_type "​liste"​)
 +(Affecter_a ma_liste (Liste "​a"​ "​b"​ "​c"​ "​d"​ "​e"​))
 +(Afficher ma_liste)
 +(Afficher (Nieme ma_liste 1))
 +(Afficher (Nieme ma_liste 5))
 +(/MicroAlg)
 +
 +Même chose, vous pouvez faire quelques expériences en modifiant le programme ci-dessus.
 +
 +## Algo mystère
 +
 +Que fait l’algorithme suivant ?
 +
 +(MicroAlg "​mystere_1"​)
 +(!!! "Algo mystère n°1")
 +(Declarer liste_nombres var_mystere De_type "​liste"​)
 +(Declarer i De_type "​nombre"​)
 +
 +(Affecter_a liste_nombres (Liste -3 1 17 -12 50 -1 0 31 -17 -2 6))
 +(Afficher "Voici une liste de nombres :")
 +(Afficher liste_nombres)
 +
 +(Affecter_a var_mystere (Liste))
 +(Afficher var_mystere)
 +
 +(Affecter_a i 1)
 +(Tant_que (<= i (Longueur liste_nombres))
 + Faire
 +    (Ajouter_a var_mystere (Nieme liste_nombres i))
 +    (Affecter_a i (+ i 1))
 +)
 +(Afficher var_mystere)
 +(!!! "Fin algo mystère n°1")
 +(/MicroAlg)
 +
 +Dès que vous avez trouvé, appelez le professeur sans hurler la réponse.
 +
 +## Algo mystère 2
 +
 +Que fait l’algorithme suivant ?
 +
 +(MicroAlg "​mystere_2"​)
 +(!!! "Algo mystère n°2")
 +(Declarer liste_fruits De_type "​liste"​)
 +(Declarer var_mystere De_type "​texte"​)
 +(Declarer i De_type "​nombre"​)
 +
 +(Affecter_a liste_fruits (Liste "​pomme"​ "​poire"​ "​banane"​ "​kiwi"​))
 +(Afficher "Voici une liste de fruits :")
 +(Afficher liste_fruits)
 +(Affecter_a var_mystere ""​)
 +(Affecter_a i 1)
 +(Tant_que (<= i (Longueur liste_fruits))
 + Faire
 +    (Affecter_a var_mystere (Concatener var_mystere (Nieme liste_fruits i)))
 +    (Affecter_a i (+ i 1))
 +)
 +(Afficher var_mystere)
 +(!!! "Fin algo mystère n°2")
 +(/MicroAlg)
 +
 +Dès que vous avez trouvé, appelez le professeur sans hurler la réponse.
 +
 +Comment le modifier pour qu’il affiche quelque chose de lisible ?
 +
 +## Copie positive
 +
 +Modifier l’algorithme de copie ci-dessous pour que la liste copiée ne
 +contienne que les nombres positif de la  liste originale. ​                                        
 +
 +(MicroAlg "​copie"​)
 +(!!! "Algo copie"​)
 +(Declarer liste_nombres copie De_type "​liste"​)
 +(Declarer i De_type "​nombre"​)
 +
 +(Affecter_a liste_nombres (Liste -3 1 17 -12 50 -1 0 31 -17 -2 6))
 +(Affecter_a copie (Liste))
 +(Afficher copie)
 +(Affecter_a i 1)
 +(Tant_que (<= i (Longueur liste_nombres))
 + Faire
 +    (Ajouter_a copie (Nieme liste_nombres i))
 +    (Affecter_a i (+ i 1))
 +)
 +(Afficher copie)
 +(!!! "Fin algo copie"​)
 +(/MicroAlg)
 +
 +Dès que c’est fait, appelez le professeur.
 +
 +Si vous êtes en avance, essayez d’écrire un algorithme qui crée une copie
 +de la liste originale, mais à l’envers.
 +
 +## Affectation à un endroit précis d’une liste
 +
 +Reprenons la liste du début de ce fichier.
 +
 +On peut modifier la valeur d’un élément grâce à la commande `Affecter_a`
 +(la même que d’habitude) mais avec le mot-clé `En_position`.
 +
 +(MicroAlg "​affectation_positionnelle"​)
 +(Declarer ma_liste De_type "​liste"​)
 +(Affecter_a ma_liste (Liste 42 "​bonjour"​ Vrai))
 +(Afficher ma_liste)
 +(Affecter_a ma_liste "​salut"​ En_position 2)
 +(Afficher ma_liste)
 +(Affecter_a ma_liste 7 En_position 1)
 +(Afficher ma_liste)
 +(/MicroAlg)
 +
 +Remarquez qu’on a remplacé le premier élément (en position 1) par un 7.
 +
 +Dans la fenêtre suivante, écrire un algorithme qui modifie `liste_nombres`
 +de façon à remplacer les nombres négatifs par des zéros.  ​
 +**Attention** :​ il faut *modifier la liste* et non en créer une copie.
 +
 +Dès que c’est fait, appelez le professeur.
 +
 +(MicroAlg "​annuler_negatifs"​)
 +(Declarer liste_nombres De_type "​liste"​)
 +(Declarer i De_type "​nombre"​)
 +
 +(Affecter_a liste_nombres (Liste -3 1 17 -12 50 -1 0 31 -17 -2 6))
 +(Afficher liste_nombres)
 +
 +(Affecter_a i 1)
 +(Tant_que (<= i (Longueur liste_nombres))
 + Faire
 +(Si  (>  0 (Nieme liste_nombres i)) 
 +Alors 
 + 
 +    (Affecter_a liste_nombres 0 En_position ​ i)
 +    )
 +    (Affecter_a i (+ i 1))
 +)
 +
 +(Afficher liste_nombres)
 +(/MicroAlg)
 +
 +## Tirage de dés
 +
 +(MicroAlg "​tirage"​)
 +(!!! "Algo dés")
 +(Initialiser@ 0)
 +(Declarer i De_type "​nombre"​)
 +(Affecter_a i 1)
 +(Tant_que (<= i 60)
 + Faire
 +    (Afficher (Entier@ 1 6))
 +    (Affecter_a i (+ i 1))
 +)
 +(!!! "Fin algo dés")
 +(/MicroAlg)
 +
 +L’algorithme précédent affiche 60 entiers tirés au sort entre
 +1 et 6 compris (comme un dé à 6 faces). On veut compter le nombre
 +de tirages de chaque face, mais plutôt que d’utiliser six compteurs,
 +on va utiliser une liste de six entiers valant tous 0 au départ de l’algo.
 +
 +Modifiez cet algorithme pour qu’il affiche la liste contenant les compteurs
 +à l’issue du tirage des 60 dés.
 +
 +**Indice** :​ utiliser `(Affecter_a compteurs (Liste 0 0 0 0 0 0))`.
 +
 +Vous pouvez maintenant passer à [cette page](profgra:​peda:​listes:​listes_2).
liste_renquin.txt · Dernière modification: 2018/12/21 15:25 par 195.221.62.1