David ROUMANET 2014david.roumanet.free.fr/BTS_2015/SI4/SI4 - part 06 (tableaux-listes... · Les...
Transcript of David ROUMANET 2014david.roumanet.free.fr/BTS_2015/SI4/SI4 - part 06 (tableaux-listes... · Les...
BTS SIOProgrammation basique - SI4
PLAN● Tables
– DIM– Variable[]
● Listes– Variable()\Element
● Index (handle)– Index = OuvertureFichier(nom)– Index = OuvertureFlux(type)
BTS SIOBases de programmation
Tables● Définition
● Suite d'éléments simples de même format● Déclaration
● Dim temperature.f(10,2) Purebasic● $Table = Array(); PHP● Note = new int [10] Java● Liste = [] Python
Tables Listes Index
BTS SIOBases de programmation
Tables● Fonctionnement
● Il s'agit réellement d'un tableau simple (Dim Temp.f(10,2))
● On y accède par coordonnées (abscisse, ordonnée)
– Result = Table(5,2)
– Table(t,1) = t*1
Dans Purebasic la première case est l'index 0 !
16,5° 19,0° ...21,0°24,0° 12,5°
Tem
p(0
,0)
Tables Listes Index
BTS SIOBases de programmation
Tables● Fonctionnement
● Dans PHP, il s'agit d'une suite d'élément dynamique
● On y accède par système de clé-valeur– La clé peut être un nombre (index)– La clé peut être une chaine (par exemple "07/10 12h")
Tables Listes Index
1 2 3 716° 19° 24° 28°
07/10 8h 07/10 12h 07/10 16h16° 19° 24° Associatif
BTS SIOBases de programmation
Tables● Fonctionnement (PHP)
Tables Listes Index
<?php// Déclaration d'un tableau vide$fruits = array();
// Déclaration d'un tableau indexé numériquement$legumes = array('carotte','poivron','aubergine','chou');
// Déclaration d'un tableau associatif$identite = array( 'nom' => 'Hamon', 'prenom' => 'Hugo', 'age' => 19, 'estEtudiant' => true);?>
Tableau à deux dimensions
$Grille = array(array());
$Grille[1][5] = "OK";
BTS SIOBases de programmation
Listes● Définition
● Suite d'éléments sans limite (liste chainée) : dynamique● PHP utilise déjà ce système● Purebasic propose un système dédié (newlist chaine.s() )● JAVA propose LinkedList (différent de ArrayList)
Tables Listes Index
BTS SIOBases de programmation
Listes● Fonctionnement
● Le compilateur enregistre un couple "donnée-adresse"– La donnée contient la valeur de l'utilisateur– L'adresse contient l'adresse où se trouve la prochaine donnée
donnée Adr. suivante donnée Adr. suivante
donnée Adr. suivante
donnée Adr. suivante
Tables Listes Index
BTS SIOBases de programmation
Listes● Fonctionnement (JAVA)
● Les éléments de la liste ne sont pas obligatoirement de même type !● l.size() permet de connaître la longueur de la liste● l.get(id) permet de récupérer l'élément numéro id dans la liste
List l = new LinkedList();
l.add("un texte"); l.add(42); l.add(3.14159265);
Tables Listes Index
BTS SIOBases de programmation
Listes● Fonctionnement (Purebasic)
NewList fruit.s()
AddElement(fruit()) fruit() = "oranges" AddElement(fruit()) fruit() = "bananes" AddElement(fruit()) fruit() = "pommes"
FirstElement(fruit()) SelectElement(fruit(), id) NextElement(fruit()) NextElement(fruit())
Tables Listes Index
BTS SIOBases de programmation
Listes de structures● Structure ==>
● Plusieurs variables de type simple, ensemble– Exemple : un type GPS pourrait être constitué de 3 coordonnées X.f, Y.f et Z.f
et une chaine Ville.s
– Global Coordonnees.GPS
Tables Listes Index
X.f Y.f Z.f Ville.s
BTS SIOBases de programmation
Listes de structures● Fonctionnement (Purebasic)
NewList coordonnees.GPS()
AddElement(coordonnees()) coordonnees()\X = 45,12589 coordonnees()\Y = -5,736548 coordonnees()\Z = 102,587992 coordonnees()\Ville = "Montobeuge les Balles"
Tables Listes Index
En JAVA, il n'existe pas de structure :Il faut créer une nouvelle classe quicontiendra les attributs (int, float...)
BTS SIOBases de programmation
Listes● Intérêt des listes chainées
● Insertion ou suppression d'éléments sans décalage complet
donnée Adr. suivante donnée Adr. suivante
Nouvelledonnée Adr. suivante
donnée Adr. suivante
Tables Listes Index
BTS SIOBases de programmation
Listes● Intérêt des listes chainées
● Insertion ou suppression d'éléments sans décalage complet
donnée Adr. suivante donnée Adr. suivante
Nouvelledonnée Adr. suivante
donnée Adr. suivante
Tables Listes Index
BTS SIOBases de programmation
Listes● Intérêt des listes chainées
● Insertion ou suppression d'éléments sans décalage complet
donnée Adr. suivante donnée Adr. suivante
Nouvelledonnée Adr. suivante
donnée Adr. suivante
Tables Listes Index
BTS SIOBases de programmation
Listes● Intérêt des listes chainées
● Insertion ou suppression d'éléments sans décalage complet
donnée Adr. suivante donnée Adr. suivante
Nouvelledonnée Adr. suivante
donnée Adr. suivante
Tables Listes Index
BTS SIOBases de programmation
Index● Définition
● Elément fourni par l'OS, pointant vers un périphérique, un fichier, un flux● Facilite la gestion par le programmeur (qui n'utilisera que cet index pour utiliser
un fichier, un flux, etc.)
Tables Listes Index
IndexFile.i = OpenFile(#PB_Any,"MonFichier.txt")IndexNetwork.i = OpenNetworkConnection("127.0.0.1",1025,#PB_Network_TCP)