21
BTS SIO Programmation Basique (SI4) David ROUMANET 2014

David ROUMANET 2014david.roumanet.free.fr/BTS_2015/SI4/SI4 - part 06 (tableaux-listes... · Les éléments de la liste ne sont pas obligatoirement de même type ! ... Intérêt des

Embed Size (px)

Citation preview

BTS SIO

Programmation Basique (SI4)

David ROUMANET2014

BTS SIOProgrammation basique - SI4

PLAN● Tables

– DIM– Variable[]

● Listes– Variable()\Element

● Index (handle)– Index = OuvertureFichier(nom)– Index = OuvertureFlux(type)

BTS SIOBases de programmation

Tables et tableaux

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 chaînées

Tables Listes Index

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 (handle)

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)

BTS SIOBases de programmation

Index● Fonctionnement

Tables Listes Index

IndexFile.i = OpenFile(#PB_Any,"MonFichier.txt")IndexLog.i = OpenFile(#PB_Any,"C:\logs.txt")IndexImg.i = OpenFile(#PB_Any,"\\srv-ig\partage\tete_a_toto.jpg")

IndexFile = 1 IndexLog = 2 IndexImg = 0

N'a pas puÊtre ouvert !