DUT SRC – IUT de Marne-la-Vallée          07/11/2012    INF120 - Algorithmique      Cours 3Tableaux et boucles            ...
Sources • Le livre de Java premier langage, dA. Tasso • Cours INF120 de J.-G. Luque • Cours FLIN102 de lUniversité Montpel...
Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du co...
Résumé des épisodes précédents Du problème au programme pour le résoudre :  problème                                      ...
Correction du QCM2QCM 2 – Pour chaque question, choisir une seule réponse, la plus adaptée. Il est possibleque plusieurs s...
Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du co...
Les tableaux   Les tableaux sont des variables qui contiennent plusieurs variables de   même type, stockées chacune dans u...
Les tableaux   Les tableaux sont des variables qui contiennent plusieurs variables de   même type, stockées chacune dans u...
Les tableaux                                                                 en pseudo-code   Les tableaux sont des variab...
Les tableaux                                                                         en Java   Les tableaux sont des varia...
Les tableaux                                                                         en Java   Les tableaux sont des varia...
Les tableaux                                                                         en Java   Les tableaux sont des varia...
Les tableaux   Pour lire le contenu dun tableau...   il faut une boucle pour aller lire chaque case !   Si le tableau a ét...
Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du co...
Affichage du contenu dun tableau dentiers    Algorithme AfficheTableau    public static        AfficheTableau(   tableau1){
Affichage du contenu dun tableau dentiers    Algorithme AfficheTableau    Variable dentrée : tableau dentiers tableau1    ...
Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du co...
Graphique du nombre dapparitions des mots dun texte                            Jai cueilli ce brin de bruyère             ...
Graphique du nombre dapparitions des mots dun texte                 j          1                 ai         1      Un tabl...
Graphique du nombre dapparitions des mots dun texte                 j          1               Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                  j          1      (0,0)    Résultat voulu :          ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Graphique du nombre dapparitions des mots dun texte                 j          1      (0,0)    Résultat voulu :           ...
Le nombre dapparitions dun mot dans un texte   La “minute mathématique”   La loi de Zipf prédit la courbe du nombre dappar...
Le nombre dapparitions dun mot dans un texte   La “minute mathématique”   La loi de Zipf prédit la courbe du nombre dappar...
Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du co...
La boucle “for” / “Pour tout...”   Pour parcourir tous les entiers entre deux valeurs entières.   En pseudo-code :   Pour ...
La boucle “for” / “Pour tout...”   Exemple : parcours des cases dun tableau   En pseudo-code avec Tant que :   Variables :...
La boucle “for” / “Pour tout...”   Pour parcourir tous les entiers entre deux valeurs entières.   En pseudo-code :   Pour ...
La boucle “for” / “Pour tout...”   Pour parcourir tous les entiers entre deux valeurs entières.   En pseudo-code :   Pour ...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La boucle “for” / “Pour tout...”  La boucle “for” / “Pour tout”  Une boucle pour parcourir tous les entiers entre deux val...
La copie dun tableau   Pour copier le contenu dun tableau dentiers t1 dans un nouveau   tableau dentiers t2.   En Java :  ...
Prochain SlideShare
Chargement dans…5
×

INF120 - Algo DUT SRC1 - Cours 3 (2012)

751 vues

Publié le

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
751
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
20
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

INF120 - Algo DUT SRC1 - Cours 3 (2012)

  1. 1. DUT SRC – IUT de Marne-la-Vallée 07/11/2012 INF120 - Algorithmique Cours 3Tableaux et boucles Philippe Gambette
  2. 2. Sources • Le livre de Java premier langage, dA. Tasso • Cours INF120 de J.-G. Luque • Cours FLIN102 de lUniversité Montpellier 2 • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html • http://xkcd.com, http://xkcd.free.fr
  3. 3. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu dun tableau • Dessin dun graphique à partir du contenu dun tableau • La boucle “for” / “pour tout” Chargée de TD : Fadhela Kerdjoudj
  4. 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 dopérations de base pour chaque type de données (en Java : +, -, *, /, %, &&, ||, !, ...)
  5. 5. Correction du QCM2QCM 2 – Pour chaque question, choisir une seule réponse, la plus adaptée. Il est possibleque plusieurs soient considérées comme correctes. Si vous avez un doute, écrivez descommentaires à 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 erreurQ2. 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 erreurQ3. 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 erreurQ4. Quelle est la valeur de a à la fin de cette suite dinstructions 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• nobtiennent pas forcément le même pseudo-code mais forcément le même code Java• nobtiennent pas forcément le même pseudo-code ni le même code Java
  6. 6. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu dun tableau • Dessin dun graphique à partir du contenu dun tableau • La boucle “for” / “pour tout”
  7. 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 dentiers : Un tableau de chaînes de caractères : 4 “chaine1” 5 “chaine2” 1 “blabla” 23 “toto” 8 9
  8. 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 dentiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur dun tableau 1 case 3 “blabla” = nombre de cases 23 case 4 “toto” 8 case 5 longueur 4 9 case 6 longueur 6
  9. 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 dentiers, Par exemple, tableau2, un tableau de chaînes de caractères Un tableau dentiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur dun 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. 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 dentiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur dun 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. 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 dentiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur dun 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éestableau1[4]=8; de 0 à t.length-1 en Java.tableau1[5]=9;
  12. 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 dentiers : Un tableau de chaînes de caractères : 4 case 1 “chaine1” 5 case 2 “chaine2” longueur dun 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. 13. Les tableaux Pour lire le contenu dun 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. 14. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu dun tableau • Dessin dun graphique à partir du contenu dun tableau • La boucle “for” / “pour tout”
  15. 15. Affichage du contenu dun tableau dentiers Algorithme AfficheTableau public static AfficheTableau( tableau1){
  16. 16. Affichage du contenu dun tableau dentiers Algorithme AfficheTableau Variable dentrée : tableau dentiers 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. 17. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu dun tableau • Dessin dun graphique à partir du contenu dun tableau • La boucle “for” / “pour tout”
  18. 18. Graphique du nombre dapparitions des mots dun texte Jai cueilli ce brin de bruyère Lautomne est morte souviens-ten Nous ne nous verrons plus sur terre Odeur du temps brin de bruyère Et souviens-toi que je tattends
  19. 19. Graphique du nombre dapparitions des mots dun 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 Jai cueilli ce brin de bruyère l 1 Lautomne est morte souviens-ten 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 tattends 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 dentiers NbApparitions
  20. 20. Graphique du nombre dapparitions des mots dun 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 dentiers NbApparitions
  21. 21. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  22. 22. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  23. 23. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  24. 24. Graphique du nombre dapparitions des mots dun 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 dentiers NbApparitions. en 1 nous 2 Variable : ne 1 Début xi x 4i verrons 1 i←1 plus 1 Tant que i < Longueur(Mots)+1 faire : ...1 0 4 sur 12 4 8 dessineRectanglePlein(0,40,4,10, terre 13 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 dentiers NbApparitions
  25. 25. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  26. 26. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  27. 27. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  28. 28. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  29. 29. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  30. 30. Graphique du nombre dapparitions des mots dun 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 dentiers 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 dentiers NbApparitions
  31. 31. Le nombre dapparitions dun mot dans un texte La “minute mathématique” La loi de Zipf prédit la courbe du nombre dapparitions des mots les plus fréquents dun texte. y = nombre dapparitions du x-ième mot le plus fréquent dans le texte 140 120 100 80 Nombre réel dapparition des mots 60 Nombre estimé dapparition 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. 32. Le nombre dapparitions dun mot dans un texte La “minute mathématique” La loi de Zipf prédit la courbe du nombre dapparitions des mots les plus fréquents dun texte. y = nombre dapparitions du x-ième mot le plus fréquent dans le texte 140 120 100 80 Nombre réel dapparition des mots 60 Nombre estimé dapparition 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 nimporte quel texte assez long...
  33. 33. Plan du cours 3 – Tableaux et boucles • Résumé des épisodes précédents • Correction du QCM2 • Les tableaux • Lecture du contenu dun tableau • Dessin dun graphique à partir du contenu dun tableau • La boucle “for” / “pour tout”
  34. 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. 35. La boucle “for” / “Pour tout...” Exemple : parcours des cases dun tableau En pseudo-code avec Tant que : Variables : tableau dentiers 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 dentiers 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. 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. 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. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFin
  39. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFinEn Java :int compteur;compteur=1;while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … …} }
  40. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFin déclaration +En Java :int compteur; initialisationcompteur=1;while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … …} }
  41. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFin déclaration +En Java : condition darrêtint compteur; initialisationcompteur=1;while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … …} }
  42. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFin déclaration +En Java : condition darrêt mise à jourint compteur; initialisationcompteur=1;while(compteur<mots.length+1) { for(int compteur=1;compteur<mots.length+1;compteur++){ … …} }
  43. 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 DessineHistogrammeEntrée : tableau de chaînes de caractères Mots et Entrée : tableau de chaînes de caractères Mots ettableau dentiers NbApparitions. tableau dentiers NbApparitions.Variable : entier compteur Variable : entier compteurDébut Débutcompteur ← 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 PourFin TantQue FinFin déclaration +En Java : condition darrêt mise à jourint compteur; initialisationcompteur=1;while(compteur<mots.length+1){ for(int compteur=1;compteur<mots.length+1;compteur++){ … …} } compteur=compteur+1 compteur+=1
  44. 44. La copie dun tableau Pour copier le contenu dun tableau dentiers t1 dans un nouveau tableau dentiers 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; }

×