Il existe 10 types de personnes : celles qui comprennent le binaire et celles qui ne le comprennent pas.

Les diagrammes de flux

Un diagramme de programmation (parfois appelé algorigramme, logigramme ou plus rarement ordinogramme) est une représentation graphique normalisée de l’enchaînement des opérations et des décisions effectuées par un programme d’ordinateur. Une norme ISO a été développée. Elle décrit en détail les différents symboles à utiliser pour représenter un programme informatique de manière normalisée.

Les formes élémentaires sont les suivantes :

Parallèlogramme pour les entrées/sorties, rectangle pour les opérations et losange pour les conditions

À partir de ces trois formes, il est possible de représenter graphiquement tous les programmes que vous avez fait dans le module I et ceux à venir du module II.

Logiciels pour dessiner des diagrammes

 

Logo yEd graph editor
yEd graph editor est un logiciel gratuit qui peut être installé ou utilisé directement via un navigateur. Il permet de créer toutes sortes de diagrammes. Voyez plutôt la vidéo suivante :

Logo diagrams.net

diagrams.net est une autre solution gratuite, installable ou utilisable dans un navigateur, qui permet de créer toutes sortes de schémas. Voyez ce guide du débutant :

Exemples

Choisissez l’un des logiciels présentés plus haut et validez ce choix avec votre formateur. Pour le prendre en main, reproduisez l’exemple de diagramme ci-dessous. Rédigez ensuite le code Python qui lui correspond.

Exemple de diagramme de flux
# Orif section informatique
#
# Exemple de code rédigé à partir d'un diagramme de flux
#
# Auteur : Didier Viret
# Date   : 01.03.2023
 
description = input("Entrez une courte description de l'incident :\n")
impact = int(input("Combien de personnes sont-elles impactées (estimation) : "))
urgence = input("Est-ce qu'une intervention est urgente ? (O / N) : ")
priorite = ""
 
if (impact > 3):
    if (urgence == "O" or urgence == "o"):
        priorite = "Urgente"
    else:
        priorite = "Élevée"
 
else:
    if (urgence == "O" or urgence == "o"):
        priorite = "Moyenne"
    else:
        priorite = "Basse"
 
print("\nLa priorité de cet incident est : " + str(priorite))

Si un algorithme contient des boucles, alors le diagramme de flux contiendra des flèches qui remontent à une étape précédente.

Exemple de diagramme de flux avec une boucle

Exercices

Exercice 5.1

Dessinez un diagramme de flux qui correspond à ce programme :

# Orif section informatique
#
# Exercice 5.1
# Création d'un diagramme à partir d'un programme
#
# Auteur : Didier Viret
# Date   : 01.03.2023
 
continuer = "O"
 
while(continuer == "O" or continuer == "o") :
    nombre = 0
 
    while(nombre < 1 or nombre > 1000) :
        nombre = int(input("Entrez un nombre entier entre 1 et 1000 : "))
 
    if (nombre % 2 == 0):
        print("Ce nombre est pair.")
    else:
        print("Ce nombre est impair")
 
    continuer = input("Voulez-vous recommencer ? (O / N) : ")

Exercice 5.2 – Conversion d’une somme de minutes

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

Faites un programme qui converti un paquet de minutes en jours, heures et solde de minutes. Exemple : 1501 minutes = 1 jour, 1 heure et 1 minute.

Astuce : Recherchez les meilleures formules sur internet afin de rendre votre programme aussi simple que possible (le moins de ligne de code possible).

Exercice 5.3 – Calcul d’une moyenne

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

Vous développez un programme pour un instituteur, qui calcule la moyenne des notes de ses élèves. Le programme demande une note, puis une deuxième note, etc. Lorsque la valeur zéro (0) est introduite, cela signifie que le programme doit calculer et afficher la moyenne des notes. A la fin, il demande si l’utilisateur souhaite recommencer avec un nouveau calcul.

Exercice 5.4 – Calculatrice

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

Pour le même instituteur, faites un programme de calculatrice très simple qui permet d’effectuer les 4 opérations fondamentales (+, -, /, *). Le programme demande un nombre, puis un opérateur, puis un nombre, etc. L’introduction de (=) indique d’afficher le résultat du calcul.

Voici un exemple de l’affichage attendu :

Orif section informatique - Exercice 5.4 - Prénom Nom
Calculatrice simple
------------------------------------------------------
Nombre                          : 5
Opérateur (+, -, *, /)          : +
Nombre                          : 8
Opérateur (+, -, *, /)          : /
Nombre                          : 2
Opérateur (+, -, *, /)          : *
Nombre                          : 4
Opérateur (+, -, *, /)          : -
Nombre                          : 9
Opérateur (+, -, *, /)          : =
Résultat                        : 17

Exercice 5.5 – Répartition d’un héritage

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

Vous développez un programme pour un notaire, afin de calculer la répartition d’un héritage entre les différents héritiers (la répartition proposée dans cet exercice ne correspond pas à la loi réelle).

On admet que la loi prévoit de répartir l’héritage selon les règles suivantes :

  • Dans tous les cas, les impôts prélevés d’office représentent le 35% du montant de l’héritage.
  • Les frais de notaire se montent à 5% du montant de l’héritage, mais au minimum à 400.-
  • Si le défunt a un conjoint qui est toujours en vie et s’il n’a pas d’enfants ni de père et mère, ce conjoint reçoit la totalité de l’héritage.
  • Si le défunt a un conjoint qui est toujours en vie et également des enfants, le conjoint reçoit la moitié de l’héritage et les enfants l’autre moitié à parts égales. Son père et sa mère ne reçoivent rien.
  • Si le défunt a un conjoint qui est toujours en vie et également son père et/ou sa mère, le conjoint reçoit les 3/4 de la succession et les parents 1/4.
  • Si le défunt était veuf ou divorcé et laisse des enfants, tout l’héritage va aux enfants, chacun recevant une part égale. Son père et sa mère ne reçoivent rien.
  • Si le défunt était veuf ou divorcé, sans enfants et laisse son père et/ou sa mère, tout l’héritage va aux parents.
  • Si le défunt était veuf ou divorcé, sans enfants et sans parents, l’héritage est réparti aux héritiers réservataires qui sont définis selon la loi.

Présentation :

Pour simplifier, le programme posera l’ensemble des questions, effectuera les calculs et présentera la répartition de la somme pour chaque héritier. Indiquez CHF 0.- si l’héritier ne touche rien.

Exercice 5.6 – Frais de voyage en cars V1

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

En considérant les données ci-dessous, faites un programme qui permet de calculer les frais d’un voyage organisé en car par un voyagiste. Ce dernier possède un car de 50 places et fait payer deux sortes de frais :

  • Les déplacements (prix au kilomètre).
  • Dans le cas d’un séjour, le client doit payer l’hôtel au chauffeur. Il lui est également facturé des frais d’immobilisation du car pour toute la durée du séjour.

Le tarif appliqué est le suivant :

Déplacements :
Jusqu’à 500 km                                                 6.- / km
Plus de 500 et jusqu’à 1000 km                     5.- / km
Plus de 1000 et jusqu’à 2500 km                   4.- / km
Plus de 2500 km                                               3.- / km

Séjours :                                            100.- par nuit pour le logement du chauffeur.

Immobilisation du car :                300.- par jour.
L’immobilisation n’est pas facturée pour le jour du voyage aller et le jour du voyage retour.

Sur cette base, établissez un programme qui demande le nombre de kilomètres (aller simple) et le nombre de jours du séjour. Il effectuera ensuite les calculs et affichera les résultats détaillés : coût du déplacement aller-retour, coût du logement, coût de l’immobilisation du car, total de la location.

A la fin, il demandera si l’utilisateur souhaite quitter le programme ou faire un nouveau calcul.

Voici un exemple de l’affichage attendu :

Orif section informatique - Exercice 5.6 - Prénom Nom
Calcul des frais de voyage en cars - V1
------------------------------------------------------
 
Nombre de kilomètres (aller simple)      : 1000
Durée du séjour (en jours, minimum 1)    : 4
 
Calcul des frais :
------------------
Coût du déplacement (2000 kilomètres à 4.-)        : 8000
Coût de logement du chauffeur (3 nuits à 100.-)    : 300
Frais d'immobilisation du car (2 jours à 300.-)    : 600
                                                   ----------
                                             TOTAL : 8900
 
Voulez-vous recommencer (O / N) ? : 

Exercice 5.7 – Frais de voyages en cars, V2

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

La plupart des clients du voyagiste souhaitent payer le moins possible pour leur séjour. S’ils partent plusieurs jours, ils ont deux possibilités :

  • Garder le car sur place en payant le logement du chauffeur et les frais d’immobilisation.
  • « Renvoyer le car chez lui », ce qui les oblige à payer deux fois le parcours aller-retour mais supprime le logement et les frais d’immobilisation.

Faites une nouvelle version de votre programme pour qu’il permette de comparer les coûts entre ces deux possibilités.

Le nouveau programme fonctionnera de la manière suivante :

  1. Demander à l’utilisateur d’entrer le nombre de kilomètres à parcourir pour se rendre à destination (aller simple).
  2. Demander à l’utilisateur quelle est la durée du séjour (en nombre de jours).
  3. Calculer et afficher :
    1. Le montant à payer pour le déplacement (aller-retour).
    2. Le montant à payer pour le logement du chauffeur.
    3. Le montant à payer pour les frais d’immobilisation du car.
    4. Le montant total de la location en gardant le car sur place.
    5. Le montant total de la location en « renvoyant le car chez lui »
      (double aller-retour).
  4. Proposer de quitter le programme ou de faire un nouveau calcul.

Remarque : même pour les très longs trajets, on admet que le chauffeur n’a pas besoin de dormir pour faire l’aller-retour.

Voici un exemple de l’affichage attendu :

Orif section informatique - Exercice 5.7 - Prénom Nom
Calcul des frais de voyage en cars - V2
------------------------------------------------------
 
Nombre de kilomètres (aller simple)      : 1000
Durée du séjour (en jours, minimum 1)    : 4
 
Calcul des frais en gardant le car sur place :
----------------------------------------------
Coût du déplacement (2000 kilomètres à 4.-)        : 8000
Coût de logement du chauffeur (3 nuits à 100.-)    : 300
Frais d'immobilisation du car (2 jours à 300.-)    : 600
                                                   ----------
                                             TOTAL : 8900
 
Calcul des frais en renvoyant le car :
--------------------------------------
Coût du déplacement (4000 kilomètres à 3.-)        : 12000
                                                   ----------
                                             TOTAL : 12000
 
Voulez-vous recommencer (O / N) ? : 

Exercice 5.8 – Frais de voyages en cars, V3

Dessinez un diagramme de flux qui correspond à cette donnée et validez-le avec votre formateur avant de commencer à coder le programme.

Le voyagiste a augmenté son parc de véhicules et il possède maintenant plusieurs types de cars :

  • 2 cars de 35 places
  • 5 cars de 50 places
  • 3 cars de 65 places

Il vous commande une nouvelle version de programme qui permettra de calculer le nombre de cars nécessaires selon le nombre de voyageurs.

Fonctionnement

A ce stade de l’apprentissage, il serait trop difficile de programmer une version capable d’allouer la meilleure combinaison de cars possible. Votre programme devra choisir les cars de cette manière :

  • S’il reste plus de 50 personnes à placer, on alloue un car de 65 places
  • S’il reste entre 36 et 50 personnes à placer, on alloue un car de 50 places
  • S’il reste entre 1 et 35 personnes à placer, on alloue un car de 35 places

Par exemple :
66 passagers = 1 car de 65 et 1 car de 35
(et pas 2 cars de 35, ce qui serait plus optimal)

Pour simplifier le calcul des prix, on admet que le voyagiste applique le même tarif pour tous les types de cars (tarifs selon Exercice 5.6).

  1. Demander à l’utilisateur d’entrer le nombre de voyageurs.
  2. Demander à l’utilisateur d’entrer le nombre de kilomètres à parcourir pour se rendre à destination (aller simple)
  3. Demander à l’utilisateur quelle est la durée du séjour ( en nombre de jours).
  4. Calculer et afficher :
    a) Le nombre de cars de chaque type qui devront être utilisés.
    b) Le montant à payer par car pour le déplacement (aller-retour).
    c) Le montant total pour le déplacement (aller-retour)
    d) Le montant total à payer pour le logement des chauffeurs.
    e) Le montant total à payer pour les frais d’immobilisation.
    f) Le montant total de la location en gardant les cars sur place.
    g) Le montant total de la location en « renvoyant les cars chez eux »
    (double-aller retour).
  5. Proposer de quitter le programme ou de faire un nouveau calcul.

Remarque : même pour les très longs trajets, on admet que le chauffeur n’a pas besoin de dormir pour faire l’aller-retour.

Voici un exemple de l’affichage attendu :

Orif section informatique - Exercice 5.8 - Prénom Nom
Calcul des frais de voyage en cars - V3
------------------------------------------------------
 
Nombre de voyageurs                      : 66
Nombre de kilomètres (aller simple)      : 1000
Durée du séjour (en jours, minimum 1)    : 4
 
Cars attribués :
----------------
1 car de 65 places
1 car de 35 places
 
Calcul des frais en gardant le(s) car(s) sur place :
----------------------------------------------------
Coût du déplacement par car                        : 8000
(2000 kilomètres à 4.-)
 
Coût du déplacement total (2 cars)                 : 16000
Coût de logement des chauffeurs (3 nuits à 200.-)  : 600
Frais d'immobilisation des cars (2 jours à 600.-)  : 1200
                                                   ----------
                                             TOTAL : 17800
 
Calcul des frais en renvoyant le(s) car(s) :
--------------------------------------
Coût du déplacement par car                        : 12000
(4000 kilomètres à 3.-)
 
Coût du déplacement total (2 cars)                 : 24000
                                                   ----------
                                             TOTAL : 24000

Voulez-vous recommencer (O / N) ? : 

Bravo, vous avez terminé ce module !

Restitution :

  • Compressez (zippez) le dossier qui contient les exercices de ce chapitre
  • Envoyez le dossier zippé en pièce jointe à votre formateur
Aller au contenu principal