Programmation en Java Tableaux NGUYEN Thi Minh Tuyen

Slides:



Advertisements
Présentations similaires
Programmation Orienté Objet en C++
Advertisements

Langage C# et Plate-forme .NET
C++ 6ème cours Patrick Reuter maître de conférences
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Approfondissement du langage
1 Javascript Merci à Emmanuel Nauer. 2 Javascript Quid ? Langage de programmation lié à HTML. Code Javascript intégré aux pages HTML. Code interprété
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
8. Les tableaux P. Costamagna – ISEN N1.
Algorithme et programmation
Principes de programmation (suite)
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Les exceptions. Quest ce quune exception ? Une erreur dans le programme Due à un bug ou un cas « anormal » Gestion complète en java : JVM Dans dautre.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Langage Oriente Objet Cours 2.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Une nouvelle structure de données : les tableaux
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Principes de programmation (suite)
Principes de programmation
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Standard Template Library
CSI 1502 Principes fondamentaux de conception de logiciels
Java, les objets : tout de suite ! Rassembler, grouper les objets
C++ : variables Déclaration de variables
Tableaux Introduction aux tableaux à une dimension. Déclaration, stockage, initialisation et accès en lecture ou en écriture aux composantes d’un tableau.
Les Types de données complexes
L’essentiel du langage C
Animateur : Med HAIJOUBI
Structures des données
Cours 7 Divers et exceptions. Chapitre V Enumeration, tableaux, conversion de types, noms.
Stocker plusieurs valeurs de même type dans une variable
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
4 Introduction des objets. Les chaînes et tableaux
LES PILES ET FILES.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Labo II : Tableaux et pointeurs
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
JavaScript.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Strings et Tableaux en Java
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
8PRO100 Éléments de programmation Les tableaux multi-dimensionnels.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Cours LCS N°4 Présenté par Mr: LALLALI
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
LIFI-Java 2004 Séance du Mercredi 29 sept. Cours 4.
Les bases de l’algorithmique
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Université Paul Sabatier - Toulouse 3 Accueil des nouveaux personnels – Promotion 2007 IUT A – Service Direction – 19 août Chapitre 1 Structures.
Transcription de la présentation:

Programmation en Java Tableaux NGUYEN Thi Minh Tuyen Dans ce cours, nous allons parler d’Interface graphique en Java. NGUYEN Thi Minh Tuyen

Définition Un tableau est une collection de données ordonnées par rang Le nombre n de données est fixé Les données sont repérées par un rang entier entre 1 et n ou entre 0 et n-1 Méthodes utiles connaître le nombre de données dans le tableau stocker une donnée en lui associant un rang connaître la donnée stockée au rang i NGUYEN Thi Minh Tuyen rang: Suite (de personnes, de choses) sur une même ligne.

Survol des tableaux en Java Les tableaux sont gérés dans le langage Java, selon une syntaxe particulière: Déclaration d’un objet tableau TypeElement[] nomTableau; Construction d’un objet tableau nomTableau = new TypeElement[n]; Accès à un élément du tableau nomTableau[i] Taille du tableau nomTableau.length NGUYEN Thi Minh Tuyen les crochets []

Déclaration d’un tableau[1] Les éléments d’un tableau sont tous déclarés de même type Ce type peut être un type simple ou une classe Exemple: int[] t, registre; double[] vecteur; Color[] palette; Un tableau est un objet NGUYEN Thi Minh Tuyen

Déclaration d’un tableau[2] int tableau[] = new int[50]; // déclaration et allocation OU int[] tableau = new int[50]; OU int tab[]; // déclaration tab = new int[50]; //allocation L'utilisation d'un tableau pour lequel l'espace n'a pas été alloué provoque la levée d'une exception NullPointerException L’accès à un élément du tableau en dehors des bornes provoque la levée d’une exception ArrayIndexOutOfBoundsException NGUYEN Thi Minh Tuyen On declare et allour l’espace necessaire au tableau pareil 1. declaration d’un tableau 2. allouer l’espace de memoire au tableau

Tableau à plusieurs dimensions[1] Java ne supporte pas directement les tableaux à plusieurs dimensions : il faut déclarer un tableau de tableau. float tableau[][] = new float[10][10]; Un tableau à plusieurs dimensions peut être initialisé : int t21[][] = {{1, 2, 3}, {4, 5, 6}}; NGUYEN Thi Minh Tuyen définit un tableau à 2 dimensions 10 lignes sur 10 colonnes. définit un tableau dont la première dimension va de l'indice 0 à l'indice 1 et la deuxième dimension de l'indice 0 à l'indice 2.

Tableau à plusieurs dimensions[2] Toutes les lignes d’un tableau à 2 dimensions n’ont pas forcément le même nombre d’éléments : int dim1[][] = new int[3][]; dim1[0] = new int[4]; dim1[1] = new int[9]; dim1[2] = new int[2]; Chaque élément du tableau est initialisé selon son type par l'instruction new : 0 pour les numériques, '\0' pour les caractères, false pour les booléens et null pour les chaines de caractères et les autres objets. NGUYEN Thi Minh Tuyen

Initialisation explicite d'un tableau[1] int tableau[5] = {10,20,30,40,50}; int tableau[3][2] = { {5,1}, {6,2}, {7,3}}; NGUYEN Thi Minh Tuyen

Initialisation explicite d'un tableau[2] La taille du tableau n'est pas obligatoire si le tableau est initialisé à sa création. int tableau[] = {10,20,30,40,50}; Le nombre d'éléments de chaque ligne peut ne pas être identique int[][] tabEntiers = { {1,2,3,4,5,6}, {1,2,3,4}, {1,2,3,4,5,6,7,8,9}}; NGUYEN Thi Minh Tuyen

Parcours d'un tableau for (int i = 0; i < tableau.length ; i ++) { ... } La variable length retourne le nombre d'éléments du tableau. NGUYEN Thi Minh Tuyen

Exemple int tableau[][] ; tableau = new int[5][]; for( int i = 0; i< tableau.length; ++i){ tableau[i]= new int [i+1]; } for( int j = 0; j<tableau[i].length; ++j){ //accès à tableau[i][j] NGUYEN Thi Minh Tuyen

Tableaux en paramètre Pour passer un tableau à une méthode: déclarer les paramètres dans l'en-tête de la méthode. public void printArray(String texte[]){ ... } Les tableaux sont toujours transmis par référence puisque ce sont des objets. NGUYEN Thi Minh Tuyen La spécification d’un paramètre tableau se fait en écrivant autant de couples de [] que de dimensions du tableau, mais sans donner la taille de chaque dimension. Cette taille peut être obtenue dans la méthode à l’aide de l’attribut length. Le contenu des éléments peut être modifié, mais pas le tableau lui-même.

Utilitaires pour les tableaux[1] System.arraycopy : la classe System a une méthode de copie rapide de tableaux : public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int l) Copie un tableau depuis src, et partir de la position srcPos, dans la destination dest à partir de destPos et sur une longueur l. La copie n’est pas une copie profonde : seules les références sont copiées. NGUYEN Thi Minh Tuyen Si src et dest sont le même tableau, tout se passe comme si les éléments à copier étaient d’abord copiés dans un tableau auxiliaire. Si src ou dest vaut null, une NullPointerException est levée Une ArrayStoreException est levée si : src ou dest n’est pas un tableau src et dest sont des tableaux dont les éléments ne sont pas de même type. Une IndexOutOfBoundsException est levée si : srcPos ou destPos ne sont pas « corrects » destPos+l ou srcPos+l sortent du tableau

Utilitaires pour les tableaux[2] La classe java.lang.reflect.Array contient des méthodes statiques permettant : de récupérer un élément d’un tableau, en le convertissant dans un autre type d’affecter un tableau avec un élément de créer, à l’exécution, un tableau NGUYEN Thi Minh Tuyen

Utilitaires pour les tableaux[3] static Object get(Object t, int index)   retourne l’objet d’indice index dans le tableau t. static xxx getXxx(Object t, int index) retourne l’objet d’indice index dans le tableau t. Cet élément est convertit en le type primitif xxx si c’est possible static void set(Object t, int index, Object valeur) affecte une nouvelle valeur à l’élément d’indice index du tableau t. La valeur est convertie en le bon type avant l’affectation static void setXxx(Object t, int index, xxx z) affecte une nouvelle valeur à l’élément d’indice index du tableau t. NGUYEN Thi Minh Tuyen Ces méthodes peuvent lever les exceptions suivantes : NullPointerException si l’objet au rang index vaut null. IllegalArgumentException si le premier argument n’est pas un tableau. ArrayIndexOutOfBoundsException si index est en dehors des bornes du tableau

static Object newInstance(Class componentType, int l) Crée un nouveau tableau dont les éléments sont de type componentType et la longueur est l. Cette méthode peut lever les exceptions :  NullPointerException si le componentType vaut null. nullNegativeArraySizeException si l est négative. static Object newInstance(Class componentType, int[] dimensions) Crée un nouveau tableau dont les éléments sont de type componentType : Si componentType est une class ou une interface (pas tableau) le nouveau tableau a dimensions.length dimensions. Le nombre d’éléments dans la ième  dimension est égal à dimensions[i]. Si componentType représente une classe tableau, le nombre de dimensions du nouveau tableau est égal à la somme du nombre de dimensions de componentType plus dimensions.length . NGUYEN Thi Minh Tuyen

Exemple int dims[]={2, 3}; Integer ii = new Integer(1); Object t = java.lang.reflect.Array.newInstance(ii.getClass(), dims); NGUYEN Thi Minh Tuyen Permet de créer un tableau d’Integer à 2 dimensions : 2 lignes et 3 colonnes.

Question? NGUYEN Thi Minh Tuyen