R1-ALGO-01 - révision
Contents
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)
Input In [1], in <cell 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/lib/python3.9/site-packages/ipykernel/kernelbase.py:1174, in Kernel.raw_input(self, prompt)
1167 """Forward raw_input to frontends
1168
1169 Raises
1170 ------
1171 StdinNotImplementedError if active frontend doesn't support stdin.
1172 """
1173 if not self._allow_stdin:
-> 1174 raise StdinNotImplementedError(
1175 "raw_input was called, but this frontend does not support input requests."
1176 )
1177 return self._input_request(
1178 str(prompt),
1179 self._parent_ident["shell"],
1180 self.get_parent("shell"),
1181 password=False,
1182 )
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))
Entrez la valeur de a : 4
Entrez la limite : 100
Racine de 4.0 = 2.0