Nous travaillons avec la société Google et avec des technologies comme les cookies pour stocker et/ou accéder à des informations personnelles non sensibles stockées sur votre terminal (identifiants uniques, …), que nous traitons afin de réaliser des statistiques d'usage du site, personnaliser les publicités et le contenu et en mesurer les performances, produire des données d’audience, développer et améliorer les produits.

Acceptez-vous les cookies déposés pour la publicité et les mesures d'audience ?

Choisir

Vous pouvez supprimer ce bandeau si vous acceptez les cookies pour la publicité. Nous essayons de limiter au maximum le nombre de publicités sur le site et nous estimons que tout travail mérite salaire.

Sujet U22 algo appliquée BTS SIO

Syracuse

Partie A (sans accès à l’ordinateur 30 minutes)

Interprétation d’algorithme - On propose l’algorithme suivant :

Numéro de ligne	Algorithme A
0	Saisir N
1	u ← N
2	i ← 0
3
4	Tant que ( i< 5) faire :
5	Début de tant que
6	                 Afficher u
7	                 Si (u%2==0) faire :
8	                                    Début de si
9	                                    u ← u/2
10	                                    Fin de si
11
12
13
14
15	                ……………………
16	Fin de tant que

Travail à faire

  • a) Lister les variables utilisées et leur type.
  • b) Quelle instruction manque-t-il à la ligne 15 ? Que se passe-t-il si on ne la rajoute pas ?
  • c) Que signifie la condition (u%2==0) à la ligne 7 ?
  • d) L’appliquer pour N=12. On détaillera les valeurs prises par les différentes variables au fur et à mesure.

Ecriture d’algorithme :

En mathématiques, on appelle suite de Syracuse une suite d'entiers naturels définie de la manière suivante :

  • On part d'un nombre entier plus grand que zéro
  • s'il est pair, on le divise par 2
  • s'il est impair, on le multiplie par 3 et on ajoute 1

On souhaite modifier l’algorithme précédent afin de calculer les termes de la suite de Syracuse d’un nombre saisi au clavier.

  • a) Complétez l’algorithme en ajoutant les lignes d’instructions nécessaires afin qu’il calcule les 20 premiers termes de la suite de Syracuse du nombre N saisi au clavier.
  • b) L’appliquer à N=12. On donnera les valeurs prises successivement par u.

Quelque soit le nombre de départ N choisi, on admettra qu’au bout d’un certain nombre d’itérations, on obtient toujours le cycle : 1, 4, 2, 1, 4, 2, 1, 4, 2… On appelle temps de vol, le nombre d’itérations nécessaires pour obtenir le premier 1.

Travail à faire sur l’annexe 2 :

3-Ecrire un algorithme B qui prend un nombre N en entrée et affiche son temps de vol.

Partie B, sur ordinateur :

  • 5- Implémenter l’algorithme A modifié à la question 2-a) en langage Python. On enregistrera son fichier sous le nom : votrenomsyracuse.py
  • 6- Implémenter l’algorithme B. On enregistrera son fichier sous le nom : votrenomsyracusevol.py
Pour rappel vous pouvez utiliser le langage de votre choix et pas seulement Python.

Si vous êtes intéressé par la correction, vous pouvez en proposer une dans le langage de votre choix avec le système de commentaire (pas besoin de répondre à toutes les questions). Les autres visiteurs du site pourront corriger les erreurs pour arriver à une version finale satisfaisante.