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

Les deux révisions précédentes Révision précédente
liste_renquin [2020/09/25 21:47]
profgra mv liste_renquin -> renquin/listes
— (Version actuelle)
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).