ENVIRONNEMENT DE RECETTE

Algorithmique et Programmation - STMG

Python

Exercice 1 : Séquence conditionnelle simple - distributeur de banque

Un distributeur automatique de billets ne contient que des billets de \( 5 \) et de \( 20 \) euros. Le client choisit un montant en euros.

Écrire le contenu de la fonction distributeur qui doit renvoyer un entier correspondant aux nombre de billets minimum permettant de distribuer le montant choisi par le client.
Si ce n'est pas possible, elle renvoie une chaîne de caractères contenant un message d'erreur.

Le message d'erreur doit suivre le format suivant : "Impossible de distribuer 33 euros" où 33 est le montant choisi par le client.
Les valeurs en entrée seront forcément des entiers positifs.

La fonction distributeur ne doit pas afficher le résultat avec  print()
{"inputs": [[100], [20], [260], [2], [323], [5], [10], [20], [50], [100], [200], [45], [30]], "initCode": "%{def distributeur(montant):}s\n\t\n\treturn %{'Impossible de distribuer '}s+ + %{' euros'}s", "nbAttemptsLeft": 2, "outputs": [[], [], [], [], [], [], [], [], [], [], [], [], []], "studentCode": ""}

Essais restants : 2

Exercice 2 : Somme de suite géométrique (inspiré par Bac ES Métropole 2015) - Python

On considère l'algorithme ci-dessous :

u = 3600
S = 3600

n = int(input('Rentrez la valeur de n : '))

for i in range(2, n + 1):
    u = 3*u/2
    S = S + u

print(S)

Faire fonctionner l'algorithme précédent pour \( n=5 \) et résumer les résultats obtenus à chaque étape dans le tableau ci-dessous.
{"header_left": ["i", "u", "S"], "data": [["", "2", "?", "?", "?"], ["3600", "?", "?", "?", "?"], ["3600", "?", "?", "?", "?"]]}

Exercice 3 : Boucle non bornée while et taux d'intéret (problème)

On place \( 3700 \) € sur un compte qui est rémunéré à \( 4 \)% l’année. Il s'agit d'un compte à intérêts composés.
On souhaite déterminer le nombre d’années qu’il faut attendre afin que notre épargne devienne supérieure ou égale à \( 6700 \)€.

Exemple :
Prenons un capital de 100 € à un taux annuel de 5% d'intérêts composés sur 2 ans.
Le capital sera de : 100 + 100 × (5 / 100) = 105 € à la fin de la première année.
Puis : 105 + 105 × (5 / 100) = 110,25 € à la fin de la deuxième année.

Compléter le script suivant afin de répondre à un problème de ce type en prenant soin d'utiliser les variables proposées dans la définition de la fonction.
{"initCode": "%{def epargne(init, seuil, remuneration):}s\n\t# remuneration est un pourcentage, compris entre 0 et 100.\n\t%{u = }s\n\t%{nbr_annee = 0}s\n\t%{while}s%{:}s\n\t\t%{u = }s\n\t\t%{nbr_annee = }s\n\t%{return }s", "outputs": [[], [], [], [], [], [], [], [], [], []], "inputs": [[3700, 6700, 4], [3600, 7400, 19], [2500, 5100, 12], [3800, 6700, 8], [2200, 6100, 12], [3500, 7400, 13], [3500, 7200, 9], [3200, 6400, 6], [3400, 6800, 6], [3100, 5200, 19]], "studentCode": "", "nbAttemptsLeft": 2}

Essais restants : 2

En faisant appel à la fonction epargne(3700, 6700, 4) , déterminer le résultat de la question posée.

Exercice 4 : Boucle et condition - Lancers de dés

Le programme trouver_probabilite(n) calcule la probabilité d'obtenir le nombre entier naturel non nul n en additionnant le résultat d'un lancer de dé à \( 4 \) faces avec celui d'un dé à \( 6 \) faces.

Écrire le contenu de la fonction trouver_probabilite

La fonction doit renvoyer un nombre "rationnel".
Par exemple, si la fonction doit renvoyer \( \dfrac{4}{3} \) on utilisera  return 4/3
{"nbAttemptsLeft": 2, "initCode": "%{def trouver_probabilite(n):}s", "outputs": [[], [], [], [], [], [], [], [], [], [], [], []], "inputs": [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]], "studentCode": ""}

Essais restants : 2

Exercice 5 : Etapes avec boucle Tant que (reste de division) - Python

On considère l'algorithme ci-dessous :

a = int(input('Rentrez la valeur de a : '))
b = int(input('Rentrez la valeur de b : '))

while a > b:
    a = a - b

print(a)

Faire fonctionner l'algorithme précédent pour \(a=26\), \(b=13\) et résumer les résultats obtenus à chaque étape dans le tableau ci-dessous.

{"header_top": ["a", "b", "a"], "data": [["26", "13", "?"]]}
False