R1-ALGO-01 - révision#
Objectifs#
être capable de:
lire et comprendre un problème simple
développer l’algorigramme en utilisant le formalisme des algorigrammes
implémenter l’algorithme en Python
Consignes#
Pour chaque problème:
dessinez l’algorigramme qui décrit un algorithme permettant de résoudre le problème.
écrivez un programme Python qui implémente l’algorigramme que vous avez dessiné
Faites ce travail dans l’ordre !!. D’abord l’analyse algorithmique, puis la programmation
Exercice 2 : Promotion en 2M#
Pour être promu en deuxième année de l’école de maturité (2M), le bulletin doit remplir les conditions suivantes :
obtenir un total des notes égal à au moins autant de fois 4 points qu’il y a de notes ;
obtenir au moins 16 points dans un groupe constitué du français, de la moyenne des moyennes des notes de la deuxième langue nationale et de la troisième langue, arrondie au demi-point, des mathématiques et de l’option spécifique ;
ne pas avoir plus de quatre notes inférieures à 4.
(Article 81 du réglement des gymnases vaudois )
Exercice 3 : Les racines d’Héron d’Alexandrie#
Heron d’Alexandrie est un mathématicien, ingénieur et mécanicien du 1er siècle ap JC. Il est un contemporain de Pline l’Ancien, célèbre écrivain et naturaliste de la Rome Antique.
Heron a développé une méthode très simple pour calculer une valeur approchée de la racine carrée de n’importe quel nombre n
:
Entrez la valeur de
n
Entrez la limite supérieure de la fonction récursive
Calculer \(u_1 = n\)
Calculer \(u_{n+1} = \frac{1}{2}(u_n + \frac{n}{u_n})\)
Solutions#
Ex1#
oeufs = 1
beurre = 85
sucre = 85
farine = 150
sucre_vanille = 1
levure = 1
sel = 0.5
chocolat = 350
ingredients = [oeufs,beurre,sucre,farine,sucre_vanille,levure,sel, chocolat]
nbr_personnes = int(input("Entrez le nombre de personnes : "))
for i in range(len(ingredients)):
ingredients[i] = (nbr_personnes/6)*ingredients[i]
print("Recette pour "+str(nbr_personnes)+" personnes")
print("1. Laissez ramollir "+str(ingredients[1])+"g. de beurre à température ambiante. Dans un saladier, malaxez-le avec "+str(ingredients[2])+"g. de sucre. ")
print("2. Ajoutez "+str(ingredients[0])+"oeuf et éventuellement "+str(ingredients[4])+" sachets de sucre vanillé. ")
print("3. Versez progressivement "+str(ingredients[3])+"g. de farine, "+str(ingredients[5])+" sachets de levure chimique, "+str(ingredients[6])+"cc. de sel et "+str(ingredients[7])+"g. de pépites de chocolat. Mélangez bien. ")
print("4. Beurrez une plaque allant au four ou recouvrez-la d'une plaque de silicone. À l'aide de deux cuillères à soupe ou simplement avec les mains, formez des noix de pâte en les espaçant car elles s'étaleront à la cuisson. ")
print("5. Faites cuire 8 à 10 minutes à 180°C soit thermostat 6. Il faut les sortir dès que les contours commencent à brunir.")
---------------------------------------------------------------------------
StdinNotImplementedError Traceback (most recent call last)
Cell In[1], line 12
8 chocolat = 350
10 ingredients = [oeufs,beurre,sucre,farine,sucre_vanille,levure,sel, chocolat]
---> 12 nbr_personnes = int(input("Entrez le nombre de personnes : "))
14 for i in range(len(ingredients)):
15 ingredients[i] = (nbr_personnes/6)*ingredients[i]
File ~/.local/pipx/venvs/jupyter-book/lib/python3.11/site-packages/ipykernel/kernelbase.py:1274, in Kernel.raw_input(self, prompt)
1272 if not self._allow_stdin:
1273 msg = "raw_input was called, but this frontend does not support input requests."
-> 1274 raise StdinNotImplementedError(msg)
1275 return self._input_request(
1276 str(prompt),
1277 self._parent_ident["shell"],
1278 self.get_parent("shell"),
1279 password=False,
1280 )
StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.
Ex2#
francais = 4
langue2 = 4
langue3 = 4
maths = 4
informatique = 4
chimie = 4
physique = 4
histoire = 4
ecodroit = 4
artsvisusmusique = 4
os = 4
notes = [francais,langue2,langue3,maths,informatique,chimie,physique,histoire,ecodroit,artsvisusmusique,os]
promu = False
# Règle 1 : obtenir un total des notes égal à au moins autant de fois 4 points qu'il y a de notes ;
regle1 = 0
for i in range(len(notes)):
regle1 = regle1 + notes[i]
# Règle 2 : obtenir au moins 16 points dans un groupe constitué du français, de la moyenne des moyennes des notes de la deuxième langue nationale et de la troisième langue, arrondie au demi-point, des mathématiques et de l'option spécifique ;
regle2 = francais + (langue2 + langue3)/2 + maths + os
# Règle 3 : ne pas avoir plus de quatre notes inférieures à 4.
regle3 = 0
for i in range(len(notes)):
if notes[i] < 4:
regle3 = regle3 + 1
# Calcul de la promotion
if regle1 >= len(notes)*4:
if regle2 >=16:
if regle3 < 4:
promu = True
else:
promu = False
if promu:
print("Vous êtes promu.e en 2ème")
else:
print("Vous n'êtes pas promu.e en 2ềme")
Vous êtes promu.e en 2ème
Ex3#
a = float(input("Entrez la valeur de a : "))
lim = int(input("Entrez la limite : "))
xn = a
for i in range(lim):
xnp1 = 0.5 * (xn + a/xn)
xn = xnp1
print("Racine de "+str(a)+" = "+str(xnp1))
Racine de 4.0 = 2.0