SlideShare une entreprise Scribd logo
DUT SRC – IUT de Marne-la-Vallée
          07/11/2012
    INF120 - Algorithmique




      Cours 3
Tableaux et boucles




                                   Philippe Gambette
Sources

 • Le livre de Java premier langage, d'A. Tasso
 • Cours INF120 de J.-G. Luque
 • Cours FLIN102 de l'Université Montpellier 2
 • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html
 • http://xkcd.com, http://xkcd.free.fr
Plan du cours 3 – Tableaux et boucles

 • Résumé des épisodes précédents
 • Correction du QCM2
 • Les tableaux
 • Lecture du contenu d'un tableau
 • Dessin d'un graphique à partir du contenu d'un tableau
 • La boucle “for” / “pour tout”




                        Chargée de TD : Fadhela Kerdjoudj
Résumé des épisodes précédents

 Du problème au programme pour le résoudre :

  problème                                        algorithme                           code source
                     connaissance des outils                      traduction directe
                     disponibles + intuition
                                                                                 compilation javac
                                                   traduction directe

                                             organigramme                              programme
                                                                                   exécution java

 Codage des données :
 • Pour chaque type de variable (entiers, flottants, chaînes de caractères,
 couleurs, booléens), une méthode de codage en binaire est choisie
 (en Java : int, float, double, String, Color, boolean, ...)

 • Définition d'opérations de base pour chaque type de données
 (en Java : +, -, *, /, %, &&, ||, !, ...)
Correction du QCM2

QCM 2 – Pour chaque question, choisir une seule réponse, la plus adaptée. Il est possible
que plusieurs soient considérées comme correctes. Si vous avez un doute, écrivez des
commentaires à côté de votre réponse (ou au verso).

Q1. Quelle valeur contient a après la suite d’instructions suivante en pseudo-code ? (92%)
a ← 4; b ← 2; a ← a+b;
• 2 • 4 • 6 • 24 • 42 • a+b
• "2"     • "4"     • "6"    • "24"    • "42"    • "a+b"        • une erreur
Q2. Quelle valeur contient a après la suite d’instructions suivante en Java ? (39%)
a="4"; b="2"; a=a+b;
• 2 • 4 • 6 • 24 • 42 • a+b
• "2"     • "4"     • "6"    • "24"    • "42"    • "a+b"        • une erreur
Q3. Quelle valeur contient c après la suite d’instructions suivante en Java ? (88%)
a=3; b=2; c=a+b; b=3;
• 2 • 3 • 5 • 6 • 32 • "2"        • "3"     • "5"     • "6"     • "32"    • une erreur
Q4. Quelle est la valeur de a à la fin de cette suite d'instructions en Java ? (66%)
a=3; b=2; if(a>b) {a=b+a;} else {a=b;} b=1;
• 1 • 2 • 3 • 4 • 5 • 8 • 9
• "1"     • "2"     • "3"    • "4"     • "5"     • "8"     • "9"
Q5. Deux étudiants qui doivent coder le même algorithme, de manière indépendante : (48%)
• obtiennent forcément le même pseudo-code et le même code Java
• obtiennent forcément le même pseudo-code mais pas forcément le même code Java
• n'obtiennent pas forcément le même pseudo-code mais forcément le même code Java
• n'obtiennent pas forcément le même pseudo-code ni le même code Java
Plan du cours 3 – Tableaux et boucles

 • Résumé des épisodes précédents
 • Correction du QCM2
 • Les tableaux
 • Lecture du contenu d'un tableau
 • Dessin d'un graphique à partir du contenu d'un tableau
 • La boucle “for” / “pour tout”
Les tableaux

   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
   Par exemple,
   Un tableau d'entiers :        Un tableau de chaînes de caractères :
       4                             “chaine1”
       5                             “chaine2”
       1                             “blabla”
       23                            “toto”
       8
       9
Les tableaux

   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
   Par exemple,
   Un tableau d'entiers :        Un tableau de chaînes de caractères :
       4            case 1           “chaine1”
       5            case 2           “chaine2”      longueur d'un tableau
       1            case 3           “blabla”       = nombre de cases
       23           case 4           “toto”
       8            case 5
                                     longueur 4
       9            case 6
   longueur 6
Les tableaux
                                                                 en pseudo-code
   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
                          Variables :      tableau1, un tableau d'entiers,
   Par exemple,
                                           tableau2, un tableau de chaînes de caractères
   Un tableau d'entiers :               Un tableau de chaînes de caractères :
       4              case 1                “chaine1”
       5              case 2                “chaine2”        longueur d'un tableau
       1              case 3                “blabla”         = nombre de cases
       23             case 4                “toto”                 Longueur(tableau2)
       8              case 5
                                           longueur 4
       9              case 6                                 tableau2←NouveauTableau(4)
                                                             Case(tableau2,1)←”chaine1”
   longueur 6     tableau1←NouveauTableau(6)                 Case(tableau2,2)←”chaine2”
                  Case(tableau1,1)←4                         Case(tableau2,3)←”blabla”
                  Case(tableau1,2)←5                         Case(tableau2,4)←”toto”
                  Case(tableau1,3)←1
                  Case(tableau1,4)←23      Plus court :
                  Case(tableau1,5)←8       tableau1←{4,5,1,23,8,9}
                  Case(tableau1,6)←9       tableau2←{”chaine1”,”chaine2”,”blabla”,”toto”}
Les tableaux
                                                                         en Java
   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
                        int[] tableau1; String[] tableau2;
   Par exemple,
   Un tableau d'entiers :        Un tableau de chaînes de caractères :
       4            case 1           “chaine1”
       5            case 2           “chaine2”     longueur d'un tableau
       1            case 3           “blabla”      = nombre de cases
       23           case 4           “toto”             tableau2.length
       8            case 5
                                    longueur 4
       9            case 6                        tableau2=new String[4];
                                                  tableau2[0]=”chaine1”;
   longueur 6                                     tableau2[1]=”chaine2”;
tableau1=new int[6];                              tableau2[2]=”blabla”;
tableau1[0]=4;                                    tableau2[3]=”toto”;
tableau1[1]=5;
tableau1[2]=1;
tableau1[3]=23;
tableau1[4]=8;
tableau1[5]=9;
Les tableaux
                                                                         en Java
   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
                        int[] tableau1; String[] tableau2;
   Par exemple,
   Un tableau d'entiers :        Un tableau de chaînes de caractères :
       4            case 1           “chaine1”
       5            case 2           “chaine2”     longueur d'un tableau
       1            case 3           “blabla”      = nombre de cases
       23           case 4           “toto”             tableau2.length
       8            case 5
                                    longueur 4
       9            case 6                        tableau2=new String[4];
                                                  tableau2[0]=”chaine1”;
   longueur 6                                     tableau2[1]=”chaine2”;
tableau1=new int[6];                              tableau2[2]=”blabla”;
tableau1[0]=4;                                    tableau2[3]=”toto”;
tableau1[1]=5;
tableau1[2]=1;
tableau1[3]=23;                     Attention, cases du tableau t numérotées
tableau1[4]=8;                      de 0 à t.length-1 en Java.
tableau1[5]=9;
Les tableaux
                                                                         en Java
   Les tableaux sont des variables qui contiennent plusieurs variables de
   même type, stockées chacune dans une des cases du tableau.
                        int[] tableau1; String[] tableau2;
   Par exemple,
   Un tableau d'entiers :        Un tableau de chaînes de caractères :
       4            case 1           “chaine1”
       5            case 2           “chaine2”     longueur d'un tableau
       1            case 3           “blabla”      = nombre de cases
       23           case 4           “toto”             tableau2.length
       8            case 5
                                    longueur 4
       9            case 6                        tableau2=new String[4];
                                                  tableau2[0]=”chaine1”;
   longueur 6                                     tableau2[1]=”chaine2”;
tableau1=new int[6];                              tableau2[2]=”blabla”;
tableau1[0]=4;                                    tableau2[3]=”toto”;
tableau1[1]=5;
tableau1[2]=1;   Plus court (déclaration + initialisation) :
tableau1[3]=23;
tableau1[4]=8;   int[] tableau1 = {4,5,1,23,8,9};
                 String[] tableau2 = {”chaine1”,”chaine2”,”blabla”,”toto”};
tableau1[5]=9;
Les tableaux

   Pour lire le contenu d'un tableau...
   il faut une boucle pour aller lire chaque case !


   Si le tableau a été prévu trop court au début, impossible de changer sa
   longueur... il faut une boucle pour le recopier dans un tableau plus grand !


   Possibilité de créer des tableaux de tableaux...


   Manipulation et expériences en TD/TP...
Plan du cours 3 – Tableaux et boucles

 • Résumé des épisodes précédents
 • Correction du QCM2
 • Les tableaux
 • Lecture du contenu d'un tableau
 • Dessin d'un graphique à partir du contenu d'un tableau
 • La boucle “for” / “pour tout”
Affichage du contenu d'un tableau d'entiers

    Algorithme AfficheTableau




    public static        AfficheTableau(   tableau1){
Affichage du contenu d'un tableau d'entiers

    Algorithme AfficheTableau
    Variable d'entrée : tableau d'entiers tableau1
    Variable : entier i
    Début
      i←1
      Tant que i < Longueur(tableau1)+1 faire :
         Affiche(Case(tableau1,i))
         i ← i+1
      Fin TantQue
    Fin

    public static void AfficheTableau(int[] tableau1){
      //Afficher les cases du tableau tableau1
      int i;
      i = 0;
      while (i<tableau1.length){
        System.out.println(tableau1[i]);
        i = i+1;
      }
    }
Plan du cours 3 – Tableaux et boucles

 • Résumé des épisodes précédents
 • Correction du QCM2
 • Les tableaux
 • Lecture du contenu d'un tableau
 • Dessin d'un graphique à partir du contenu d'un tableau
 • La boucle “for” / “pour tout”
Graphique du nombre d'apparitions des mots d'un texte




                            J'ai cueilli ce brin de bruyère
                            L'automne est morte souviens-t'en
                            Nous ne nous verrons plus sur terre
                            Odeur du temps brin de bruyère
                            Et souviens-toi que je t'attends
Graphique du nombre d'apparitions des mots d'un texte
                 j          1
                 ai         1
      Un tableau cueilli    1
   de chaînes de ce         1
 caractères Mots brin       2
                 de         2
                 bruyère    2          J'ai cueilli ce brin de bruyère
                 l          1          L'automne est morte souviens-t'en
                 automne    1
                 est        1          Nous ne nous verrons plus sur terre
                 morte      1          Odeur du temps brin de bruyère
                 souviens   2          Et souviens-toi que je t'attends
                 t          2
                 en         1
                 nous       2
                 ne         1
                 verrons    1
                 plus       1
                 sur        1
                 terre      1
                 odeur      1
                 du         1
                 temps      1
                 et         1
                 toi        1
                 que        1
                 je         1
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1               Résultat voulu :
                 ai         1
      Un tableau cueilli    1
   de chaînes de ce         1
 caractères Mots brin       2
                 de         2
                 bruyère    2
                 l          1
                 automne    1
                 est        1
                 morte      1
                 souviens   2
                 t          2
                 en         1
                 nous       2
                 ne         1
                 verrons    1
                 plus       1
                 sur        1
                 terre      1
                 odeur      1
                 du         1
                 temps      1
                 et         1
                 toi        1
                 que        1
                 je         1
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable : entier i
                 ne         1     Début
                 verrons    1     i←1
                 plus       1     Tant que ... faire :
                 sur        1
                 terre      1
                 odeur      1
                 du         1
                 temps      1
                 et         1
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable : entier i
                 ne         1     Début
                 verrons    1     i←1
                 plus       1     Tant que i < Longueur(Mots)+1 faire :
                 sur        1
                 terre      1
                 odeur      1
                 du         1
                 temps      1
                 et         1
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable :
                 ne         1     Début
                 verrons    1     i←1
                 plus       1     Tant que i < Longueur(Mots)+1 faire : ...
                 sur        1           dessineRectanglePlein(0,40,4,10,
                 terre      1
                 odeur      1                couleurRGB(0,0,255))
                 du         1     …
                 temps      1           dessineRectanglePlein(4,40,4,10,
                 et         1                couleurRGB(0,0,255))
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                  j          1      (0,0)    Résultat voulu :
                  ai         1
       Un tableau cueilli    1                            (16,30)
    de chaînes de ce         1      (4,40)
  caractères Mots brin       2
                  de         2     (0,40)
                  bruyère    2
                  l          1
                  automne    1      (0,50)
                  est        1
                  morte      1     Algorithme DessineHistogramme
                  souviens   2     Entrée : tableau de chaînes de caractères Mots et
                  t          2
                                   tableau d'entiers NbApparitions.
                  en         1
                  nous       2     Variable :
                  ne         1     Début                 x
i     x    4i     verrons    1     i←1
                  plus       1     Tant que i < Longueur(Mots)+1 faire : ...
1     0    4      sur        1
2     4    8                             dessineRectanglePlein(0,40,4,10,
                  terre      1
3     8    12     odeur      1                couleurRGB(0,0,255))
4     12 16       du         1     …
...               temps      1           dessineRectanglePlein(4,40,4,10,
                  et         1                couleurRGB(0,0,255))
                  toi        1     Fin TantQue
                  que        1
                  je         1
                                   Fin
                  attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable :
                 ne         1     Début                 x
                 verrons    1     i←1                              y
                 plus       1     Tant que i < Longueur(Mots)+1 faire : ...
                 sur        1           dessineRectanglePlein(0,40,4,10,
                 terre      1
                 odeur      1                couleurRGB(0,0,255)) h
                 du         1     …
                 temps      1           dessineRectanglePlein(4,40,4,10,
                 et         1                couleurRGB(0,0,255))
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2                                         y
                 de         2     (0,40)                                  50
                 bruyère    2
                                                                      h
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable :
                 ne         1     Début                 x
                 verrons    1     i←1                              y
                 plus       1     Tant que i < Longueur(Mots)+1 faire : ...
                 sur        1           dessineRectanglePlein(0,40,4,10,
                 terre      1
                 odeur      1                couleurRGB(0,0,255)) h
                 du         1     …
                 temps      1           dessineRectanglePlein(4,40,4,10,
                 et         1                couleurRGB(0,0,255))
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2                                          y
                 de         2     (0,40)                                   50
                 bruyère    2
                                                                       h
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable :
                 ne         1     Début                 x = 4(i-1)
                 verrons    1     i←1
                 plus       1     Tant que i < Longueur(Mots)+1 faire : ...
                 sur        1           dessineRectanglePlein(0,40,4,10,
                 terre      1
                 odeur      1                couleurRGB(0,0,255)) h = 10*Case
                 du         1     …                                      (NbApparitions,i)
                 temps      1           dessineRectanglePlein(4,40,4,10,
                 et         1                couleurRGB(0,0,255))
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2                                          y
                 de         2     (0,40)                                   50
                 bruyère    2                                                ⇒ y=50-h
                                                                       h
                 l          1
                 automne    1      (0,50)
                 est        1               i:123
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable :
                 ne         1     Début                 x = 4(i-1)
                 verrons    1     i←1                              y = 50-10*Case
                 plus       1                                         (NbApparitions,i)
                                  Tant que i < Longueur(Mots)+1 faire : ...
                 sur        1           dessineRectanglePlein(0,40,4,10,
                 terre      1
                 odeur      1                couleurRGB(0,0,255)) h = 10*Case
                 du         1     …                                      (NbApparitions,i)
                 temps      1           dessineRectanglePlein(4,40,4,10,
                 et         1                couleurRGB(0,0,255))
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable : entier i
                 ne         1     Début
                 verrons    1     i←1
                 plus       1     Tant que i < Longueur(Mots)+1 faire :
                 sur        1          dessineRectanglePlein(i*4-4,
                 terre      1
                 odeur      1                50-10*Case(NbApparitions,i),
                 du         1                4,10*Case(NbApparitions,i),
                 temps      1                couleurRGB(0,0,255))
                 et         1
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Graphique du nombre d'apparitions des mots d'un texte
                 j          1      (0,0)    Résultat voulu :
                 ai         1
      Un tableau cueilli    1                            (16,30)
   de chaînes de ce         1      (4,40)
 caractères Mots brin       2
                 de         2     (0,40)
                 bruyère    2
                 l          1
                 automne    1      (0,50)
                 est        1
                 morte      1     Algorithme DessineHistogramme
                 souviens   2     Entrée : tableau de chaînes de caractères Mots et
                 t          2
                                  tableau d'entiers NbApparitions.
                 en         1
                 nous       2     Variable : entier i
                 ne         1     Début
                 verrons    1     i←1
                 plus       1     Tant que i < Longueur(Mots)+1 faire :
                 sur        1           dessineRectanglePlein(i*4-4,
                 terre      1
                 odeur      1                50-10*Case(NbApparitions,i),
                 du         1                4,10*Case(NbApparitions,i),
                 temps      1                couleurRGB(0,0,255))
                 et         1           i←1+i
                 toi        1     Fin TantQue
                 que        1
                 je         1
                                  Fin
                 attends    1   Un tableau d'entiers NbApparitions
Le nombre d'apparitions d'un mot dans un texte

   La “minute mathématique”
   La loi de Zipf prédit la courbe du nombre d'apparitions des mots les plus
   fréquents d'un texte.
               y = nombre d'apparitions du x-ième
               mot le plus fréquent dans le texte
             140

             120

             100

             80
                                                                           Nombre réel d'apparition des mots
             60                                                            Nombre estimé d'apparition des
                                                                           mots

             40

             20

              0                                                                   x = numéro du mot (1
                    3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71
                   1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73
                                                                                  pour le plus fréquent, 2
                                                                                  pour le 2° plus
                                                                                  fréquent...)
Le nombre d'apparitions d'un mot dans un texte

   La “minute mathématique”
   La loi de Zipf prédit la courbe du nombre d'apparitions des mots les plus
   fréquents d'un texte.
               y = nombre d'apparitions du x-ième
               mot le plus fréquent dans le texte
             140

             120

             100

             80
                                                                           Nombre réel d'apparition des mots
             60                                                            Nombre estimé d'apparition des
                                                                           mots

             40
                                                                                      y=250/(x+1)
             20

              0                                                                   x = numéro du mot (1
                    3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71
                   1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73
                                                                                  pour le plus fréquent, 2
                                                                                  pour le 2° plus
                                                                                  fréquent...)


          Fonctionne pour n'importe quel texte assez long...
Plan du cours 3 – Tableaux et boucles

 • Résumé des épisodes précédents
 • Correction du QCM2
 • Les tableaux
 • Lecture du contenu d'un tableau
 • Dessin d'un graphique à partir du contenu d'un tableau
 • La boucle “for” / “pour tout”
La boucle “for” / “Pour tout...”


   Pour parcourir tous les entiers entre deux valeurs entières.



   En pseudo-code :
   Pour tout entier i de 1 à 42 faire :
        …
   Fin Pour


   En Java :
   for(int i=1;i<43;i++){
       …
   }
La boucle “for” / “Pour tout...”

   Exemple : parcours des cases d'un tableau


   En pseudo-code avec Tant que :
   Variables : tableau d'entiers tab, entier i
   i←1
   Tant que i < Longueur(tab)+1 faire :
        [des choses avec la i-ième case du tableau Case(tab,i)...]
        i ← i+1
   Fin Tant que


   En pseudo-code avec Pour :
   Variables : tableau d'entiers tab, entier i
   Pour i de 1 à Longueur(tab) faire :
        [des choses avec la i-ième case du tableau Case(tab,i)...]
   Fin Pour
La boucle “for” / “Pour tout...”


   Pour parcourir tous les entiers entre deux valeurs entières.



   En pseudo-code :
   Pour tout entier i de 1 à 42 faire :
        …
   Fin Pour


   En Java :                              En Java avec while :
   for(int i=1;i<43;i++){                 int i=1;
       …                                  while(i<43){
   }                                      …
                                          i++;
                                          }
La boucle “for” / “Pour tout...”


   Pour parcourir tous les entiers entre deux valeurs entières.



   En pseudo-code :
   Pour tout entier i de 1 à 42 faire :
        …
   Fin Pour


   En Java :                              En Java avec while :
   for(int i=1;i<43;i++){                 int i=1;
       …                                  while(i<43){
   }                                      …
                                          i++;
                                          }
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                       Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et   Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                    tableau d'entiers NbApparitions.
Variable : entier compteur                          Variable : entier compteur
Début                                               Début
compteur ← 1                                        Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :             dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                      50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                 4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                  couleurRGB(0,0,255))
           couleurRGB(0,0,255))                          compteur ← 1 + compteur
      compteur ← 1 + compteur                       Fin Pour
Fin TantQue                                         Fin
Fin
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                       Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et   Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                    tableau d'entiers NbApparitions.
Variable : entier compteur                          Variable : entier compteur
Début                                               Début
compteur ← 1                                        Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :             dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                      50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                 4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                  couleurRGB(0,0,255))
           couleurRGB(0,0,255))                          compteur ← 1 + compteur
      compteur ← 1 + compteur                       Fin Pour
Fin TantQue                                         Fin
Fin

En Java :
int compteur;
compteur=1;
while(compteur<mots.length+1) {            for(int compteur=1;compteur<mots.length+1;compteur++){
     …                                          …
}                                          }
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                           Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et       Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                        tableau d'entiers NbApparitions.
Variable : entier compteur                              Variable : entier compteur
Début                                                   Début
compteur ← 1                                            Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :                 dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                          50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                     4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                      couleurRGB(0,0,255))
           couleurRGB(0,0,255))                              compteur ← 1 + compteur
      compteur ← 1 + compteur                           Fin Pour
Fin TantQue                                             Fin
Fin
                                                    déclaration +
En Java :
int compteur;                                       initialisation
compteur=1;
while(compteur<mots.length+1) {            for(int compteur=1;compteur<mots.length+1;compteur++){
     …                                          …
}                                          }
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                           Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et       Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                        tableau d'entiers NbApparitions.
Variable : entier compteur                              Variable : entier compteur
Début                                                   Début
compteur ← 1                                            Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :                 dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                          50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                     4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                      couleurRGB(0,0,255))
           couleurRGB(0,0,255))                              compteur ← 1 + compteur
      compteur ← 1 + compteur                           Fin Pour
Fin TantQue                                             Fin
Fin
                                                    déclaration +
En Java :                                                               condition d'arrêt
int compteur;                                       initialisation
compteur=1;
while(compteur<mots.length+1) {            for(int compteur=1;compteur<mots.length+1;compteur++){
     …                                          …
}                                          }
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                           Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et       Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                        tableau d'entiers NbApparitions.
Variable : entier compteur                              Variable : entier compteur
Début                                                   Début
compteur ← 1                                            Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :                 dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                          50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                     4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                      couleurRGB(0,0,255))
           couleurRGB(0,0,255))                              compteur ← 1 + compteur
      compteur ← 1 + compteur                           Fin Pour
Fin TantQue                                             Fin
Fin
                                                    déclaration +
En Java :                                                               condition d'arrêt    mise à jour
int compteur;                                       initialisation
compteur=1;
while(compteur<mots.length+1) {            for(int compteur=1;compteur<mots.length+1;compteur++){
     …                                          …
}                                          }
La boucle “for” / “Pour tout...”

  La boucle “for” / “Pour tout”
  Une boucle pour parcourir tous les entiers entre deux valeurs entières.

Algorithme DessineHistogramme                           Algorithme DessineHistogramme
Entrée : tableau de chaînes de caractères Mots et       Entrée : tableau de chaînes de caractères Mots et
tableau d'entiers NbApparitions.                        tableau d'entiers NbApparitions.
Variable : entier compteur                              Variable : entier compteur
Début                                                   Début
compteur ← 1                                            Pour compteur de 1 à Longueur(Mots) faire :
Tant que compteur < Longueur(Mots)+1 faire :                 dessineRectanglePlein(compteur*4-4,
      dessineRectanglePlein(compteur*4-4,                          50-10*Case(NbApparitions,compteur),
           50-10*Case(NbApparitions,compteur),                     4,10*Case(NbApparitions,compteur),
           4,10*Case(NbApparitions,compteur),                      couleurRGB(0,0,255))
           couleurRGB(0,0,255))                              compteur ← 1 + compteur
      compteur ← 1 + compteur                           Fin Pour
Fin TantQue                                             Fin
Fin
                                                    déclaration +
En Java :                                                               condition d'arrêt    mise à jour
int compteur;                                       initialisation
compteur=1;
while(compteur<mots.length+1){             for(int compteur=1;compteur<mots.length+1;compteur++){
     …                                          …
}                                          }                   compteur=compteur+1
                                                                                   compteur+=1
La copie d'un tableau


   Pour copier le contenu d'un tableau d'entiers t1 dans un nouveau
   tableau d'entiers t2.
   En Java :
   public static int[] Copie(int[] t1){
      int[] t2;
      t2=new int[t1.length];
      int i=0;
      while(i<t1.length){
         t2[i]=t1[i];
         i=i+1;
      }
      return t2;
   }

Contenu connexe

En vedette

INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5PGambette
 
INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2PGambette
 
INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)PGambette
 
INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1PGambette
 
INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2PGambette
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleLilia Sfaxi
 
Chap III : Cours de Modélisation & Simulation des systèmes
Chap III : Cours de Modélisation & Simulation des systèmesChap III : Cours de Modélisation & Simulation des systèmes
Chap III : Cours de Modélisation & Simulation des systèmesMohammed TAMALI
 
Le bassin versant
Le bassin versantLe bassin versant
Le bassin versantEssam Ssam
 

En vedette (20)

INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5
 
INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2
 
INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)
 
INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)INF120 - Algo DUT SRC1 - Cours 2 (2012)
INF120 - Algo DUT SRC1 - Cours 2 (2012)
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1
 
INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2
 
LES JOINTURES
LES JOINTURESLES JOINTURES
LES JOINTURES
 
juin2005
juin2005juin2005
juin2005
 
pjuin2005
pjuin2005pjuin2005
pjuin2005
 
Tunisia_En
Tunisia_EnTunisia_En
Tunisia_En
 
mars2005_SIG
mars2005_SIGmars2005_SIG
mars2005_SIG
 
mars2005_BD
mars2005_BDmars2005_BD
mars2005_BD
 
fev2004rgph2004
fev2004rgph2004fev2004rgph2004
fev2004rgph2004
 
Oct2004presentSIG
Oct2004presentSIGOct2004presentSIG
Oct2004presentSIG
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
 
Chap III : Cours de Modélisation & Simulation des systèmes
Chap III : Cours de Modélisation & Simulation des systèmesChap III : Cours de Modélisation & Simulation des systèmes
Chap III : Cours de Modélisation & Simulation des systèmes
 
Le bassin versant
Le bassin versantLe bassin versant
Le bassin versant
 
Access 2007 verrou
Access 2007 verrouAccess 2007 verrou
Access 2007 verrou
 

Dernier

Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24BenotGeorges3
 
Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielM2i Formation
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfTOP AUTO CIV
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxMartin M Flynn
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurNdeyeAminataDond
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016ImnaTech
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptxschneiderbeatrice78
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptxSAIDALI701276
 
support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...ABDELHADI ENNAIR
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxbibliogard
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfGERESO
 

Dernier (13)

Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distanciel
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdf
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieur
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 
support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 

INF120 - Algo DUT SRC1 - Cours 3 (2012)

  • 1. DUT SRC – IUT de Marne-la-Vallée 07/11/2012 INF120 - Algorithmique Cours 3 Tableaux et boucles Philippe Gambette
  • 2. Sources • Le livre de Java premier langage, d'A. Tasso • Cours INF120 de J.-G. Luque • Cours FLIN102 de l'Université Montpellier 2 • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html • http://xkcd.com, http://xkcd.free.fr
  • 3. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu d'un tableau • Dessin d'un graphique à partir du contenu d'un tableau • La boucle “for” / “pour tout” Chargée de TD : Fadhela Kerdjoudj
  • 4. Résumé des épisodes précédents Du problème au programme pour le résoudre : problème algorithme code source connaissance des outils traduction directe disponibles + intuition compilation javac traduction directe organigramme programme exécution java Codage des données : • Pour chaque type de variable (entiers, flottants, chaînes de caractères, couleurs, booléens), une méthode de codage en binaire est choisie (en Java : int, float, double, String, Color, boolean, ...) • Définition d'opérations de base pour chaque type de données (en Java : +, -, *, /, %, &&, ||, !, ...)
  • 5. Correction du QCM2 QCM 2 – Pour chaque question, choisir une seule réponse, la plus adaptée. Il est possible que plusieurs soient considérées comme correctes. Si vous avez un doute, écrivez des commentaires à côté de votre réponse (ou au verso). Q1. Quelle valeur contient a après la suite d’instructions suivante en pseudo-code ? (92%) a ← 4; b ← 2; a ← a+b; • 2 • 4 • 6 • 24 • 42 • a+b • "2" • "4" • "6" • "24" • "42" • "a+b" • une erreur Q2. Quelle valeur contient a après la suite d’instructions suivante en Java ? (39%) a="4"; b="2"; a=a+b; • 2 • 4 • 6 • 24 • 42 • a+b • "2" • "4" • "6" • "24" • "42" • "a+b" • une erreur Q3. Quelle valeur contient c après la suite d’instructions suivante en Java ? (88%) a=3; b=2; c=a+b; b=3; • 2 • 3 • 5 • 6 • 32 • "2" • "3" • "5" • "6" • "32" • une erreur Q4. Quelle est la valeur de a à la fin de cette suite d'instructions en Java ? (66%) a=3; b=2; if(a>b) {a=b+a;} else {a=b;} b=1; • 1 • 2 • 3 • 4 • 5 • 8 • 9 • "1" • "2" • "3" • "4" • "5" • "8" • "9" Q5. Deux étudiants qui doivent coder le même algorithme, de manière indépendante : (48%) • obtiennent forcément le même pseudo-code et le même code Java • obtiennent forcément le même pseudo-code mais pas forcément le même code Java • n'obtiennent pas forcément le même pseudo-code mais forcément le même code Java • n'obtiennent pas forcément le même pseudo-code ni le même code Java
  • 6. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu d'un tableau • Dessin d'un graphique à partir du contenu d'un tableau • La boucle “for” / “pour tout”
  • 7. Les tableaux Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. Par exemple, Un tableau d'entiers : Un tableau de chaînes de caractères : 4 “chaine1” 5 “chaine2” 1 “blabla” 23 “toto” 8 9
  • 8. Les tableaux Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. Par exemple, Un tableau d'entiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur d'un tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” 8 case 5 longueur 4 9 case 6 longueur 6
  • 9. Les tableaux en pseudo-code Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. Variables : tableau1, un tableau d'entiers, Par exemple, tableau2, un tableau de chaînes de caractères Un tableau d'entiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur d'un tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” Longueur(tableau2) 8 case 5 longueur 4 9 case 6 tableau2←NouveauTableau(4) Case(tableau2,1)←”chaine1” longueur 6 tableau1←NouveauTableau(6) Case(tableau2,2)←”chaine2” Case(tableau1,1)←4 Case(tableau2,3)←”blabla” Case(tableau1,2)←5 Case(tableau2,4)←”toto” Case(tableau1,3)←1 Case(tableau1,4)←23 Plus court : Case(tableau1,5)←8 tableau1←{4,5,1,23,8,9} Case(tableau1,6)←9 tableau2←{”chaine1”,”chaine2”,”blabla”,”toto”}
  • 10. Les tableaux en Java Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. int[] tableau1; String[] tableau2; Par exemple, Un tableau d'entiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur d'un tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” tableau2.length 8 case 5 longueur 4 9 case 6 tableau2=new String[4]; tableau2[0]=”chaine1”; longueur 6 tableau2[1]=”chaine2”; tableau1=new int[6]; tableau2[2]=”blabla”; tableau1[0]=4; tableau2[3]=”toto”; tableau1[1]=5; tableau1[2]=1; tableau1[3]=23; tableau1[4]=8; tableau1[5]=9;
  • 11. Les tableaux en Java Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. int[] tableau1; String[] tableau2; Par exemple, Un tableau d'entiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur d'un tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” tableau2.length 8 case 5 longueur 4 9 case 6 tableau2=new String[4]; tableau2[0]=”chaine1”; longueur 6 tableau2[1]=”chaine2”; tableau1=new int[6]; tableau2[2]=”blabla”; tableau1[0]=4; tableau2[3]=”toto”; tableau1[1]=5; tableau1[2]=1; tableau1[3]=23; Attention, cases du tableau t numérotées tableau1[4]=8; de 0 à t.length-1 en Java. tableau1[5]=9;
  • 12. Les tableaux en Java Les tableaux sont des variables qui contiennent plusieurs variables de même type, stockées chacune dans une des cases du tableau. int[] tableau1; String[] tableau2; Par exemple, Un tableau d'entiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur d'un tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” tableau2.length 8 case 5 longueur 4 9 case 6 tableau2=new String[4]; tableau2[0]=”chaine1”; longueur 6 tableau2[1]=”chaine2”; tableau1=new int[6]; tableau2[2]=”blabla”; tableau1[0]=4; tableau2[3]=”toto”; tableau1[1]=5; tableau1[2]=1; Plus court (déclaration + initialisation) : tableau1[3]=23; tableau1[4]=8; int[] tableau1 = {4,5,1,23,8,9}; String[] tableau2 = {”chaine1”,”chaine2”,”blabla”,”toto”}; tableau1[5]=9;
  • 13. Les tableaux Pour lire le contenu d'un tableau... il faut une boucle pour aller lire chaque case ! Si le tableau a été prévu trop court au début, impossible de changer sa longueur... il faut une boucle pour le recopier dans un tableau plus grand ! Possibilité de créer des tableaux de tableaux... Manipulation et expériences en TD/TP...
  • 14. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu d'un tableau • Dessin d'un graphique à partir du contenu d'un tableau • La boucle “for” / “pour tout”
  • 15. Affichage du contenu d'un tableau d'entiers Algorithme AfficheTableau public static AfficheTableau( tableau1){
  • 16. Affichage du contenu d'un tableau d'entiers Algorithme AfficheTableau Variable d'entrée : tableau d'entiers tableau1 Variable : entier i Début i←1 Tant que i < Longueur(tableau1)+1 faire : Affiche(Case(tableau1,i)) i ← i+1 Fin TantQue Fin public static void AfficheTableau(int[] tableau1){ //Afficher les cases du tableau tableau1 int i; i = 0; while (i<tableau1.length){ System.out.println(tableau1[i]); i = i+1; } }
  • 17. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu d'un tableau • Dessin d'un graphique à partir du contenu d'un tableau • La boucle “for” / “pour tout”
  • 18. Graphique du nombre d'apparitions des mots d'un texte J'ai cueilli ce brin de bruyère L'automne est morte souviens-t'en Nous ne nous verrons plus sur terre Odeur du temps brin de bruyère Et souviens-toi que je t'attends
  • 19. Graphique du nombre d'apparitions des mots d'un texte j 1 ai 1 Un tableau cueilli 1 de chaînes de ce 1 caractères Mots brin 2 de 2 bruyère 2 J'ai cueilli ce brin de bruyère l 1 L'automne est morte souviens-t'en automne 1 est 1 Nous ne nous verrons plus sur terre morte 1 Odeur du temps brin de bruyère souviens 2 Et souviens-toi que je t'attends t 2 en 1 nous 2 ne 1 verrons 1 plus 1 sur 1 terre 1 odeur 1 du 1 temps 1 et 1 toi 1 que 1 je 1 attends 1 Un tableau d'entiers NbApparitions
  • 20. Graphique du nombre d'apparitions des mots d'un texte j 1 Résultat voulu : ai 1 Un tableau cueilli 1 de chaînes de ce 1 caractères Mots brin 2 de 2 bruyère 2 l 1 automne 1 est 1 morte 1 souviens 2 t 2 en 1 nous 2 ne 1 verrons 1 plus 1 sur 1 terre 1 odeur 1 du 1 temps 1 et 1 toi 1 que 1 je 1 attends 1 Un tableau d'entiers NbApparitions
  • 21. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : entier i ne 1 Début verrons 1 i←1 plus 1 Tant que ... faire : sur 1 terre 1 odeur 1 du 1 temps 1 et 1 toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 22. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : entier i ne 1 Début verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : sur 1 terre 1 odeur 1 du 1 temps 1 et 1 toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 23. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : ... sur 1 dessineRectanglePlein(0,40,4,10, terre 1 odeur 1 couleurRGB(0,0,255)) du 1 … temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 24. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début x i x 4i verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : ... 1 0 4 sur 1 2 4 8 dessineRectanglePlein(0,40,4,10, terre 1 3 8 12 odeur 1 couleurRGB(0,0,255)) 4 12 16 du 1 … ... temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 25. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début x verrons 1 i←1 y plus 1 Tant que i < Longueur(Mots)+1 faire : ... sur 1 dessineRectanglePlein(0,40,4,10, terre 1 odeur 1 couleurRGB(0,0,255)) h du 1 … temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 26. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 y de 2 (0,40) 50 bruyère 2 h l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début x verrons 1 i←1 y plus 1 Tant que i < Longueur(Mots)+1 faire : ... sur 1 dessineRectanglePlein(0,40,4,10, terre 1 odeur 1 couleurRGB(0,0,255)) h du 1 … temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 27. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 y de 2 (0,40) 50 bruyère 2 h l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début x = 4(i-1) verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : ... sur 1 dessineRectanglePlein(0,40,4,10, terre 1 odeur 1 couleurRGB(0,0,255)) h = 10*Case du 1 … (NbApparitions,i) temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 28. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 y de 2 (0,40) 50 bruyère 2 ⇒ y=50-h h l 1 automne 1 (0,50) est 1 i:123 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : ne 1 Début x = 4(i-1) verrons 1 i←1 y = 50-10*Case plus 1 (NbApparitions,i) Tant que i < Longueur(Mots)+1 faire : ... sur 1 dessineRectanglePlein(0,40,4,10, terre 1 odeur 1 couleurRGB(0,0,255)) h = 10*Case du 1 … (NbApparitions,i) temps 1 dessineRectanglePlein(4,40,4,10, et 1 couleurRGB(0,0,255)) toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 29. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : entier i ne 1 Début verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : sur 1 dessineRectanglePlein(i*4-4, terre 1 odeur 1 50-10*Case(NbApparitions,i), du 1 4,10*Case(NbApparitions,i), temps 1 couleurRGB(0,0,255)) et 1 toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 30. Graphique du nombre d'apparitions des mots d'un texte j 1 (0,0) Résultat voulu : ai 1 Un tableau cueilli 1 (16,30) de chaînes de ce 1 (4,40) caractères Mots brin 2 de 2 (0,40) bruyère 2 l 1 automne 1 (0,50) est 1 morte 1 Algorithme DessineHistogramme souviens 2 Entrée : tableau de chaînes de caractères Mots et t 2 tableau d'entiers NbApparitions. en 1 nous 2 Variable : entier i ne 1 Début verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : sur 1 dessineRectanglePlein(i*4-4, terre 1 odeur 1 50-10*Case(NbApparitions,i), du 1 4,10*Case(NbApparitions,i), temps 1 couleurRGB(0,0,255)) et 1 i←1+i toi 1 Fin TantQue que 1 je 1 Fin attends 1 Un tableau d'entiers NbApparitions
  • 31. Le nombre d'apparitions d'un mot dans un texte La “minute mathématique” La loi de Zipf prédit la courbe du nombre d'apparitions des mots les plus fréquents d'un texte. y = nombre d'apparitions du x-ième mot le plus fréquent dans le texte 140 120 100 80 Nombre réel d'apparition des mots 60 Nombre estimé d'apparition des mots 40 20 0 x = numéro du mot (1 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 pour le plus fréquent, 2 pour le 2° plus fréquent...)
  • 32. Le nombre d'apparitions d'un mot dans un texte La “minute mathématique” La loi de Zipf prédit la courbe du nombre d'apparitions des mots les plus fréquents d'un texte. y = nombre d'apparitions du x-ième mot le plus fréquent dans le texte 140 120 100 80 Nombre réel d'apparition des mots 60 Nombre estimé d'apparition des mots 40 y=250/(x+1) 20 0 x = numéro du mot (1 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 67 71 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 pour le plus fréquent, 2 pour le 2° plus fréquent...) Fonctionne pour n'importe quel texte assez long...
  • 33. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu d'un tableau • Dessin d'un graphique à partir du contenu d'un tableau • La boucle “for” / “pour tout”
  • 34. La boucle “for” / “Pour tout...” Pour parcourir tous les entiers entre deux valeurs entières. En pseudo-code : Pour tout entier i de 1 à 42 faire : … Fin Pour En Java : for(int i=1;i<43;i++){ … }
  • 35. La boucle “for” / “Pour tout...” Exemple : parcours des cases d'un tableau En pseudo-code avec Tant que : Variables : tableau d'entiers tab, entier i i←1 Tant que i < Longueur(tab)+1 faire : [des choses avec la i-ième case du tableau Case(tab,i)...] i ← i+1 Fin Tant que En pseudo-code avec Pour : Variables : tableau d'entiers tab, entier i Pour i de 1 à Longueur(tab) faire : [des choses avec la i-ième case du tableau Case(tab,i)...] Fin Pour
  • 36. La boucle “for” / “Pour tout...” Pour parcourir tous les entiers entre deux valeurs entières. En pseudo-code : Pour tout entier i de 1 à 42 faire : … Fin Pour En Java : En Java avec while : for(int i=1;i<43;i++){ int i=1; … while(i<43){ } … i++; }
  • 37. La boucle “for” / “Pour tout...” Pour parcourir tous les entiers entre deux valeurs entières. En pseudo-code : Pour tout entier i de 1 à 42 faire : … Fin Pour En Java : En Java avec while : for(int i=1;i<43;i++){ int i=1; … while(i<43){ } … i++; }
  • 38. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin
  • 39. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin En Java : int compteur; compteur=1; while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … … } }
  • 40. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin déclaration + En Java : int compteur; initialisation compteur=1; while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … … } }
  • 41. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin déclaration + En Java : condition d'arrêt int compteur; initialisation compteur=1; while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … … } }
  • 42. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin déclaration + En Java : condition d'arrêt mise à jour int compteur; initialisation compteur=1; while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … … } }
  • 43. La boucle “for” / “Pour tout...” La boucle “for” / “Pour tout” Une boucle pour parcourir tous les entiers entre deux valeurs entières. Algorithme DessineHistogramme Algorithme DessineHistogramme Entrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots et tableau d'entiers NbApparitions. tableau d'entiers NbApparitions. Variable : entier compteur Variable : entier compteur Début Début compteur ← 1 Pour compteur de 1 à Longueur(Mots) faire : Tant que compteur < Longueur(Mots)+1 faire : dessineRectanglePlein(compteur*4-4, dessineRectanglePlein(compteur*4-4, 50-10*Case(NbApparitions,compteur), 50-10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), 4,10*Case(NbApparitions,compteur), couleurRGB(0,0,255)) couleurRGB(0,0,255)) compteur ← 1 + compteur compteur ← 1 + compteur Fin Pour Fin TantQue Fin Fin déclaration + En Java : condition d'arrêt mise à jour int compteur; initialisation compteur=1; while(compteur<mots.length+1){ for(int compteur=1;compteur<mots.length+1;compteur++){ … … } } compteur=compteur+1 compteur+=1
  • 44. La copie d'un tableau Pour copier le contenu d'un tableau d'entiers t1 dans un nouveau tableau d'entiers t2. En Java : public static int[] Copie(int[] t1){ int[] t2; t2=new int[t1.length]; int i=0; while(i<t1.length){ t2[i]=t1[i]; i=i+1; } return t2; }