Algorithmique et développement web S2 3. Tableaux

Documents pareils
Architecture des Systèmes d Information Architecture des Systèmes d Information

Chap III : Les tableaux

Programmation Web. Madalina Croitoru IUT Montpellier

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

1 Lecture de fichiers

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais


1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1 Introduction et installation

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Introduction à MATLAB R

Perl Orienté Objet BioPerl There is more than one way to do it

UE C avancé cours 1: introduction et révisions

Rappels sur les suites - Algorithme

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Initiation à la programmation en Python

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

STAGE IREM 0- Premiers pas en Python

Présentation du PL/SQL

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours d algorithmique pour la classe de 2nde

Une bibliothèque de templates pour CUDA

Programmes des classes préparatoires aux Grandes Ecoles

Les structures de données. Rajae El Ouazzani

CREATION WEB DYNAMIQUE

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Algorithmique et Programmation, IMA

Cours Informatique Master STEP

Guide administrateur AMSP

Chapitre 1 : La gestion dynamique de la mémoire

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Bases de programmation. Cours 5. Structurer les données

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Utilisation de la plate-forme collaborative Windchill

Cours de Programmation Impérative: Zones de mémoires et pointeurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Les outils de création de sites web

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Programmation en Java IUT GEII (MC-II1) 1

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

1 Recherche en table par balayage

LES TYPES DE DONNÉES DU LANGAGE PASCAL

TP 1. Prise en main du langage Python

2 Formation utilisateur

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Rappels d architecture

Claude Delannoy. 3 e édition C++

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Conception de circuits numériques et architecture des ordinateurs

Formulaire pour envoyer un mail

Environnements informatiques

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

COMMUNICATION PC/MINITEL

Définitions. Numéro à préciser. (Durée : )

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction au langage C

La Clé informatique. Formation Excel XP Aide-mémoire

Initiation à Excel. Frédéric Gava (MCF)

Cours 7 : Utilisation de modules sous python

Parcours FOAD Formation EXCEL 2010

4 Exemples de problèmes MapReduce incrémentaux

Introduction à NetCDF

PHP 5. La base de données MySql. A. Belaïd 1

Introduction à MapReduce/Hadoop et Spark

Dans l'article précédent, vous avez appris

Débuter avec Excel. Excel

Initiation à l algorithmique

TP1 - Prise en main de l environnement Unix.

TRIGONOMETRIE Algorithme : mesure principale

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Cours d initiation à la programmation en C++ Johann Cuenin

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Cours d Algorithmique et de Langage C v 3.0

Java Licence Professionnelle CISII,

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Les serveurs WEBUne introduction

Cours 14 Les fichiers

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Rappels Entrées -Sorties

Calcul de la valeur d un bâtiment

Liaisons directes et régulières des aéroports régionaux secondaires moyens au printemps 2007

Spécialité auxiliaire en prothèse dentaire du brevet d études professionnelles. ANNEXE IIb DEFINITION DES EPREUVES

Transcription:

Algorithmique et développement web S2 3. Tableaux Christophe BLANC IUT MMI IUT d Allier Université Clermont Auvergne www.christophe-blanc.fr 2016-2017 1 / 21

Définition En PHP, un tableau est une collection (liste d éléments) de couples/valeur. La clé peut être de type entier (tableau numérique) ou de type chaîne (tableau associatif : les clés ne sont pas forcément consécutives, ni ordonnées, et ce tableau peut présenter des clés entières et des clés de type chaîne). La valeur associée à la clé peut être de n importe quel type, et notamment de type tableau : dans ce cas, le tableau est dit multidimensionnel. 2 / 21

Exemples : tableaux numériques Indices ordonnés consécutifs 0 zéro 1 un 2 deux 3 trois Indices non ordonnés non consécutifs 20 vingt 30 trente 10 dix 3 / 21

Exemples : tableau mixte et multidimensionnel 0 zéro zéro 0 un 1 1 un deux 2 2 deux trois 3 3 trois Clé/Indice FRANCE ITALIE Valeur 0 Paris 1 Lyon 2 Nantes 0 Rome 1 Venise 4 / 21

Création Une variable de type tableau peut être définie explicitement grâce à la fonction array ou implicitement en utilisant une notation à crochets ([]). 5 / 21

Création : notation à crochets ([]) Une variable utilisée pour la première fois avec une notation de la forme $variable[...] est automatiquement créée avec le type tableau. La même opération effectuée sur une variable déjà définie, avec un type scalaire, provoque un message d erreur. Le contenu d un tableau peut être défini par plusieurs affectations du type $tableau[...] = valeur. Avec une affectation du type $tableau[...] = valeur, PHP recherche le plus grand indice entier utilisé et associe la valeur à l indice supérieur. Si le tableau est vide, l élément est placé à l indice 0. Avec une affectation du type $tableau[clé] = valeur, PHP associe la valeur indiquée à la clé indiquée (qui peut être de type entier ou de type chaîne). 6 / 21

Exemple Création : notation à crochets ([]) <? php $nombres [] = " zero ";//=> indice 0 $nombres [] = "un";//=> indice max (0) + 1 = 1 $nombres [] = " deux ";//=> indice max (1) + 1 = 2 $nombres [] = " trois ";//=> indice max (2) + 1 = 3 $nombres [5] = " cinq ";//=> indice 5 $nombres [] = " six ";//=> indice max (5) + 1 = 6 $nombres ["un"] = 1; //=> indice "un" $nombres [] = " sept ";//=> indice max (6) + 1 = 7 $nombres [ -1] = " moins un";//=> indice -1?> 0 zero 1 un 2 deux 3 trois 5 cinq 6 six un 1 7 sept -1 moins un 7 / 21

Création : notation à crochets ([]) Ces notations peuvent être utilisées pour construire un tableau multidimensionnel, sous la forme $tableau[...] = $tableau intérieur ou $tableau[...][...] = valeur. La première notation permet de stocker un tableau dans un emplacement d un autre tableau, et la deuxième notation, de stocker une valeur directement dans un emplacement situé à l intérieur d un autre tableau. 8 / 21

Exemple Création : notation à crochets ([]) <? php // creation d un tableau contenant // des villes de France $villes_france [] = " Paris "; $villes_france [] = " Lyon "; $villes_france [] = " Nantes "; // stockage du tableau des villes de France // dans le tableau des villes $villes [" FRANCE "] = $villes_france ; // idem avec les villes d Italie $villes_italie [] = " Rome "; $villes_italie [] = " Venise "; $villes [" ITALIE "] = $villes_italie ;?> <? php // stockage direct des villes dans le tableau // -pour la France $villes [" FRANCE " ][] = " Paris "; $villes [" FRANCE " ][] = " Lyon "; $villes [" FRANCE " ][] = " Nantes "; // -pour l Italie $villes [" ITALIE " ][] = " Rome "; $villes [" ITALIE " ][] = " Venise ";?> Clé/Indice FRANCE ITALIE Valeur 0 Paris 1 Lyon 2 Nantes 0 Rome 1 Venise 9 / 21

Création : la fonction array La fonction array permet de créer un tableau à partir d une liste d éléments. Syntaxe tableau array ([ mixte valeur [,...]]) Les clés/indices ne sont pas spécifiés et c est un tabelau numérique à indices consécutifs commençant à 0 qui est créé : le premier argument de la fonction étant stocké à l indice 0, le deuxième à l indice 1, etc. ou tableau array ([{ chaine / entier } cle => mixte valeur [,...]]) L indice ou la clé sont spécifiés soit par un entier, soit par une chaîne ; et une valeur lui est associée par l opérateur =>. 10 / 21

Exemple Création : la fonction array <? php $nombres = array (" zero ","un"," deux "," trois ",5 => " cinq ", " six ", "un" => 1, " sept ", -1 => " moins un");?> 0 zero 1 un 2 deux 3 trois 5 cinq 6 six un 1 7 sept -1 moins un 11 / 21

Exemple Création : la fonction array La fonction array accepte les données de type tableau (soit une variable, soit un appel imbriqué à array), ce qui permet de construire un tableau multidimensionnel. <? php $villes_france = array (" Paris ","Lyon ", " Nantes "); $villes_italie = array ("Rome "," Venise "); $villes = array (" FRANCE " => $villes_france, " ITALIE " => $villes_italie );?> <? php $villes = array (" FRANCE " => array (" Paris ", " Lyon "," Nantes "), " ITALIE " => array ("Rome ", " Venise " ));?> Clé/Indice FRANCE ITALIE Valeur 0 Paris 1 Lyon 2 Nantes 0 Rome 1 Venise 12 / 21

Manipulation Deux besoins types existent, relatifs à la manipulation d un tableau : accéder à un élément individuel du tableau parcourir le tableau 13 / 21

Manipulation : accéder à un élément individuel du tableau La notation à crochets est utilisée pour accéder, en lecture ou en écriture, à un élément individuel du tableau : $tableau[i] permet d accéder à l élément d indice i du tableau (cas du tableau numérique, i étant un entier). $tableau[ x ] permet d accéder à l élément de clé x du tableau (cas du tableau associatif, x étant une chaine). $tableau[] permet d accéder, en écriture uniquement, à un nouvel élément du tableau qui se verra affecter un indice entier immédiatement supérieur au plus grand indice entier existant dans le tableau (0 s il n y en a pas). Pour les tableaux multidimensionnels, plusieurs séries de crochets doivent être utilisées. 14 / 21

Manipulation exemple : accéder à un élément individuel du tableau <? php $nombres = array (" zero ","un"," deux "," trois ",5 => " cinq ", " six ", "un" => 1, " sept ", -1 => " moins un"); echo $nombres [1]," </BR >"; echo $nombres ["un"]," </BR >"; $villes = array (" FRANCE " => array (" Paris "," Lyon "," Nantes "), " ITALIE " => array (" Rome "," Venise " )); echo $villes [" FRANCE " ][0], " </BR >"; echo $villes [" ITALIE " ][1], " </BR >";?> 15 / 21

Manipulation : parcourir le tableau De nombreuses méthodes peuvent être utilisées pour parcourir un tableau à l aide des constructions suivantes : la structure de contrôle itérative for, la structure de contrôle itérative while, la structure de parcours de tableau foreach. Nous allons étudier les deux méthodes les plus simples et finalement les plus efficaces. Elles ne nécessitent aucune connaissance particulière sur la nature du tableau (numérique, associatif, plage des indices/clés...) 16 / 21

Manipulation : parcourir le tableau Syntaxe : foreach ( tableau as variable_valeur ) { instructions } Cette première syntaxe permet de parcourir le tableau du début à la fin : à chaque itération la valeur courante du tableau est stockée dans la variable variable valeur et les instructions entre accolades sont exécutées. Cette syntaxe est suffisante si le traitement n a pas besoin de faire référence aux valeurs de la clé. foreach ( tableau as variable_cle => variable_valeur ) { instructions } La deuxième syntaxe fonctionne sur le même principe, mais à chaque itération, la clé courante est stockée dans la variable variable cle et la valeur dans la variable variable valeur. Cette syntaxe est pratique si le traitement a besoin de faire référence aux valeurs de la clé. 17 / 21

Manipulation : parcourir le tableau <? php $nombres = array (" zero ","un"," deux ", " zero " => 0, "un" => 1, " deux " => 2); foreach ( $nombres as $nombre ) { echo " $nombre </BR>"; }?> <? php $nombres = array (" zero ","un"," deux ", " zero " => 0, "un" => 1, " deux " => 2); foreach ( $nombres as $cle => $nombre ) { echo " $cle => $nombre </BR>"; }?> 18 / 21

Manipulation : parcourir le tableau Syntaxe : while ( list ( variable_cle, variable_valeur ) = each ( tableau )) { instructions } Cette construction permet de parcourir du début à la fin : à chaque itération, la clé courante du tableau est stockée dans la variable variable cle, la valeur dans la variable variable valeur et les instructions entre accolades sont exécutées. Si le tableau a été préalablement été manipulé, il faut faire appel à la fonction reset pour remettre le pointeur interne du tableau sur la première case et ainsi être certain de repartir du début. mixte reset ( tableau ); 19 / 21

Manipulation : parcourir le tableau <? php $nombres = array (" zero ","un"," deux ", " zero " => 0, "un" => 1, " deux " => 2); while ( list ($cle, $nombre ) = each ( $nombres )) { echo " $cle => $nombre </BR >"; }?> 20 / 21

Fonctions utiles Nom count() ou sizeof() in array() array search() sort() rsort() explode() implode() print r() array push() array pop() array shift() array unshift() Rôle compte le nombre d éléments d un tableau teste si une valeur est présente dans un tableau recherche une valeur dans un tableau trie un tableau en ordre croissant trie un tableau en ordre décroissant découpe une chaîne selon un séparateur et stocke les éléments dans un tableau regroupe les éléments d un tableau dans une chaîne à l aide d un séparateur affiche le tableau ajoute un élément à la fin du tableau supprime un élément à la fin du tableau supprime un élément au début du tableau ajoute un élément au début du tableau 21 / 21