[PDF] Les tableaux unidimensionnels en Java





Previous PDF Next PDF



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 /48

Tableaux : 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 /48

1. 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 I

new 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 /48

Composantes d"un tableau

Chaque

composante

du 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

gIndices

T =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 tableau

Syntaxe

: 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 /48

Exemple de création en mémoire

int[] t1; int[] tab;// declaration

tab =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 tab

Adresse du tableau crée par new

Composantes

du tableauMaria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 20209 /48

Valeurs 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 /48

Taille 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 3

Terminal.ecrireInt(t.length);// affiche 3

double[] m =new double[0];// taille 0

Terminal.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 Test

Exception in thread "main"

java.lang.ArrayIndexOutOfBoundsException: 5 Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202013 /48

Ré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émoire

où 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 /48

Schéma typique de parcours (il y en d"autres!)

Pour travailler avec un tableau : utiliser des boucles!Boucle de parcours du tableau t

Permet 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 /48

Attention 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] = 40

Exception in thread "main"

java.lang.ArrayIndexOutOfBoundsException: 4 Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202018 /48

Exemple 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 /48

Initialisation 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 /48

Initialisation notes lues + affichage (3)

intN = Terminal.lireInt(); double[] notes =new double[N]; // Initialisation for(inti=0; i< notes.length; i++) { notes[i] = Terminal.lireDouble(); // Affichage

Terminal.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 /48

Exemple 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 /48

Moyenne 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 /48

5 : 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 /48

Boucle 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 /48

Inversion 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 /48

3. Représentation des tableaux en mémoire

Maria Virginia Aponte (CNAM-Paris)Chapitre 428 octobre 202032 /48

Comprendre 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"est

pas 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 /48

Deux catégories de données en Java

Données de ...type primitif: v aleursélémentaires I

int, 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 /48

Emplacement de stockage : types primitifs

taille : v ariableselon le type . I int)32 bits

Idouble)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 x

410024(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 x

410024(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, mais

l"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 variable - Maths 1ère

[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