Algorithmes et programmes : corrigés des exercices de maths en 2de.

Exercice 1 : programme avec le langage Python
a) La variable \( x \) est de type entier (int).

b) Pour les valeurs fournies de \( x \) :

– Si \( x = 3 \) :
\[
y = 4 \times x = 4 \times 3 = 12
\]
\[
y = y + 1 = 12 + 1 = 13
\]
\[
y = y \times 2 = 13 \times 2 = 26
\]
Donc, pour \( x = 3 \), \( y = 26 \).

– Si \( x = -1 \) :
\[
y = 4 \times x = 4 \times (-1) = -4
\]
\[
y = y + 1 = -4 + 1 = -3
\]
\[
y = y \times 2 = -3 \times 2 = -6
\]
Donc, pour \( x = -1 \), \( y = -6 \).

– Si \( x = 11 \) :
\[
y = 4 \times x = 4 \times 11 = 44
\]
\[
y = y + 1 = 44 + 1 = 45
\]
\[
y = y \times 2 = 45 \times 2 = 90
\]
Donc, pour \( x = 11 \), \( y = 90 \).

c) Le programme définit une fonction \( f : x \mapsto y \). On a :

\[
y = 4x + 1
\]
\[
y = (4x + 1) \times 2 = 8x + 2
\]

Ainsi, la fonction \( f \) est définie par :

\[
f(x) = 8x + 2
\]

Exercice 2 : décrire le rôle et fonctionnement de l’algorithme
Corrigé de l’exercice :

1. \[\]Lgr\[\] \( \text{(C)} \) donne pour résultat le nombre de caractères de la chaîne C.
\[ \text{Lgr}(\text{« algorithme »}) = 10 \]

2. \[\]Sch\[\] \((C, a, b)\) donne pour résultat la sous-chaîne extraite de C à partir du caractère \(a\) ayant \(b\) caractères.
\[ \text{Sch}(\text{« informatique »}, 3, 6) = \text{« format »} \]

Maintenant, décrivons l’algorithme :

1. Saisir une chaîne de caractères non vide \( C \).
2. Affecter à \( \ell \) la valeur de la longueur de \( C \), c’est-à-dire \( \ell = \text{Lgr}(C) \).
3. Affecter à \( C’ \) la sous-chaîne de \( C \) commençant au premier caractère et ayant \( \ell – 1 \) caractères :
\[ C’ = \text{Sch}(C, 1, \ell – 1) \]
4. Afficher \( C’ \).

Le rôle de cet algorithme est donc de supprimer le dernier caractère de la chaîne \( C \) saisie par l’utilisateur et d’afficher la chaîne résultante.

Exercice 3 : programme et magasin de reprographie
1. {Compléter les lignes 1 et 2 de ce programme.}

« `python
print(« Entrer N : »)
N = int(input())
if N <= 50:
Prix = N * 0.15
else:
Prix = 50 * 0.15 + (N – 50) * 0.10
print(« Prix = », Prix)
« `

2. {Saisir le programme à l’ordinateur.}

Pour saisir ce programme, vous pouvez utiliser un éditeur de texte comme Notepad++ ou un environnement de développement intégré (IDE) comme PyCharm, puis l’exécuter en utilisant l’interpréteur Python.

3. {Contrôler son fonctionnement à l’aide d’exemples.}

Nous allons vérifier le programme avec quelques exemples.

\[\]Exemple 1 : 30 photocopies\[\]

« `python
Entrer N :
30
Prix = 4.5
« `

Explication :
\( 30 \times 0.15 = 4.5 \)

\[\]Exemple 2 : 50 photocopies\[\]

« `python
Entrer N :
50
Prix = 7.5
« `

Explication :
\( 50 \times 0.15 = 7.5 \)

\[\]Exemple 3 : 75 photocopies\[\]

« `python
Entrer N :
75
Prix = 10.0
« `

Explication :
\( 50 \times 0.15 + (75 – 50) \times 0.10 = 7.5 + 2.5 = 10.0 \)

Ces exemples montrent que le programme calcule correctement le prix total en fonction du nombre de photocopies demandées.

Exercice 4 : algorithme qui affiche la distance
### Correction de l’Exercice

\[\]Partie a)\[\]

Le temps total \( T \) mis par Louise pour parcourir les 7 km est décomposé en deux parties :
– \( t_1 \) est le temps pour parcourir les 5 premiers kilomètres à une vitesse de 15 km/h.
– \( t_2 \) est le temps pour parcourir les 2 kilomètres restants à une vitesse de 12 km/h.

Calculons \( t_1 \) :
\[
t_1 = \frac{5}{15} = \frac{1}{3} \text{ heures} = 20 \text{ minutes}
\]

Calculons \( t_2 \) :
\[
t_2 = \frac{2}{12} = \frac{1}{6} \text{ heures} = 10 \text{ minutes}
\]

Le temps total \( T \) est donc :
\[
T = t_1 + t_2 = 20 \text{ minutes} + 10 \text{ minutes} = 30 \text{ minutes}
\]

Donc, Louise met 30 minutes pour parcourir les 7 km.

\[\]Partie b)\[\]

Lorsqu’on introduit \( t \) en minutes, nous devons noter que :
– Pour \( 0 \leq\, t \leq\, 20 \), la vitesse est de 15 km/h.
– Pour \( 20 < t \leq\, 30 \), la vitesse est de 12 km/h.

Pour les 5 premiers kilomètres, en vitesse de 15 km/h, la distance \( d(t) \) est donnée par :
\[
d(t) = ( \frac{t}{60} ) \times 15 \quad \text{pour } 0 \leq\, t \leq\, 20
\]
ce qui se simplifie en :
\[
d(t) = \frac{15t}{60} = \frac{t}{4} \quad \text{pour } 0 \leq\, t \leq\, 20
\]

Pour les 2 derniers kilomètres avec une vitesse de 12 km/h, la distance totale parcourue jusqu’à \( t \) est :
\[
d(t) = 5 + ( \frac{t – 20}{60} ) \times 12 \quad \text{pour } 20 < t \leq\, 30
\]
ce qui se simplifie en :
\[
d(t) = 5 + \frac{12(t – 20)}{60} = 5 + \frac{t – 20}{5} = 5 + \frac{t}{5} – 4 = 1 + \frac{t}{5} \quad \text{pour } 20 < t \leq\, 30
\]

L’algorithme pour calculer et afficher \( d(t) \) est donné ci-dessous :

« `python
def distance_parcourue(t):
# Vérification pour les conditions données
if 0 <= t <= 20:
return t / 4
elif 20 < t <= 30:
return 1 + t / 5
else:
return None # Si t est en dehors de l’intervalle permis

# Exemple d’utilisation de la fonction
t = int(input(« Entrez le temps en minutes: « ))
d = distance_parcourue(t)
if d is not None:
print(f »La distance parcourue par Louise est de {d:.2f} km. »)
else:
print(« Le temps fourni n’est pas valide. »)
« `

### Fin de la correction

Exercice 5 : simuler 100 lancers avec Python
\[\]Correction de l’exercice :\[\]

a) Expliquer le rôle de chacune des variables du programme.

– `n = 0`: Cette ligne initialise le compteur `n` qui va servir à compter le nombre de fois qu’un « Pile » est obtenu (c’est-à-dire quand `x` est inférieur ou égal à 0.5).
– `for i in range(1, 101)`: Cette boucle `for` permet d’exécuter le corps de la boucle 100 fois (de 1 à 100 inclus). Chaque itération de la boucle correspond à un lancer de pièce.
– `x = random()`: Cette ligne génère un nombre aléatoire `x` entre 0 et 1 grâce à la fonction `random()` du module `random`. Ce nombre aléatoire représente le résultat d’un lancer de pièce, où une valeur inférieure ou égale à 0.5 pourrait représenter « Pile » et une valeur supérieure à 0.5 représenterait « Face ».
– `if x <= 0.5`: Cette condition vérifie si le résultat du lancer de pièce est « Pile » (x ≤ 0.5).
– `n = n + 1`: Si la condition précédente est vraie (x ≤ 0.5), alors le compteur `n` est incrémenté de 1, indiquant qu’un « Pile » a été obtenu.
– `print(« n = », n)`: À la fin de la boucle, cette ligne affiche le nombre total de « Pile » obtenus après 100 lancers.

b) Suzy souhaite effectuer \( M \) fois la simulation. Comment doit-elle modifier son programme ?

Pour effectuer \( M \) fois la simulation, Suzy peut encapsuler le code original dans une nouvelle boucle qui s’exécute \( M \) fois. Voici le nouveau programme :

« ` python
from random import random

def simulation():
n = 0
for i in range(1, 101):
# pour i allant de 1 à 100
x = random()
if x <= 0.5:
n = n + 1
return n

M = 10 # Exemple: pour effectuer la simulation 10 fois
results = []

for _ in range(M):
result = simulation()
results.append(result)

print(« Résultats des simulations: », results)
« `

Dans ce programme :
– `simulation()`: Une fonction qui encapsule le code original et retourne le nombre de « Pile » après 100 lancers.
– `M = 10`: Cette ligne définit le nombre de simulations à effectuer. Vous pouvez remplacer 10 par n’importe quelle autre valeur numérique pour définir \( M \).
– `results = []`: Une liste pour stocker les résultats des \( M \) simulations.
– `for _ in range(M)`: Une boucle pour exécuter la simulation \( M \) fois.
– La liste `results` contiendra le nombre de « Pile » obtenus pour chaque simulation.

Exercice 6 : un algorithme à étudier
a) Exécutons cet algorithme avec la valeur \( n = 5 \) en entrée.

Initialement, \( S = 0 \).

Pour \( i = 1 \) :
\[ S = S + i^2 = 0 + 1^2 = 0 + 1 = 1 \]

Pour \( i = 2 \) :
\[ S = S + i^2 = 1 + 2^2 = 1 + 4 = 5 \]

Pour \( i = 3 \) :
\[ S = S + i^2 = 5 + 3^2 = 5 + 9 = 14 \]

Pour \( i = 4 \) :
\[ S = S + i^2 = 14 + 4^2 = 14 + 16 = 30 \]

Pour \( i = 5 \) :
\[ S = S + i^2 = 30 + 5^2 = 30 + 25 = 55 \]

Le résultat affiché en sortie est donc \( S = 55 \).

b) De façon plus générale, cet algorithme calcule la somme des carrés des \( n \) premiers nombres entiers naturels. Plus précisément, il réalise la somme des valeurs \( i^2 \) pour \( i \) allant de 1 à \( n \).
On peut également exprimer cette somme sous forme de série mathématique :
\[ S = \sum_{i=1}^{n} i^2 \]

Ceci correspond à la somme des carrés des premiers \( n \) entiers naturels.

Exercice 7 : un algorithme qui donne l’image par une fonction
Pour écrire l’algorithme de la fonction \( f \) en fonction de \( x \), nous pouvons utiliser une structure conditionnelle. L’algorithme en pseudo-code est le suivant :

\begin{verbatim}
Entrée: x (un nombre réel)
Sortie: f(x)

Si x ≤ 0 alors
f(x) = x^2
Sinon si 0 < x ≤ 1 alors
f(x) = x
Sinon si 1 < x alors
f(x) = -2x + 3
\end{verbatim}

En LaTeX, l’algorithme peut également être écrit de la manière suivante :

« `latex

{Algorithme de la fonction \( f \) en fonction de \( x \) :}

\begin{verbatim}
Entrée : \( x \) (un nombre réel)
Sortie : \( f(x) \)

\begin{cases}
\text{Si } x \leq\, 0 \implies f(x) = x^2 \\
\text{Sinon si } 0 < x \leq\, 1 \implies f(x) = x \\
\text{Sinon si } 1 < x \implies f(x) = -2x + 3 \\
\end{cases}
\end{verbatim}


« `

Ce code LaTeX permet de générer un document affichant l’algorithme demandé.

Exercice 8 : algorithme qui fournit la distance entre 2 points
a) La distance \( AB \) entre les points \( A \) et \( B \) sur une droite graduée est donnée par la valeur absolue de la différence de leurs abscisses. Ainsi,

\[ AB = |a – b| \]

b) Voici l’algorithme d’une fonction \(\text{distance}(a, b)\) qui retourne la distance \( AB \) :

\begin{verbatim}
Début
Entrée : a, b (abscisses des points A et B)
Sortie : distance (distance entre A et B)

distance <- |a – b|
Retourner distance
Fin
\end{verbatim}

Exercice 9 : algorithme qui précise si un triangle est rectangle
Pour déterminer si le triangle ABC est rectangle en A, nous devons vérifier si le théorème de Pythagore est respecté, c’est-à-dire si \( b^2 = a^2 + c^2 \).

En utilisant LaTeX pour l’algorithme et la vérification, on peut fournir une fonction H(a, b, c) de la manière suivante :

« `latex

\newcommand{\fonctionH}[3]{
\ifnum\pdfstrcmp{\outcome}{Vrai}=\numexpr#1^2+#3^2-#2^2=0 \relax
\[H(#1, #2, #3) = \text{Vrai}\]
\else
\[H(#1, #2, #3) = \text{Faux}\]
\fi
}

La fonction \[H(a, b, c)\] qui détermine si le triangle ABC est rectangle en A peut s’écrire comme suit :

\begin{verbatim}
fonction H(a, b, c)
si b^2 = a^2 + c^2 alors
retourner ‘Vrai’
sinon
retourner ‘Faux’
\end{verbatim}

En LaTeX, l’équation utilisée pour la vérification est :
\[
b^2 = a^2 + c^2
\]

Ainsi, la vérification dans une fonction LaTeX pourrait se présenter comme suit :

\[
\text{Si } b^2 = a^2 + c^2 \text{ alors }\quad H(a, b, c) = \text{Vrai}
\]
\[
\text{Sinon } \quad H(a, b, c) = \text{Faux}
\]


« `

Exercice 10 : volume d’un cylindre et écrire un algorithme
a) Recopier et compléter cet algorithme.

Variables : \(R, h, S, V\) sont des nombres réels
Entrées : Saisir \(R, h\)
Traitement : Affecter à \(S\) la valeur \(\pi R^2\)
Traitement : Affecter à \(V\) la valeur \(S \cdot h\)
Sortie : Afficher \(V\)

b) Coder cet algorithme dans un langage de programmation.

Voici un exemple de code en Python :

« `python
import math

# Entrée des valeurs
R = float(input(« Saisir le rayon R en cm : « ))
h = float(input(« Saisir la hauteur h en cm : « ))

# Calcul de l’aire de la base
S = math.pi * R \[\] 2

# Calcul du volume
V = S * h

# Affichage du volume
print(« Le volume du cylindre est de », V, « cm^3 »)
« `

c) Contrôler le programme avec des exemples.

Exemple 1 :
– R = 3 cm
– h = 5 cm

Calculs :
\[
S = \pi \cdot R^2 = \pi \cdot 3^2 = 9\pi \approx 28.27 \, \text{cm}^2
\]
\[
V = S \cdot h = 28.27 \cdot 5 = 141.35 \, \text{cm}^3
\]

Exemple 2 :
– R = 2 cm
– h = 10 cm

Calculs :
\[
S = \pi \cdot R^2 = \pi \cdot 2^2 = 4\pi \approx 12.57 \, \text{cm}^2
\]
\[
V = S \cdot h = 12.57 \cdot 10 = 125.7 \, \text{cm}^3
\]

Le programme devrait afficher les volumes \(141.35 \, \text{cm}^3\) pour le premier exemple et \(125.7 \, \text{cm}^3\) pour le deuxième exemple.

Voir Corrigés 11 à 20 ...
Voir Corrigés 21 à 31 ...

Réviser les cours et exercices de maths avec nos Q.C.M :


D'autres outils pour progresser en autonomie :



Nombre de fichiers PDF téléchargés.  Maths PDF c'est 12 687 121 cours et exercices de maths téléchargés en PDF et 4 250 exercices.

Maths PDF

GRATUIT
VOIR