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 3
PGambette
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5
PGambette
 
INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2INF120 - Algo DUT SRC1 - Cours 2
INF120 - Algo DUT SRC1 - Cours 2
PGambette
 
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 2
PGambette
 
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
PGambette
 

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

Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 

Dernier (16)

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 

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