Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS

La page est créée Jacqueline Morel
 
CONTINUER À LIRE
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Programmation en

                                           Mohammed BENJELLOUN

                                                  Service ILIA
                                   (Informatique, Logiciel & Intelligence Artificielle)

                                      Faculté Polytechnique de Mons
                                   Mohammed.Benjelloun@umons.ac.be
                                                         2020-2021

M. BENJELLOUN   : BaB1 2020-2021                           - 1 -                          UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Objectifs

                Être capable de construire des bons programmes
                Des programmes : corrects, efficaces, robustes, relativement faciles à
                    comprendre, à modifier et à maintenir.

                                       → → Programmer de manière modulaire

                               Qualités attendues d'un programme
                      Clarté, Simplicité, Efficacité, Modularité, Extensibilité.

                Lors des séances de exercices, où la présence est obligatoire comme
                aux TPs, un complément de matière sera abordé. On ne peut donc
                considérer, le syllabus et ce document comme complets.

                        Pré-requis :   Aucun
                        Microsoft VISUAL STUDIO COMMUNITY (2019) GRATUIT
M. BENJELLOUN   : BaB1 2020-2021                  - 2 -                               UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Organisation du cours

                                             En 1ere et 2d
                                                                     TP4    5%
   1ere                    Théorie : 50%       et       Pratique 50% Tests 5%
                                                                     Examen 90%

                                                          TH
                                       PRQ

                                   Labos et Exercices Obligatoires
M. BENJELLOUN   : BaB1 2020-2021                - 3 -                      UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Organisation du cours
                                                           https://moodle.umons.ac.be/

M. BENJELLOUN   : BaB1 2020-2021             - 4 -                               UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Organisation du cours

                                                                              …
                                                                     https://moodle.umons.ac.be/

                                                                         Utilisation du débuggeur

                                                                               Vidéos
          Syllabus.pdf

                 Codes sources                                  Document
                 C++ Programmes                                 ‘’Environnement logiciel’’

                             Transp. Info I                   Note relative à l’organisation
                                                              de l’examen pratique

                                     Énoncé des TPs
                                                           120 tests formatifs sur C++
                                       Préparez les TPs

       C'est en forgeant que l'on devient forgeron, et c'est en programmant que
       euh... Peut-être …
M. BENJELLOUN   : BaB1 2020-2021                   - 5 -                                   UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Syllabus

                                                                                            Codes

                                     Ce qu’il faut au moins retenir :

                                     L’affectation d’un tableau à un autre est interdite de la manière suivante :
                                            int TabA[]= {1,2,3} , TabB[]={5,6,7};
                                           TabA = TabB;

                                           …

                                   Chapitre 10: Quelques erreurs à éviter
                                               Int i,j ,                Correction →        int i, j ;

M. BENJELLOUN   : BaB1 2020-2021               - 6 -                                                     UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
UMONS - Faculté Polytechnique
                             Service d’ILIA           Syllabus

                                                                                                             Codes
                       Travaux Pratiques de
                       Structures de données et algorithmes

                         par
                         Mohammed BENJELLOUN

                         Avec la participation de :
                           E. Malengreau,
                           M. El Adoui,               Ce qu’il faut au moins retenir :
                           O. Debauche
                           Y. Amkrane                 L’affectation d’un tableau à un autre est interdite de la manière suivante :
                           A. Guttadauria                    int TabA[]= {1,2,3} , TabB[]={5,6,7};
                                                            TabA = TabB;

                                                            …

                               Année académique 2019-2020
                                                  Chapitre 10: Quelques erreurs à éviter
                                                                Int i,j ,                Correction →        int i, j ;

M. BENJELLOUN   : BaB1 2020-2021                                - 7 -                                                     UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Organisation des TP

        Consignes                  Préparez les TPs
        Si malgré la préparation du TP, vous n’avez pas terminé à la fin de la séance, vous devrez le continuer
        seul et poser vos éventuelles questions avant le TP suivant. Vous pouvez venir nous les poser
        directement, durant les ateliers du mercredi ou les poser via le forum du cours.
        Cette remarque est valable pour tous les travaux pratiques de ce cours.

        Pour rappel, les travaux pratiques sont obligatoires.

                Nos Emails :
                 Mohammed.Benjelloun@umons.ac.be
                 Edith.malengreau@umons.ac.be
                 ...

        But TP1:
        manipuler les principales instructions de base → Séance Exercice 1

            Microsoft VISUAL STUDIO COMMUNITY (2017, 2019) GRATUIT

M. BENJELLOUN   : BaB1 2020-2021                          - 8 -                                             UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
Organisation des TP
                   Introduction
                      Consignes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   TP 1 Instructions de base
                   1.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   1.2 Rappels syntaxiques . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .
                   1.3 Le jeu de l’urne (TP1_1). . . . . . . . . . . . . . . . . . . . . . . . . .
                   1.4 Le jeu du nombre caché (TP1_2). .. . . . . . . . . . . . . . . . .
                   1.5 Pour ceux qui ont terminé: Polynôme du second degré (TP1_3)
                   TP 2 Tableaux et instruction switch
                   2.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   2.2 Rappels théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   2.3 Application (TP2_1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   2.4 Pour ceux qui ont terminé: Calculer l’erreur absolue (TP2_2)
                   TP 3 Les Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   3.1 Objectifs de la séance . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   3.2 Rappels théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                   3.3 Application . . . . . . . . . . . . . . . . . . . . . .

M. BENJELLOUN   : BaB1 2020-2021                                  - 9 -                                                 UMONS
Programmation en Service ILIA Faculté Polytechnique de Mons - Moodle UMONS
➢TP1_1 Le jeu de l’urne
          Le jeu de l’urne (cours théorique) consiste à tirer au sort 2 boules dans une urne.
          -       si les boules sont de même couleur, on remet une boule noire dans l'urne
          -       sinon, on remet une boule verte

          Le jeu se termine lorsqu'il ne reste plus qu'une boule dans l'urne.   Sa couleur?

                                                                                NV  0,
                                                                                NN  0,
                                                                                NV+NN  1

            Quelle est la couleur de la dernière boule connaissant les nombres
            initiaux NV et NN?

M. BENJELLOUN   : BaB1 2020-2021                   - 10 -                                    UMONS
1.4 Le jeu du nombre caché                                  (TP1_2)

          Écrire un programme qui choisira un nombre entier aléatoire compris entre 0 et 100,
          puis le fera deviner à l’utilisateur au moyen d’essais successifs :
          – le programme demandera au joueur d’entrer un nombre ; si le joueur devine le bon
          nombre, il a gagné, le programme lui affiche « Bravo, c’est trouvé ! » et s’arrête.
          – si le joueur ne donne pas le bon nombre, le programme lui précise « Trop petit » ou
          « Trop grand », puis lui demande un autre essai, jusqu’à ce que le joueur trouve.
          Dans un premier temps, le nombre à deviner sera saisi au clavier et sera nommé
          chifAcher.

          Pour vous aider, voici le début du programme :
          1             # include 
          2             using namespace std ;
          3             void main () {
          4              int chiffre , chifAcher ; / / chifAcher : c’est le chiffre que l’on cherche
          5             cout  chifAcher ;
          7             cout
1.5 Pour ceux qui ont terminé                                    (TP1_3)
            Écrire un programme C++ qui calcule les racines d’un polynôme du second degré à
            coefficients réels. Examinez toutes les possibilités (racines réelles, complexes,
            doubles, infinité ou inexistence de solutions).
            ax2 + bx + c = 0
            1            si a=b=c=0                          // infinité de solutions
            2            si a=b=0 et c !=0                   // aucune solution
            3            si a=0, b !=0 et c !=0              // racine réelle de valeur -c/b
            4            si a!=0 , b !=0 et c !=0
            5            delta = b*b - 4.0* a*c
            6            si delta =0                         // racine double
            7            racine1 = racine2 = -b /(2* a)
            8            sinon si delta > 0                  //2 racines réelles
            9            temp = sqrt ( delta )
            10           racine1 = (-b + temp ) /(2* a)
            11           racine2 = (-b - temp ) /(2* a)
            12           afficher ( racine1 )
            13           afficher ( racine2 )
            14           sinon                               // 2 racines complexes conjuguées
            15           temp = sqrt (- delta )
            16           reel = -b /2* a imag = temp /2* a
            17           afficher ("z1 = reel + imag *i")
            18           afficher ("z2 = reel - imag *i")

M. BENJELLOUN   : BaB1 2020-2021                             - 12 -                              UMONS
➢TP4
       4.3.1 Première étape
       Écrire un programme qui traite un vecteur de nombres entiers et de taille
       maximale égale à vingt (taille max = 20) et qui gère en boucle le menu ci-dessous
       composé de 7 opérations.
       Les opérations 5 à 7 seront communiquées lors de la séance de travaux
       pratiques.

       1. Saisie du vecteur et affichage de ses données.
       2. Calcul (1 seule fonction) et affichage du minimum et du maximum du vecteur.
       3. Échange de position maximum → minimum et affichage du vecteur.
       4. Ajout d’un élément au milieu du vecteur et affichage du vecteur.
       5. …………………………………
       6. …………………………………
       7. …………………………………
       8. Quitter.

       Consignes
       …

M. BENJELLOUN   : BaB1 2020-2021                 - 13 -                                 UMONS
Examen pratique:
                  TPs              Exercices

                                                 Voir exemples fin du chapitre 8
                         …..                     + 4 dans Moodle

                         ….
                         ….
                                                    Note relative à l’organisation de
                         ….                       l’examen pratique d’Informatique :
                                                                 Moodle

M. BENJELLOUN   : BaB1 2020-2021               - 14 -                              UMONS
Qualité d’un programme

     Architecture claire                       (conception répondant aux spécifications )

     Algorithmes                    suite d'instructions permettant de résoudre un problème en
                                   un nombre fini d'instructions et un temps fini d'exécution.

     Structures de données
                    “Comment organiser au mieux l’information
                    dans un programme ?”
                                                                                       Tableaux !! Listes !!!
                                                                                       Structures !! Classes !?
     Réutilisabilité

     Tests de robustesse (identifier les comportements problématiques )

     Documentation

M. BENJELLOUN   : BaB1 2020-2021                                 - 15 -                                    UMONS
(suite finie d’opérations élémentaires)           (langage)
                                             (pseudo-code/organigramme)

                                                                                  {
                                                                                  char Rep;

    Ce programme doit gérer en boucle                                             Rep = ‘X’ ;
    le menu suivant :                                                             cout
Pourquoi utiliser C++ ?

     un langage relativement propre,
     des objets pour structurer,
     gestion précise de la mémoire,
     un peu moins rapide que C mais plus rapide que Java ou Python,
     un grand nombre de librairies disponibles.

M. BENJELLOUN   : BaB1 2020-2021   - 17 -                      UMONS
Pourquoi utiliser C++ ?

Quel langage de programmation apprendre pour créer un jeu vidéo ?

•       C et C++ : les langages de référence. Très efficaces, ils sont toutefois difficiles
        à apprendre.
•       C# : fortement inspiré du C++ et du Java, mais également complexe à apprendre.
•       Java : légèrement plus facile à apprendre, mais un peu moins performant.
•       Python : très facile à apprendre, mais moins performant.

    Quel langage de programmation apprendre pour se lancer dans l’intelligence artificielle ?
    •   Python :
    •   C++ :
    •   Java :
    •   Prolog :

M. BENJELLOUN   : BaB1 2020-2021                - 18 -                                  UMONS
Moi, ingénieur…
          que vais-je bien pouvoir faire ?

                                       Pour commencer, ?? programmer:
                                       Y = X2, Z = X3 et

                           BaB1FPMs

M. BENJELLOUN   : BaB1 2020-2021         - 19 -                         UMONS
Pour commencer

                               Fonction main() de type void ou int

                               Identificateurs   (nom variables, …)

                               Types de données    (entier, réel, …)

                               Variables : déclarations et initialisations

                               Entrées /sorties : cin et cout

                               Directives préprocesseur

M. BENJELLOUN   : BaB1 2020-2021                     - 20 -                  UMONS
Pour commencer
                Tout programme doit avoir un point d’entrée nommé main()
                 void main()           // Ceci est un commentaire sur 1 seule ligne

                 {                    /* Ceci est un commentaire sur plusieurs lignes pour signaler
                                         qu’il s’agit de notre premier programme qui est vide
                                        on placera ici une liste d’instructions en C++ */
                 }
                 int main()           // La fonction ‘main()’ peut être précédée par int au lieu de void

                 {
                 Type_de_donnée Donnée;        // Déclaration des identificateurs/variables

                 Instruction 1;
                                              /* Le programme principal commençant par main()
                 Instruction 2;               peut contenir des instructions se terminant par ‘ ; ’ */

                 .. .
                 return 1;         // Si on utilise int main(), il faut retourner un entier (p.e: return 1)

                 }

M. BENJELLOUN   : BaB1 2020-2021                           - 21 -                                             UMONS
Pour commencer
           Un identificateur ne peut pas être un mot réservé du langage :

                                              Les mots réservés du langage C++
                                              doivent être écrits en minuscules.

M. BENJELLOUN   : BaB1 2020-2021         - 22 -                              UMONS
Pour commencer

 Les identificateurs nomment les objets C++ (fonctions, variables ...).
 Le C++ est sensible à la case (case sensitive; distingue les minuscules des majuscules)

                 Exemple:          AB, Ab, ab
                                     sont des identificateurs valides et tous différents.

          Identificateurs valides :
              xx        y1       somme_5             _position     Noms       Prog_1_V0

          Identificateurs invalides :
                 3eme                     commence par un chiffre
                 x#y                      caractère non autorisé (#)
                 no-commande              caractère non autorisé (-)
                 taux change              caractère non autorisé (espace)

M. BENJELLOUN   : BaB1 2020-2021                    - 23 -                                  UMONS
Pour commencer

    Types de données en langage C++

             Type de donnée                  Signification                        Plage de valeurs acceptée
     char                          Caractère                  -128 à 127
     unsigned char                 Caractère non signé        0 à 255
     short int                     Entier court               -32 768 à 32 767
     unsigned short int            Entier court non signé     0 à 65 535
     int                           Entier                     -32 768 à 32 767
                                                              -2 147 483 648 à 2 147 483 647
     unsigned int                  Entier non signé           0 à 65 535
                                                              0 à 4 294 967 295
     long int                      Entier long                -2 147 483 648 à 2 147 483 647
     unsigned long int             Entier long non signé      0 à 4 294 967 295
     float                         Flottant (réel)            -3.4*10-38 à 3.4*1038
     double                        Flottant double            -1.7*10-308 à 1.7*10308
     long double                   Flottant double long       -3.4*10-4932 à 3.4*104932
     bool                          Booléen                    Prend deux valeurs : 'true' et 'false' mais une conversion
                                                              implicite (valant 0 ou 1) est faite par le compilateur lorsque l'on
                                                              affecte un entier.

M. BENJELLOUN   : BaB1 2020-2021                             - 24 -                                                       UMONS
Pour commencer
            void main()
            {
            int X, Y;              // déclaration de deux variables X et Y. Instruction se termine par ‘;’

            float racine = 1.2;          // déclaration et initialisation de la variable ‘racine’ de type float

                X= 5;                     // initialisation de la variable X à 5

                                          // affectation de la valeur de -X à Y. Donc Y = -5
                Y= -X;
            }

Variables : déclarations                                                  Initialisations/Affectations

 Syntaxe :              Type       identificateur1, id2,…. ;
                                                                        int i=9; ou   int i(9);   int i;
 Exemples:                 char c1, c2, c3 ;                                                        i=9;
                           int i, j, var_ent ;
                           float f, variable ;                          char c1= 'A'; ou char c1('A’); ou
                           double D, Mavariable ;                                                 char c1;
                                                                                                    c1= 'A';
M. BENJELLOUN   : BaB1 2020-2021                               - 25 -                                             UMONS
Pour commencer
            void main()
            {
            int X, Y;              // déclaration de deux variables X et Y. Instruction se termine par ‘;’

            float racine = 1.2;         // déclaration et initialisation de la variable ‘racine’ de type float

                X= 5;                    // initialisation de la variable X à 5

                                         // affectation de la valeur de -X à Y. Donc Y = -5
                Y= -X;
            }

         Les entrées /sorties : cin et cout                                       (saisie clavier/affichage écran)

        • cout, le flux standard de sortie, habituellement associé à l'écran,
                  Syntaxe : cout  var1 >> var2 >> var3 … ;                                         7
M. BENJELLOUN   : BaB1 2020-2021                            - 26 -                                               UMONS
Pour commencer
            void main()
            {
            int X, Y;              // déclaration de deux variables X et Y. Instruction se termine par ‘;’

            float racine = 1.2;         // déclaration et initialisation de la variable ‘racine’ de type float

                X= 5;                    // initialisation de la variable X à 5

                                         // affectation de la valeur de -X à Y. Donc Y = -5
                Y= -X;
            }

            #include                         // Directive préprocesseur/ Pour utiliser cout et cin
            using namespace std;
            void main( ) {
              int X, Y;
                 cout > X ;                                             // Attend une saisie de X au clavier

                 Y = - X ;

                 cout
Moi, ingénieur…
            que vais-je bien pouvoir faire ?

                                             Pour commencer, j’aimerais programmer:
                                             Y = X2, Z = X3 et

                                             #include           // pour cout et cin
                                             #include              // pour sqrt( )
                                             using namespace std;

Variables : déclarations                     void main() {
                                              int X, Y, Z ;               // variables
Syntaxe : Type identificateur1, id2,…. ;      float racine;
                                                 cout > X;

                                                 Y= X * X ;                 // X²
 int i=9;         ou     int i; …     i=9;
                                                 Z= Y * X ;                 // X³
                                                 racine = sqrt(X);
                                                 cout
Moi, ingénieur…
           que vais-je bien pouvoir faire ?

                                       Pour commencer, j’aimerais programmer:
                                       Y = X2, Z = X3 et

                                       #include           // pour cout et cin
Directives du préprocesseur            #include              // pour sqrt( )
accès avant la compilation
                                       using namespace std;
Exemples de librairies standards:      void main() {
                                        int X, Y, Z ;               // variables (ceci est un commentaire)
Gestion des Entrées-Sorties standard    float racine;
                          
                                           cout > X;
                          
Traitement de chaînes de caractères
                                           Y= X * X ;                 // X²
                                           Z= Y * X ;                 // X³
                          
                                           racine = sqrt(X);
Contrôler les paramètres d'affichage
                                  cout
Merci BaB1FPMs

M. BENJELLOUN   : BaB1 2020-2021   - 30 -               UMONS
Pour commencer
         Les entrées /sorties : cin et cout
                                                                   Formatage de la présentation → écran
            cout
Pour commencer
         Les entrées /sorties : cin et cout
                                                                Formatage de la présentation → écran
            cout
Pour commencer

                               Fonction main() de type void ou int

                               Identificateurs   (nom variables, …)

                               Types de données    (entier, réel, …)

                               Variables : déclarations et initialisations

                               Entrées /sorties : cin et cout

                               Directives préprocesseur

M. BENJELLOUN   : BaB1 2020-2021                     - 33 -                  UMONS
#include 
           using namespace std;                      Exercice
           void main() {
                int x=5;
                float y;
                const int W = 6 ;
                cout
Les opérateurs

                        Les opérateurs arithmétiques : +, -, /, …

                        Les opérateurs de comparaison : >, =,
Les opérateurs arithmétiques
     Le C++ propose les opérateurs suivants :
           +      addition
           -      soustraction
           *      multiplication
           /       division
           %      modulo (reste de la division entière )
                   % ne peut être utilisé qu'avec des
                   entiers

                                   7/2                     3
                                   7.0/2
                                   7/2.0
                                   7.0/2.0                3.5

M. BENJELLOUN   : BaB1 2020-2021                  - 36 -         UMONS
Les opérateurs arithmétiques
     Le C++ propose les opérateurs suivants :
           +      addition
           -      soustraction
           *      multiplication
           /       division
           %      modulo (reste de la division entière )
                   % ne peut être utilisé qu'avec des
                   entiers

                            Modulo : C=A%B;

                            C = 4%2 = 0;       5%2 = 1;          8%3= 2;

                            C=A%2             Si C=0        alors A est pair sinon
                                              Si C=1        A est impair

M. BENJELLOUN   : BaB1 2020-2021                   - 37 -                            UMONS
Les opérateurs arithmétiques
     Le C++ propose les opérateurs suivants :
           +      addition
           -      soustraction
           *      multiplication
           /       division
           %      modulo (reste de la division entière )
                   % ne peut être utilisé qu'avec des
                   entiers

                                   …
                                   void main() {
                                       int i = 6, j = 4, k;
                                       float f = 6.0, g = 4.0, h;
                                          k = i / j;   // k= 6/4 = 1
                                          h = f / g;   // h = 6.0/4.0 = 1.5
                                          h = i / j;   // h = 6/4 = 1.0
                                   }

M. BENJELLOUN   : BaB1 2020-2021                         - 38 -               UMONS
Les opérateurs

                        Les opérateurs arithmétiques : +, -, /, …

                        Les opérateurs de comparaison : >, =,
Les opérateurs de comparaison
                                           <        plus petit
                                                   plus grand
                                           >=       plus grand ou égal
                                           ==       égal
                                   !       !=       différent

  Le résultat d'une expression logique est un booléen. Il vaut true si elle est vraie et false sinon.

  Réciproquement, toute valeur non nulle est considérée comme vraie et la valeur nulle comme fausse.

                                   Les opérateurs logiques
                                       &&        et
                                                                                             !
                                       ||        ou (non exclusif)
                                       !         non

M. BENJELLOUN   : BaB1 2020-2021                      - 40 -                                            UMONS
Contractions d'opérateurs

           Pour += -=               *=      /=   %= &=            |=     ^= =

                a += 15;                         i *= j + 5;
                              a = a + 15;                      i = i * (j + 5);

                                   Incrément et décrément

                                                          int i = 5, j = 4;
++ incrément : i++ ou ++i
         est équivalent à i += 1 ou i = i + 1             i++;                // i vaudra 6
- - décrément                                             --j;                // j vaudra 3
                                                          ++i;                // i vaudra 7
                                                          j++;                // j vaudra 4
                                                          j++;                // j vaudra 5
                                                          j += i ;            // j vaudra 5 + 7
M. BENJELLOUN   : BaB1 2020-2021                 - 41 -                                      UMONS
Les structures de contrôle

    Alternative:                        if-else

    Itérations:                         for, while, do-while

    Rupture de Contrôle:                break, continue, return …

    Choix Multiple:                     switch-case

M. BENJELLOUN   : BaB1 2020-2021          - 42 -                    UMONS
Les structures de contrôle

    programme                                                                              programme
        oui                         non
                   Condition
                     vraie                           oui         Condition   non
                                                                                                Bloc
                                                                   vraie                   d’instructions
     Bloc 1                        Bloc 2
 d’instructions                d’instructions        Bloc                Suite du
                                                d’instructions           programme
                                                                                     oui
                                                                                            Condition
                                                                                               vraie
                                                                                                            non
                Suite du programme

                                                                                           Suite du programme

                if-else                                    while                             do-while

M. BENJELLOUN    : BaB1 2020-2021                          - 43 -                                           UMONS
Les décisions - if … else
       Selon qu’une certaine condition est vérifiée ou non, on exécutera une ou plusieurs instructions.

                 programme
                                                 if (Condition   vraie)          if ( X==Y) {
          oui       Condition        non         {                                    X= X+1;
                      vraie                           BLOC 1 D'INSTRUCTIONS           Y= Y+2;
                                                 }                               }
      Bloc 1                        Bloc 2
  d’instructions                d’instructions   else                            else {
                                                   {                                   X = X-1 ;
                                                      BLOC 2 D'INSTRUCTIONS             Y = Y-2 ;
                                                  }                              }
                Suite du programme

                                                          if (Condition vraie)   if (a
Les décisions - if sans else

                                             if (Condition vraie)
                oui                    non
                          Condition
                            vraie
                                             {
                                                instruction 1;
         Bloc 1                                 instruction 2;
     d’instructions                             instruction 3;
                                                 …
                                                 instruction N;
                                             }
                      Suite du programme

                                             if (Condition vraie)   if ( temperature > 70.0)
                                                 instruction 1;      cout
Les décisions – if emboîtés

            if (  )                            if (  )
                                                   
            else if ()                           else if ()
                                                         
            else if ()                               else if ()
                                                              
            else if ()                                     else if ()
                                                                    
            else                                              else 

   ◼     else est associé avec le if le plus proche

  if(i >= 0)                                          if(i >= 0) {
    if(i > 1000) cout 1000) cout
Les décisions – if emboîtés
                                                                                             exemple

                   #include
                   using namespace std;

                   int main() {

                   int a, b;
                   cout > a;

                   cout > b;

                   if (a > b)
                     cout
Les décisions - if … else
                                                                   exemple

    int i = -1;
    if(i < 0){                           i
Les décisions - if … else
                                                            exemple

   int i = 1;
   if(i < 0) {
    cout
Les décisions - if … else
                                                            exemple

   int i = 1;
   if(i < 0)
    cout
Les structures de contrôle

    Alternative:                        if-else

    Itérations:                         for, while, do-while

    Rupture de Contrôle:                break, continue, return …

    Choix Multiple:                     switch-case

M. BENJELLOUN   : BaB1 2020-2021          - 51 -                    UMONS
Les itérations – for

                                     #include 
                                     using namespace std;
                                     void main()
                                     {
                                         int nb_f=0;

                                         action;
                                         nb_f++;

                                         action;
                                          nb_f++;
                                                              …
                                          action;
                                          nb_f++;
                                          …
                                     }

M. BENJELLOUN   : BaB1 2020-2021                     - 52 -       UMONS
Les itérations – for

                                     #include 
                                     using namespace std;
                                     void main()
                                     {
                                       int nb_f=200;

                                         action;
                                         nb_f--;

                                         action;
                                         nb_f--;

                                         action;
                                         nb_f--;
                                         …
                                     }

M. BENJELLOUN   : BaB1 2020-2021                   - 53 -   UMONS
Les itérations – for
          #include                          #include 
          using namespace std;                        using namespace std;
          void main() {                               void main() {
            int nb_f=0;                                 int nb_f=200;

              action;                                     action;
              nb_f++;                                     nb_f--;

              action;                                     action;
              nb_f++;                                     nb_f--;

              action;                                     action;
              nb_f++;                                     nb_f--;
              …                                           …
          }                                           }

                                                     : évaluée 1 seule fois en début de boucle
                                                     : évaluée avant chaque itération.
for (;;)          Si vrai alors les
  {                                                        instructions de la boucle sont exécutées
      ;                                          Sinon
  }                                                        la boucle est terminée
                                                      évaluée à la fin de chaque itération

 M. BENJELLOUN   : BaB1 2020-2021                  - 54 -                                            UMONS
Les itérations – for
         #include                              #include 
         using namespace std;                            using namespace std;
         void main() {                                   void main() {
           int nb_f=0;                                     int nb_f=200;

             action;                                         action;
             nb_f++;                                         nb_f--;

             action;                                         action;
             nb_f++;                                         nb_f--;

             action;                                         action;
             nb_f++;                                         nb_f--;
             …                                               …
         }                                               }

  for (nb_f = 0; nb_f 0; nb_f--) {
      action;                                                          action;
  }                      for (nb_f = 0; nb_f 0;   ){
                             action;                                        action;
                             nb_f ++;                                       nb_f--;
                         }                                              }
M. BENJELLOUN   : BaB1 2020-2021                     - 55 -                                         UMONS
Les itérations – for
         La boucle for est une structure de contrôle de programmation qui permet de répéter
         l'exécution d’une ou plusieurs actions.

          for (i = 0; i
while = Tant que ... Faire ...
                                              Boucle pré-testée

                      tant que (expression vraie)                          tant que, pas jusqu’à ce que !
                      faire {
                                BLOC D'INSTRUCTIONS
                              }

    Organigramme:                                    Syntaxe:

                                                     while (Condition    vraie)   int i=1, Som=0;
                oui
                       Condition
                                    non              {                            while (i
while = Tant que ... Faire ...

Exemples
                       i=1;                                  Interieur   1
                       while(i
while = Tant que ... Faire ...

Exemples
                       i=1;                                  Interieur   1
                       while(i
do while = REPETER … tant que
                                                      (garantit l’exécution au moins une fois)

                    programme
                                                               do
                         Bloc                                  { /* bloc d'instructions */
                    d’instructions
                                                                 ............;
                                                                 ............;
            oui
                       Condition
                                     non
                                                               } while (Condition vraie);
                         vraie
                                     Suite du programme

                      int j = 5;                                      j = 5
                      do {                                            j = 4
                         cout
Les itérations
        for( init ; (Condition vraie); itération)                         for (i = 0; i
Les structures de contrôle

    Alternative:                        if-else

    Itérations:                         for, while, do-while

    Rupture de Contrôle:                break, continue, return …

    Choix Multiple:                     switch-case

M. BENJELLOUN   : BaB1 2020-2021          - 62 -                    UMONS
Vous pouvez aussi lire