SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
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

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 

Dernier (16)

Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 

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; }