Cours PHP Accéléré
12 juil. 2022 On peut ici s'en sortir avec de simples tableaux PHP en vérifiant que la taille du tableau des réponses données est la même que celle du ...
Chapitre 7 - Tableaux `a une dimension
Par exemple pour déclarer la variable tab comme étant un tableau de 10 entiers
Les tableaux en Java
3 nov. 2015 Attention : la taille d'un tableau peut-être 0. /* Exemples. */ int [] t = new int[3];. // taille 3. Terminal.ecrireInt ...
Les tableaux unidimensionnels en Java
28 oct. 2020 impossible d'accèder aux cases obtenir la longueur du tableau (erreur à l'exécution NullPointerException). int [] tab;.
Cours3-Tableaux-Formulaires.pdf
<?php. $tab = array("bonjour" 3
CROISSANCE ET DEVELOPPEMENT DES PLANTES CULTIVÉES
quées dans le tableau 6. l. 2. CROISSANCE. 2.1. Définition. La croissance est l'augmentation continue de toutes les dimensions de la plante : longueur
Caractérisation morphologique croissance staturo-pondérale et
La relation âge-longueur indique que la Sardinelle plate développe une Tableau 1 : Caractérisation du corps du poisson sur la base du rapport LS/H ...
Corrigé des exercices sur les tableaux
Dans cet exercice on va travailler avec un tableau d'entiers initialisé : int[] tab = {12
impact de la saison sur le facteur de condition et la croissance des
uniquement sur les variables longueur et poids individuels des poissons. des frtquences de longueur a permis d'établir la clé âge-longueur (Tableau ï) ...
Evaluation des teneurs en cendres calcium
https://revuescience-techniqueburkina.org/index.php/sciences_naturelles_et_appliquee/article/download/397/263/1204
Les tableaux unidimensionnels en Java
Maria Virginia Aponte
CNAM-Paris
28 octobre 2020
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20201 /48Tableaux : qu"est-ce que c"est?
TableauStructure des donnéesRegroupement de données demême type accessib lesvia leur indice ou
position dans le tableau. Chaque donnée est dite composante ou case .on peut manipuler le tableau comme un tout;et manipuler séparément chaque composante (ex : la modifier).130210.45.13.02.7indicesdonnéestableau de double102euhhuuhhheyindicesdonnéestableau de Stringcase d'indice 2Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20202 /48
Tableaux : pourquoi faire?
Traiter des
g randesquantités de données : de manière uniforme (sur toute les composantes), compacte et rapide (en temps d"accès aux composantes).Au lieu de 100 variables
déclarées séparément : doublea0 = 2.0; doublea1 = 5.3;doublea99 = -10.8;uneunique v ariabletab leaua )traitements surses composantes : double[] a =new double[100];// une seule déclaration
a[0] = 2.0;// traitement case d"indice 0 a[1] = 5.3; Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20203 /481. Déclarer et initialiser un tableau (une dimension)
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20204 /48À faire avant d"utiliser un tableau
1Déclarerune v ariablede type tab leau(symbole []).
I double [] tdéclare un tableau de double.2Créer explicitementses composantes en mémoire : I opérationnewen donnant : nombre + type de composantes Inew double [10] 10 composantes crées en mémoire3Initialiserles v aleursdes cases (par déf autou e xplicitement).double [] a = new double[10];
type des composantes type tableaucréation nombre composantes variable tableauMaria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20205 /48Composantes d"un tableau
Chaque
composantedu tab leauT : est désignée via sonindice i)T[i],icorrespond à laposition (à par tirde 0) de la case dans le tab leau,T[i]peut être affectéeindividuellement .
0 1 2 3 4 5 6
gIndicesT =gComposantes
T[2] = composante d"indice 2
T[0], T[1], T[2], T[3], ..., T[6]g7 variables (cases)Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20206 /48
En détail : déclarer un tableau
Syntaxe
: Type [] tab;après cette déclaration,tabcontientla v aleurnull.ET,tabne possèdeaucune composante ;impossible d"accèder aux cases, obtenir la longueur du tableau (erreur à
l"exécutionNullPointerException).int[] tab;// variable tableau d"entiers tab[0] = 2; //erreur d"exécutionnulltabMaria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20207 /48 En détail : création des composantes d"un tableauSyntaxe
: newT[n];// n (nbe composantes)// T (type composantes)En mémoirenew T[n]se traduit par :1nouvelb lockmémoire reser vépour n composantes de type T .
2initialisationpar déf autde ces composantes (0 pour les types
numériques, false pour bool, etc.) Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20208 /48Exemple de création en mémoire
int[] t1; int[] tab;// declarationtab =new int[3];// creation + affectationAprès l"affectationtab = new int[3]tab:contient l"adresse d"un b lockmémoire de 3 composantes
initialisées à 0.t1 null10y3200010y32 tabAdresse du tableau crée par new
Composantes
du tableauMaria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20209 /48Valeurs d"initialisation par défaut vianew
Les valeurs par défaut données parnew(selon le type des composantes) :composantesboolean)initialisées àfalse.composantes numériques)initialisées à 0.composanteschar)initialisées au caractère nul ("\0")composantes de typeréférence)initialisées ànull(pointeur nul).Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202010 /48
3 manières de création + initialisation
initialiser avec valeurs par défaut, vianew int tab=new int [3];initialiser en donnant une liste de valeurs : int [] tab = {1,9,2};ou, par création + affectation de chaque composante : int[] tab =new int[3]; tab[0] = 1; tab[1] = 9; tab[2] = 2; Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202011 /48Taille d"un tableau
Taille du tableautC"est lenombre de composantes de t.donné par :t.lenghtIndices det: entre 0 ett.length-1.
Attention
: la taille d"un tab leaupeut-être 0. / *Exemples*/ int[] t =new int[3];// taille 3Terminal.ecrireInt(t.length);// affiche 3
double[] m =new double[0];// taille 0Terminal.ecrireInt(m.length);// affiche 0Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202012 /48
Accès aux cases d"un tableau
Bornes du tableau t
L"accès à la composantet[i]estdéfini uniquement pour les indices compr is dans[0;:::;t.length1]. En dehors,t[i]provoque l"erreur d"e xécution: ArrayIndexOutOfBoundsException.double[] tab = {1.0, 2.5, 7.2, 0.6}; tab[5] = 17;// Erreur: indice en dehors des bornesJava/Essais> java TestException in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 5 Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202013 /48Résumé : que contient une variable tableau?
int[] t;si t n"est pas affecté : I t contient la v aleurnull)ne possède aucune composante; I tout accèst[i])erreur fatale( NullPointerException)si t est affectée par : I une valeur de type tableau (de int), I ou par une opération de création de composantes (new) : F tout accèst[i](dans les bornes de t) réussitF t contient l"adresse mémoireoù sont stoc kéesses composantes .Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202014 /48
2. Parcours d"un tableau : exemples
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202015 /48Schéma typique de parcours (il y en d"autres!)
Pour travailler avec un tableau : utiliser des boucles!Boucle de parcours du tableau tPermet de " visiter » toutes les cases en faisant avancer leur indicei:ivarie dans l"intervalle[0::t.lenght1].dans le corps : traiter chaque composantet[i]for(inti=0; i< t.length; i++){
actions surt[i]}Les bouclesforsont en général bien adaptées.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202016 /48
Exemple 1 : parcours + affichage d"un tableau
public classAfficheTab { public static voidmain (String args[]) { int[] tab = {10,20,30,40}; for(inti=0; i<= tab.length -1; i++) {System.out.println("tab["+i+ "]="+ tab[i]);
}}Java/Essais> java AfficheTab tab[0] = 10 tab[1] = 20 tab[2] = 30 tab[3] = 40 Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202017 /48Attention aux bornes de l"indice
Erreur commune
: fix erle der nierindice à tab.length,produit une erreur : cette composante (4ème ici), n"existe pas dans le
tableau.Java/Essais> java AfficheTabErr
tab[0] = 10 tab[1] = 20 tab[2] = 30 tab[3] = 40Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 4 Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202018 /48Exemple 2 : Initialisation notes lues+ affichage
Problème: initialiser un tableau avec des notes lues au clavier.Java/Essais> java Notes
Nombre de notes a lire? 4
Note no. 1? 7.6
Note no. 2? 11
Note no. 3? 14
Note no. 4? 5
Notes dans le tableau:
Note no. 1 = 7.6
Note no. 2 = 11.0
Note no. 3 = 14.0
Note no. 4 = 5.0
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202019 /48Initialisation notes lues + affichage (2)
Solution:1Demander le nombre N de notes à lire;2Créér un tableaunotesde cette taille;3Une première boucle initialise le tableau;
4la boucle suivante affiche son contenu.
5Les itérations se font dei=0jusqu"à
i <= notes.length-1.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202020 /48Initialisation notes lues + affichage (3)
intN = Terminal.lireInt(); double[] notes =new double[N]; // Initialisation for(inti=0; i< notes.length; i++) { notes[i] = Terminal.lireDouble(); // AffichageTerminal.sautDeLigne();
Terminal.ecrireStringln("
for(inti=0; i< notes.length; i++) {Terminal.ecrireString("Noteno." + (i+1) + "=");
Terminal.ecrireDoubleln(notes[i]);
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202021 /48 Exemple 3 : Recherche des min/max d"un tableau (1)Problème
: Afficher les minim umet le maxim umd"un tab leau.Solution
: Deux variablesminetmaxinitialisées avec le premier élément du tableau,La boucle compare chaque élément avec min et max : si un élément est plus petit que le min ou plus grand que le max, leurs valeurs sont modifiées.La comparaison se fait à partir du deuxième élément (pourquoi?))i débute ài=1.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202022 /48 min/max d"un tableau (2) intn = Terminal.lireInt(); int[] tab =new int[n]; // Initialisation par lecture de composantes for(inti=0; i< tab.length; i++) { tab[i] = Terminal.lireInt(); // Recherche de min et max // min et max initialises au premier du tableau intmin = tab[0];intmax = tab[0]; // Comparaison a partir de i=1 for(inti=1; i<= tab.length -1; i++) { if(tab[i] < min) { min = tab[i];} if(tab[i] > max) { max = tab[i];}Terminal.ecrireStringln("Leminimumest:" + min);
Terminal.ecrireStringln("Lemaximumest:" + max);
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202023 /48 min/max d"un tableau (3)Java/Essais> java MinMax
Combien des nombres? 5
Composante 1? 7
Composante 2? 0
Composante 3? -2
Composante 4? 67
Composante 5? 3
Le minimum est: -2
Le maximum est: 67
Java/Essais>
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202024 /48Exemple 4 : Moyenne de notes
Problème
: Calculer et afficher la mo yennedes notes ,les notes maximale et minimale d"un tableau de notes.Solution
: adaptation code d"initialisation, et de min/max.Java/Essais> java Notes
Nombre de notes a' lire? 4
Note no. 1? 5
Note no. 2? 8
Note no. 3? 10
Note no. 4? 15
La moyenne des notes est: 9.5
Le nombre de notes >= 10 est: 2
La note minimum est: 5.0
La note maximum est: 15.0
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202025 /48Moyenne de notes (2)
intnbeNotes = Terminal.lireInt(); double[] notes =new double[nbeNotes]; for(inti=0; i<= notes.length -1; i++) { notes[i] = Terminal.lireDouble(); doublemin = notes[0];doublemax = notes[0]; doublesomme = 0;intsup10 = 0; for(inti=0; i<= notes.length -1; i++) { if(notes[i] < min) { min = notes[i];} if(notes[i] > max) { max = notes[i];} if(notes[i] >= 10) { sup10++;} somme = somme + notes[i]; Terminal.ecrireStringln("Moyenne="+ somme/nbeNotes);Terminal.ecrireStringln("Noteminimum:" + min);
Terminal.ecrireStringln("Notemaximum:" + max);Pourquoi comence-t-on à i=0 et non pas à i=1 comme pour min/max?Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202026 /48
Exemple 5 : Inversion (en place) d"un tableau
Problème
: In verserl"ordre des éléments d"un tab leaude car actères, sans utiliser un autre tableau .'s''a''l''u''t'jiéchangerSolution:2 variables d"itération i, j, initialisées avec premier et dernier indices du
tableau;à chaque itération, les valeurs dans les positions i et j sont échangés, puis i est incrémenté et j décrémenté, Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202027 /485 : Inversion (en place) d"un tableau's''a''l''u''t'jiéchangerSolution (suite):
i, j, initialisées aux bornes du tableau; échanger valeurs dans i et j; incrémenter i, decrémenter j;2 cas d"arrêt possibles selon taille du tableau :
I taille impair : on doit arrêter lorsque i=j;Itaille pair : arrêt sij < i.
IConclusion: la boucle doit se poursuivre tant que i < j.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202028 /48
Initialisation + affichage avant inversion
// Initialisation char[] t =new char[Terminal.lireInt()]; for(inti=0; i<=t.length-1; i++) {Terminal.ecrireString("Uncaractere?");
t[i] = Terminal.lireChar(); // Affichage avant inversion for(inti=0; i<=t.length-1; i++){Terminal.ecrireChar(t[i]);
Terminal.sautDeLigne();
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202029 /48Boucle d"inversion
// Inversion: arret si (i >= j) chartampon; for(inti=0, j= t.length-1; i < j; i++, j--) { tampon = t[i]; t[i] = t[j]; t[j] = tampon; for(intk=0; k<= t.length-1; k++) {Terminal.ecrireChar(t[k]);
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202030 /48Inversion d"un tableau : affichages
Java/Essais> java Inversion
Combien de caracteres? 5
Un caractere? s
Un caractere? a
Un caractere? l
Un caractere? u
Un caractere? t
Le tableau avant inversion: salut
Le tableau inverse: tulas
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202031 /483. Représentation des tableaux en mémoire
Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202032 /48Comprendre la représentation des données en
mémoire C"est utile pour ...comprendre les opérations: sur les données .P arfois,le résultat n"estpas celui que l"on inmagine;en tirer parti: cer tainesopér ationsseront + ou - simples/efficaces selon
la représentation interne.éviter les erreurs: une cer tainereprésentation peut s"a vérerdélicate à
manipuler (erreurs difficlles à détecter). Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202033 /48Deux catégories de données en Java
Données de ...type primitif: v aleursélémentaires Iint, boolean, char, double, etc.type référence: v aleurscomposites ,f ormées(possib lement)de
plusieurs données plus élémentaires I tableaux, String, objets. )leur représentation en mémoire est différente,)leur utilisation en programmation aussi...Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202034 /48
Représentation des variables en Javav1 v2yA toute variable correspond unemplacement de stoc kage:
Il est
fix e I même emplacement tout le long du programme,Iil est de taille fixe,
Iil contient lav aleurcour antede la v ariable;taille + contenu)dépendent de son type! I type primitif Itype référence.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202035 /48Emplacement de stockage : types primitifs
taille : v ariableselon le type . I int)32 bitsIdouble)64 bits
Ichar)16 bits
I...contenu stocké: la donnée en place, un entier, un double, etc.2 563axMémoire public static void main(....) { int a = 2; double x = 6.3; a = a+2;32 bits32 bits32 bitsMaria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202036 /48
Emplacement de stockage : types référence
donnée de type référence)toujours composite(plusieurs) ;emplacement de stockage)ne contient pasles données ;il contient:
I adresse mémoire d"un espace ailleurs pour les données .int x410024(3)725(10024)
int [] t(Addresse)t.legth...Emplacements pour les variablesComposantes(tableau t)Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202037 /48
Exemple
int x = 4; int[] t = {7,2,5};int x410024(3)725(10024)
int [] t(Addresse)t.legth...Emplacements pour les variablesComposantes(tableau t)xest de type primitif : elle contientdirectementsa valeur.test de type référence : elle ne contient pas le tableau, mais l"adresse
où se trouvent ses composantes.test unpointeur ou référence.Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202038 /48
Exemples de données de types référence
Une variable de type String, ne contient pas la chaîne elle-même, maisl"adresse mémoire où se trouve la chaîne.La variableint [] t = {4, 6, 3}ne contient pas le tableau, mais
quotesdbs_dbs47.pdfusesText_47[PDF] longueur voiture standard
[PDF] longueur, aire, duré
[PDF] longueurs aux échelles microscopique et astronomique
[PDF] Longueurs d' arcs
[PDF] Longueurs d'arc et aires de secteurs angulaires
[PDF] Longueurs de fleuves
[PDF] Longueurs L'univers (DM Maison)
[PDF] Look :o !
[PDF] Look like look as of ou look as though
[PDF] look mickey
[PDF] lool
[PDF] lord of the flies résumé par chapitre
[PDF] lord of the rings pdf
[PDF] Lorenzaccio