16. L’algorithmique et la programmation - 2nde

Python

Exercice 1 : Initiation - Trois variables, une lecture, deux calculs enchainées - Python

On considère l'algorithme ci-dessous :

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

a = 5*N
b = a + 4

print(b)

Si l'utilisateur entre la valeur \(N=3\), quelle est la valeur affichée en sortie ?

Exercice 2 : Initiation - Quatre variables, une lecture, deux calculs enchainées - Python

On considère l'algorithme ci-dessous :

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

a = x + 9
b = 5*x
c = a*b

print(c)

Si l'utilisateur entre la valeur \(x=5\), quelle est la valeur affichée en sortie ?

Exercice 3 : Initiation - Trois variables, deux lectures, un calcul - Python

On considère l'algorithme ci-dessous :

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

N = 4*a + b

print(N)

Si l'utilisateur entre les valeurs \(a=7\) et \(b=9\), quelle est la valeur affichée en sortie ?

Exercice 4 : Etapes avec Si/Sinon - Python

On considère l'algorithme ci-dessous :

a = float(input('Rentrez la valeur de a : '))

b = 9*a
c = a - 3
a = 3*a
if b > c:
    b = a - c
else:
    b = a + b

print(b)

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

{"data": [["4", "?", "?", "?", "?"]], "header_top": ["a", "b", "c", "a", "b"]}

Exercice 5 : Resultat de test Si/Sinon - Python

On considère l'algorithme ci-dessous :

a = float(input('Rentrez la valeur de a : '))

b = a + 6
c = a - 1
a = 6*a
if b > c:
    b = a + c
else:
    b = a + b

print(b)

Si l'utilisateur entre la valeur \(a=1\), quelle est la valeur affichée en sortie ?

Exercice 6 : 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=30\), \(b=13\) et résumer les résultats obtenus à chaque étape dans le tableau ci-dessous.

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

Exercice 7 : Resultat de 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)

Si l'utilisateur entre les valeurs \(a=42\) et \(b=12\), quelle est la valeur affichée en sortie ?

Exercice 8 : Etapes avec boucle Pour - Python

On considère l'algorithme ci-dessous :

S = 0

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

for i in range(0, N + 1):
    S = S + 2*i

print(S)

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

{"header_left": ["i", "S"], "data": [["", "?", "?", "?", "?", "?"], ["0", "?", "?", "?", "?", "?"]]}

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

On considère l'algorithme ci-dessous :

u = 7500
S = 7500

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

for i in range(2, n + 1):
    u = 8*u/5
    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", "?", "?", "?"], ["7500", "?", "?", "?", "?"], ["7500", "?", "?", "?", "?"]]}

Exercice 10 : Resultat de boucle Pour - Python

On considère l'algorithme ci-dessous :

S = 0

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

for i in range(1, N + 1):
    S = S - i + 2

print(S)

Si l'utilisateur entre la valeur \(N=4\), quelle est la valeur affichée en sortie ?

Exercice 11 : Initiation - Priorités et expressions littérale

On considère l'algorithme ci-dessous :
a = float(input('Rentrez la valeur de a : '))

a = a + 4
a = 7*a
a = a - 4
a = a/4
afficher_le_resultat()

Si l'on note \(x\) le nombre fourni par l'utilisateur, donner l'expression du calcul réalisé par cet algorithme.

Exercice 12 : Initiation - Test simple et géométrie - Python

On considère l'algorithme ci-dessous :
tracer_une_droite_d()
choisir_une_forme_geometrique_au_hasard()
if la_forme_choisie_est_un_triangle():
    tracer_un_triangle_abc()
else:
    tracer_un_rectangle_abcd()
tracer_le_symetrique_de_la_forme_par_rapport_a_la_droite_d()

Trouver parmi les figures suivantes, celles qui ont pu être tracées avec cet algorithme.
  • 1.
  • 2.
  • 3.
  • 4.

Exercice 13 : Dichotomie vers racine de polynôme 2nd degré (inspiré par Bac S Asie 2015) - Python

On considère l'algorithme ci-dessous :

import f

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

while -a + b > 0.3:
    x = (a + b)/2
    if f(a)*f(x) > 0:
        a = x
    else:
        b = x

print((a + b)/2)

Si \(f(x) = -10 + 3x^{2}\) et que l'utilisateur entre les valeurs \(a=1\) et \(b=2\), quelle est la valeur affichée en sortie ?

Exercice 14 : PGCD - Algorithme d'Euclide (inspiré par Bac S Antilles-Guyane 2015 pour spé) - Python

Pour deux entiers naturels non nuls \(h\) et \(w\), on note \(\operatorname{r}{\left (h,w \right )}\) le reste dans la division euclidienne de \(h\) et \(w\). On considère l'algorithme suivant :

import r

h = int(input('Rentrez la valeur de h : '))
w = int(input('Rentrez la valeur de w : '))

y = r(h, w)
while y != 0:
    h = w
    w = y
    y = r(h, w)
print(w)
if ???:
    print('h et w sont premiers entre eux')
else:
    print('h et w ne sont pas premiers entre eux')

Faire fonctionner cet algorithme avec \(h=44\) et \(w=13\) en indiquant les valeurs de \(h\), \(w\) et \(y\) à chaque étape.

{"header_left": ["h", "w", "y"], "data": [["44", "?", "?", "?", "?"], ["13", "?", "?", "?", "?"], ["?", "?", "?", "?", "?"]]}

Cet algorithme donne en sortie le PGCD des entiers naturels non nuls \(h\) et \(w\). Par quelle expression doit on compléter la condition ??? pour qu’il indique si deux entiers naturels non nuls \(h\) et \(w\) sont premiers entre eux ou non.

Exercice 15 : Identifier les lignes à erreur de l'algorithme 1 - Python

On écrit un algorithme Python pour obtenir les racines d’un polynôme du second degré de la forme \( ax^2+bx+c \).
Cependant, l'algorithme ne renvoie pas le résultat souhaité, il doit comporter des erreurs.

Pour un nombre réel positif k, on note math.sqrt(k) la racine carrée de k.
01 |   import math
02 |   a = float(input('Rentrez la valeur de a : '))
03 |   b = float(input('Rentrez la valeur de b : '))
04 |   float(input('Rentrez la valeur de c : '))
05 |   delta = b + 2 - 4 * a
06 |   if delta < 0:
07 |       result = [(-b - math.sqrt(delta)) / (2 * a), (-b + math.sqrt(delta)) / (2 * a)]
08 |   elif delta == 0:
09 |       result = -b / (2 * a)
10 |   else:
11 |       result = None
12 |   print(result)

Identifier la ou les lignes comportant des erreurs :

Exercice 16 : 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é à \( 6 \) faces avec celui d'un dé à \( 20 \) 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
{"initCode": "%{def trouver_probabilite(n):}s", "inputs": [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28]], "nbAttemptsLeft": 2, "studentCode": "", "outputs": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]}
Suivant Valider

Essais restants : 2

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

Un distributeur automatique de billets ne contient que des billets de \( 100 \) et de \( 200 \) 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": [[1000], [200], [2600], [2], [323], [5], [10], [20], [50], [100], [200], [500]], "studentCode": "", "outputs": [[], [], [], [], [], [], [], [], [], [], [], []], "initCode": "%{def distributeur(montant):}s\n\t\n\treturn %{'Impossible de distribuer '}s+ + %{' euros'}s", "nbAttemptsLeft": 2}
Suivant Valider

Essais restants : 2

Exercice 18 : Question de cours 1 : Python

En Python, comment s’appelle la boucle permettant d'exécuter une suite d'instructions un nombre de fois défini ?
Fix

Bonjour,

Tu rencontres un problème technique sur un exercice ?
Tu as remarqué un bug ?
C'est ici qu'il faut le signaler pour que nous puissions t'aider.


Merci d’adopter un langage poli. Sache que ton enseignant a aussi accès à tous les messages que tu nous envoies.


FAQ
AIDE TECHNIQUE