rev

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)
Cell In[1], line 1
----> 1 nombre = int(input("Entrez un nombre entier : "))
      2 somme = 0
      4 for i in range(2, nombre + 1, 2):

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.

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 :

R1-ALGO-02_ex2

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")
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 :

R1-ALGO-02_ex4

Solutions#

Exercice 1 (somme des entiers pairs)#

Un algorigramme :

R1-ALGO-02_ex1

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)
La somme des netiers pairs jusqu'à  13 est : 42

Exercice 2#

R1-ALGO-02_ex2

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")
17  est un nombre premier

Exercice 3 (calcul de la moyenne)#

R1-ALGO-02_ex3

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")
La moyenne est :  4.5

Exercice 4 (factorielle)#

R1-ALGO-02_ex4

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)
La factorielle de  4  est : 24