Second exemple de CCF d’algo appliquée pour le BTS SIO :
CCF algorithmique appliquée BTS SIO
======= Partie sans machine =======
Voici un algorithme écrit en Python :
[pastacode lang= »python » manual= »import%20os%0A%0Adef%20ligne_suivante(ligne)%3A%0A%20%20%20%20suivante%20%3D%20%5B%5D%0A%20%20%20%20chiffre_actuel%20%3D%20ligne%5B0%5D%0A%20%20%20%20compteur%20%3D%200%0A%20%20%20%20for%20chiffre%20in%20ligne%3A%0A%20%20%20%20%20%20%20%20if%20chiffre%20%3D%3D%20chiffre_actuel%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20compteur%20%2B%3D%201%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20suivante.append(str(compteur))%0A%20%20%20%20%20%20%20%20%20%20%20%20suivante.append(chiffre_actuel)%0A%20%20%20%20%20%20%20%20%20%20%20%20chiffre_actuel%20%3D%20chiffre%0A%20%20%20%20%20%20%20%20%20%20%20%20compteur%20%3D%201%0A%20%20%20%20suivante.append(str(compteur))%0A%20%20%20%20suivante.append(chiffre_actuel)%0A%20%20%20%20return%20%22%22.join(suivante)%0A%20%0A%20%0Adef%20conway(n)%3A%0A%20%20%20%20%22Iterateur%20sur%20les%20n%20premiers%20termes%20de%20la%20suite%22%0A%20%20%20%20ligne%20%3D%20%221%22%0A%20%20%20%20for%20i%20in%20range(n)%3A%0A%20%20%20%20%20%20%20%20yield%20ligne%0A%20%20%20%20%20%20%20%20ligne%20%3D%20ligne_suivante(ligne)%0A%20%20%20%20%20%20%20%20%20%0An%3D6%0A%0Afor%20i%2Cz%20in%20enumerate(conway(n))%3A%0A%20%20%20%20if%20i%3D%3Dn-1%3A%0A%20%20%20%20%20%20%20%20print(z)%0A%0Aos.system(%22pause%22) » message= » » highlight= » » provider= »manual »/]
1/ Que fait-on aux lignes 3 et 20 de cet algorithme ?
2/ Quel est le type de la variable « suivante » ?
3/ De façon générale, que fait-on aux lignes 11, 12, 15 et 16 ?
4/ En exécutant cet algorithme pour n = 1 ; n = 2 ; n = 3 ; … et en affichant les résultats ligne par ligne, on obtient :
1
11
21
1211
……………
312211
13112221
…………………
Cette suite est appelée suite de Conway, connue initialement sous le nom de « suite audioactive ».
Compléter les lignes manquantes.
======= Partie sans machine =======
La suite de Fibonacci, doit son nom au mathématicien Leonardo Fibonacci qui, dans un problème récréatif posé dans l’ouvrage Liber abaci publié en 1202, décrit la croissance d’une population de lapins.
Il vient à la fin de ce problème que la suite de Fibonacci est la suivante :
0 ; 1 ; 1 ; 2 ; 3 ; 5 ; 8 ; 13 ; 21 ; 34 ; …
La suite de Fibonacci est une suite d’entiers dans laquelle chaque terme est la somme des deux termes qui le précèdent. Elle commence par les termes 0 et 1.
On souhaite programmer un algorithme en Python affichant tous les termes de la suite de Fibonacci, jusqu’à un certain rang n, entré par l’utilisateur. Pour simplifier l’exercice, le n entré par l’utilisateur doit être un multiple de 3 : 3 termes, 6 termes, 9 termes, …
Voici le début d’un script possible pour afficher les n premiers termes de la suite de Fibonacci, avec n un multiple de 3 :
1/ Que signifie la condition dans la boucle while (ligne 9) ? De quoi s’assure-t-on ?
2/ Recopier ce début de code sur ordinateur. Puis ajoutez la fin du programme permettant d’afficher les n premiers termes de la suite de Fibonacci, n étant un multiple de 3.
Indication : la partie « manquante » du programme est une boucle for. Ajoutez un « os.system(« pause ») » à la fin du programme pour que l’affichage reste à l’écran.
Très intéressant le programme, ça permet aux élèves de découvrir progressivement le programme et son objectif. il faut juste une petite situation pour l’enrichir encore plus.