De la Puce au Web - Cours n 719 mars 2009Pascal ManouryUniversite Pierre et Marie Curie, Paris 6 - 2008-2009http://www-licence.ufr-info-p6.jussieu.fr/lmd/licence/2008/ue/LI105-2009fevDe la Puce au Web - Cours n 7Plan du cours1 Les tableaux2 Parcours3 Recherche4 Matrices: tableaux a 2 dimensions5 Partage et copieDe la Puce au Web - Cours n 7Les tableauxStructure de donneesUne donnee qui contient d’autres donnees.TableauxUne suite nie de valeurs du m^eme type.Exemple: un tableau de 5 entiers:45 832 0 324 1065De la Puce au Web - Cours n 7Les tableaux en JavaDeclarationint[] t;t: nom de la nouvelle variable;int[]: type de cette variable. Se lit de droite a gauche:un tableau ([]) qui contient des entiers (int).Creationt = new int[5];new int[5]: un espace memoire est reserve (new) pourranger 5 ([5]) entiers (int);t = la valeur de t est l’adresse du debut de l’espace memoirereserve (pointeur).De la Puce au Web - Cours n 7Les tableaux en JavaDeclaration + creationint[] t = new int[5];Longueur d’un tableaut.length.length attribut de la variable t;[0 : : :t.length-1] intervale d’indices du tableau t.Ici: t.length est egal a 5.De la Puce au Web - Cours n 7Les tableaux en JavaAcces aux elements du tableau t: referencet[0] premier element (premiere case memoire du tableau);t[1] deuxieme element;. . .t[4] cinquieme et dernier element;t[5] n’existe pas: erreur ...
t de la nouvelle variable;: nom int[]:iaarevttcedepetydtdeortilb.eeSile:e`agauch un tableau ([]) qui contient des entiers (int).
Cr´eation t = new int[5];
new int[5]rseeets(ere´vspac:unemoirem´enew) pour ´ ranger 5 ([5]) entiers (int); t =la valeur detest essel’ dud´dbetureiome´mecapse’led a r re´serve´(pointeur).
eDaluPecuaWeb-Coursn◦7
eLstablaeuxneJava
D´eclaration+cre´ation int[] t = new int[5];
Longueurd’un tableau t.length
.lengthattributde la variablet; [0. . .t.length-1] intervale d’indices du tableaut.
Valeureml´´eestsend maintenantt[0]vaut 45,t[1]vaut 832, etc.
eDlauPceuaWeb-oCrusn◦7
aPrcours’dunatbleau
Probl`eme:alavhcreedhcelruaffiedsts5deunaceneml´´et Bouclefor int i; /* indice de boucle*/ for(i=0; i < t.lenght; i = i+1) { Puce.print(t[i]); }
fairevarierl’indicedebouclede0(1iere´le´ment)a` t.length-1n´ieeerr(emdl´t)en; `hefois,afficherl’´el´ementd’indicei,rec,e’ts`--aidt[i]. a c aqu
Re´sultataffiche´ 4583203241065 Exercice:rajouter l’affichage d’un espace entre les valeurs affich´ees.
eDaluPecuaeWb-oCursn◦7
aPcruosr’dnuatbleau
Probl`eme:osaleriauotedemmfatlbaeusles´el´ementsdu d’entierst. Unaccumulateurciuqitnordnerelatltae´us ints=0;/*accumulateurinitialise´*/ int i; /* indice de boucle */ for(i = 0; i < t.length; i = i+1) { s = s + t[i]; } De´roulementdelaboucle:valeursdesvariables/re´fe´rences i t[i] s - - 0 0 45 45 1 832 877 2 0 877 3 324 1201 4 1065 2266
DealPuceaueWb-oCursn◦7
Parcours’dunatlbaeu
Proble`me:compter le nombre de zeros dans un tableau d’entiers. ´ Utilisation d’ n test ` ´ u a zero intn=0;/*accumulateurinitialise´*/ int i; /* indice de boucle */ for(i = 0; i < t.length; i = i+1) { if (t[i] == 0) { n = n + 1; } }
lere´sultatducompteestdanslavariablen; notez: pas besoin deelse.
DealPuceaueWb-oCursn◦7
Recherchedansuntableau
Proble`me:savoir si le tableau contient un 0 Premie`resolution(justemaispast`sbonne) re boolean b = false; int i; for (i = 0; i < t.length; i = i+1) if (t[i] == 0) b = true; }