R1-ALGO-02 : Révision Algorigramme + programmation
Contents
R1-ALGO-02 : Révision Algorigramme + programmation#
Objectifs pédagogiques#
réviser le passage du formalisme algorigramme au formalisme programmation (et vice-versa) pour des problème simples
Exercice 1 : calcul de la somme des entiers pair#
Problème : on veut calculer la somme de tous les entiers pairs entre 2 et un nombre
entier entré par l’utilisateur.
Entrée : nombre
Sortie : somme
Dessinez l’algorigramme correspondant au programme suivant :
nombre = int(input("Entrez un nombre entier : "))
somme = 0
for i in range(2, nombre + 1, 2):
somme = somme + i
print("La somme des entiers pairs jusqu'à ",nombre, "est :",somme)
---------------------------------------------------------------------------
StdinNotImplementedError Traceback (most recent call last)
Input In [1], in <cell line: 1>()
----> 1 nombre = int(input("Entrez un nombre entier : "))
2 somme = 0
4 for i in range(2, nombre + 1, 2):
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.
Exercice 2 : Vérification des nombres premiers#
Problème : On veut savoir si un nombre
entier entré par l’utilisateur est premier ou pas. Pour ce faire, on calcule tous les restes de la division entière (le modulo) des diviseurs entre 2
et la racine du nombre entré. Si ce reste vaut 0
une seule fois, alors le nombre n’est pas premier. Sinon il est premier (divisble par lui et par 1)
Entrée : nombre
Sortie : est premier
ou n'est pas premier
Ecrivez le programme en Python de l’algorigramme suivant :
Exercice 3 : Calcul d’une moyenne#
Problème : On veut calculer la moyenne de nombre_de_nombres
valeurs nombre
. On ne connaît pas à l’avance le nombre de valeurs qui seront entrées par l’utilisateur (boucle non bornée)
Entrée : des valeurs de nombre
Sortie : moyenne
Dessinez l’algorigramme correspondant au programme suivant
somme = 0
nombre_de_nombres = 0
nombre = 0
while nombre >= 0:
nombre = float(input("Entrez un nombre (négatif pour terminer) : "))
if nombre >= 0:
somme = somme + nombre
nombre_de_nombres = nombre_de_nombres + 1
if nombre_de_nombres > 0:
moyenne = somme / nombre_de_nombres
print("La moyenne est : ",moyenne)
else:
print("Aucun nombre saisi")
Entrez un nombre (négatif pour terminer) : 23
Entrez un nombre (négatif pour terminer) : 24
Entrez un nombre (négatif pour terminer) : 28.5
Entrez un nombre (négatif pour terminer) : -1
La moyenne est : 25.166666666666668
Exercice 4 : Calcul de la factorielle#
Problème : On veut calculer la factorielle (\(f(x) = x! = x \cdot (x-1) \cdot (x-2 \cdot ... \cdot 1\))
Entrée : nombre
Sortie : factorielle
Ecrivez le programme en Python de l’algorigramme suivant :
Solutions#
Exercice 1 (somme des entiers pairs)#
Un algorigramme :
nombre = int(input("Entrez un nombre entier : "))
somme = 0
for i in range(2, nombre + 1, 2):
somme = somme + i
print("La somme des netiers pairs jusqu'à ",nombre, "est :",somme)
Entrez un nombre entier : 13
La somme des netiers pairs jusqu'à 13 est : 42
Exercice 2#
nombre = int(input("Entrez un nombre positif : "))
est_premier = True
if nombre <= 1:
est_premier = False
else:
diviseur = 2
while diviseur * diviseur <= nombre:
if nombre % diviseur == 0:
est_premier = False
diviseur = diviseur + 1
if est_premier == True:
print(nombre," est un nombre premier")
else:
print(nombre, " n'est pas un nombre premier")
Entrez un nombre positif : 17
17 est un nombre premier
Exercice 3 (calcul de la moyenne)#
somme = 0
nombre_de_nombres = 0
nombre = 0
while nombre >= 0:
nombre = float(input("Entrez un nombre (négatif pour terminer) : "))
if nombre >= 0:
somme = somme + nombre
nombre_de_nombres = nombre_de_nombres + 1
if nombre_de_nombres > 0:
moyenne = somme / nombre_de_nombres
print("La moyenne est : ",moyenne)
else:
print("Aucun nombre saisi")
Entrez un nombre (négatif pour terminer) : 4.5
Entrez un nombre (négatif pour terminer) : 5.5
Entrez un nombre (négatif pour terminer) : 3.5
Entrez un nombre (négatif pour terminer) : -3
La moyenne est : 4.5
Exercice 4 (factorielle)#
nombre = int(input("Entrez un nombre entier positif : "))
factorielle = 1
if nombre < 0:
print("Erreur, le nombre doit être positif")
elif nombre == 0:
print("La factorielle de 0 est 1")
else:
for i in range(1,nombre+1, 1):
factorielle = factorielle * i
print("La factorielle de ",nombre," est :",factorielle)
Entrez un nombre entier positif : 4
La factorielle de 4 est : 24