• Aucun résultat trouvé

17/05/20161

N/A
N/A
Protected

Academic year: 2022

Partager "17/05/20161"

Copied!
6
0
0

Texte intégral

(1)

Algorithmes…

Les tableaux

Les tableaux

A quoi sert un tableau ? A mémoriser un nombre important de valeurs de même type.

Exemple: Si vous avez 3 notes à mémoriser, vous pouvez utiliser 3 variables ou une variable de type tableau de 3 éléments.

Si vous avez 200 notes à mémoriser, vous pouvez utiliser une variable de type tableau de 200 éléments ou…200 variables.

Exemple: Un tableau de notes…

10 2 13 12 18 16 3 5

Les tableaux

Un tableau:

Possède un nom

Est composé d’un nombre de cases (ou d’éléments) qui détermine sa taille. La taille est déterminée au moment de la déclaration du tableau

Est une variable dite complexe car c’est une variable constituée de plusieurs variables simples

Ne peut contenir que des valeurs de même type.

Les tableaux

Les cases d’un tableau:

Chaque case du tableau est appelé élément Les cases sont des variables

Tous les éléments ont le même type

Chaque case est numérotée. Ce numéro se nomme l’indice du tableau

L’indice d’un tableau est numéroté à partir de zéro. Donc le 4

ième

élément d’un tableau a pour indice 3.

Exercice

Combien y a t-il d’éléments dans le tableau ? Quel est l’indice le plus petit et l’indice le plus grand ? Quelle est la valeur la plus petite et la valeur la plus grande ? Quelle est la valeur correspondant à l'indice 4 ?

A quel indice se trouve la valeur 13 ? Quelle valeur se trouve à l’indice 3 ? Quelle valeur se trouve à l'indice 8 ? A quels indices se trouve la valeur 12 ? A quel indice se trouve la plus petite valeur ? Quelle est la valeur de l'élément de plus grand indice ?

11 12 11 10 15 12 13 16 17 20

Exemple d’algorithme avec tableau

Programme tableau VARIABLES

i : numérique

notes : tableau [0..35] d'entiers // Déclaration DEBUT

Pour i variant de 0 jusqu’à 35 Saisir note

notes[ i ] note // Affectation FinPour

Pour i variant de 0 jusqu’à 35

afficher notes[i] // Lecture FinPour

FIN

(2)

Exemple de programme PHP avec tableau (v1)

<?PHP

include('read.php');

// Saisie des notes for($i=0;$i<35;$i++){

echo "Saisir une note:";

$note=read();

$notes[$i]=$note;

}

// Affichage du contenu du tableau for($i=0;$i<35;$i++){

echo $notes[$i];

echo " ";

}

?>

Exemple de programme PHP avec tableau (v2)

<?PHP

include('read.php');

// Saisie des notes for($i=0;$i<35;$i++){

echo "Saisir la note numero ".($i+1).":";

$notes[$i]=read();

}

// Affichage du contenu du tableau for($i=0;$i<count($notes);$i++){

echo "\n".$notes[$i];

}

?>

Exercices

Ecrire un algorithme qui déclare et remplit un tableau contenant les 6 voyelles de l’alphabet.

A l'aide d'une boucle, écrivez un programme qui initialise un tableau de 5 cases avec des valeurs allant de 5 en 5 : (5,10,...) On suppose qu'on dispose d'un tableau rempli avec des noms d’étudiants. Ecrire la partie d'algorithme qui vérifie si votre nom est bien présent dans le tableau !

Les tableaux multi dimensionnels

Tableau à 2 dimensions: Constitué de lignes et de colonnes.

Tableau à 3 dimensions:

Tableau à n dimensions: Non représentable graphiquement et peu utilisé.

20 12 5 18 13 14 8

8 7 6 15 17 2 1

14 19 8 17 6 5 15

Tableau à 2 dimensions

Programme tableau VARIABLES

i : numérique

notes : tableau [0..4][0..35] d'entiers // Déclaration DEBUT

Pour i variant de 0 jusqu’à 4 Pour j variant de 0 jusqu’à 35

Saisir note

notes[i][j] note // Affectation FinPour

FinPour

Exercices

Ecrire un programme qui transfère un tableau M à deux dimensions L et C (dimensions maximales: 10 lignes et 10 colonnes) dans un tableau V à une dimension L*C.

Ecrivez l'algorithme permettant d'initialiser un tableau valeurs contenant 3 lignes et 4 colonnes de la manière suivante :

tous les éléments de la première ligne doivent être égaux à 5.

les éléments de la deuxième ligne doivent contenir l'indice de la

(3)

A faire:

-

Les tableaux en PHP…

-

TP de mise en application à l’aide de PHP

Les tableaux

Définition

•En PHP, un tableau est une collection (liste d'éléments) ordonnée de couples clé/valeur.

•La clé peut être de type entier ou de type chaîne. Dans le premier cas, le tableau est dit numérique et la clé est désignée par le terme indice. Dans le deuxième cas, le tableau est dit 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.

Les tableaux

Principe

Création à l’aide de la fonctionarray()

Uniquement des tableaux à une dimension

Les éléments d’un tableau peuvent avoir pour élément d’autres tableaux

Les éléments d’un tableau peuvent appartenir à des types distincts

L’index d’un tableau en PHP commence à 0

Pas de limites supérieures pour les tableaux

La fonctioncount()permet d’avoir le nombre d’éléments d’un tableau (count($tab))

Les tableaux Remplir Remplir Remplir Remplir un tableau un tableau un tableau un tableau

On peut fixer la valeur des indices.

<?php

$tableau[0] = "a";

$tableau[1] = "b";

?>

Méthode 1: Affectation en renseignant l’indice et la valeur

Remplir Remplir Remplir

Remplir un tableau un tableau un tableau un tableau

On peut affecter une valeur à chaque élément.

<?php

$tableau[] = "a";

$tableau[] = "b";

?>

Les deux valeurs auront pour indice les indices suivant l'indice le plus important. Dans notre cas présent, ce seront les indices 0 et 1

Méthode 2: Affectation en laissant l’indice par défaut

Remplir Remplir Remplir

Remplir un tableau un tableau un tableau un tableau

Lorsque l'on souhaite insérer plusieurs valeurs, on peut utiliser la fonctionarray()

<?php

$t1 = array("un", "deux", "trois", "nous irons au bois");

$t2 = array(1 => "un", 2 => "deux", 3 => "trois", 4 => "nous irons au bois");

$t3 = array(1 => "un", "deux", "trois", "nous irons au bois");

// pour commencer à 1

?>

Méthode 3: Initialisation du tableau avec la fonction array()

(4)

Les tableaux indicés

Accéder aux éléments par l’intermédiaire de nombres

$tableau[indice] = valeur;

$jour[3] = "Mercredi";

$note[0] = 20;

$tableau = array(valeur0, valeur1,..., valeurN);

$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi",

"Jeudi", "Vendredi", "Samedi");

$note = array(20, 15, 12.6, 17, 10, 20, 11, 18, 19);

$variable = $tableau[indice];

$JS = $jour[6]; // affecte "Samedi" à $JS echo $note[1] + $note[5]; // affiche 35

Les tableaux associatifs

Contrairement aux tableaux indicés, les tableaux associatifs peuvent avoir des chaînes de caractères pour référencer les éléments du tableau.

Méthode 1: Affectation en renseignant la clé et la valeur

$tableau["clé"] = valeur;

$jour["Dimanche"] = 7

$jour["Mercredi"] = "Le jour des enfants"

$jour[“Jeudi"] = "Cours d’algo"

Les tableaux associatifs

Contrairement aux tableaux indicés, les tableaux associatifs peuvent avoir des chaînes de caractères pour référencer les éléments du tableau.

Méthode 2: Affectation en utilisant la fonction array()

$tableau = array(ind0 => val0, ind1 => val1,..., indN =>

valN);

$jour = array("Dimanche" => 1, "Lundi" => 2, "Mardi" => 3,

"Mercredi" => 4, "Jeudi" => 5, "Vendredi" => 6, "Samedi"

=> 7);

Les tableaux associatifs

Accès aux éléments d’un tableau associatif:

$variable = $tableau["indice"];

$JS = $jour["Vendredi"]; // affecte 6 à $JS echo $jour["Lundi"]; // affiche la valeur 2

Lecture des éléments d’un tableau

Avec une boucle for

for($i = 0; $i<count($tab); $i++) {

$tamp = $tab[$i];

echo "$tamp,";

}

Attention: La structure “for” ne peut pas

Lecture des éléments d’un tableau

Afin de parcourir les tableaux associatifs, il faut utiliser une structure “foreach”.

NB: La structure “foreach” fonctionne aussi pour les tableaux indicés.

$tableau = array(val1, val2, ..., valN);

foreach($tableau as $valeur) { echo "Valeur : $valeur";

}

$jour = array("Lundi", "Mardi", "Mercredi", "Jeudi",

(5)

Lecture des éléments d’un tableau associatif

Réalisable en ajoutant la clé associée avant la variable $valeur

$tableau = array(cle1 => val1, cle2 => val2, ..., cleN => valN);

foreach($tableau as $cle => $valeur) { echo "Valeur ($cle): $valeur";

}

$jour = array("Dimanche" => 7, "Lundi" => 1,

"Mardi" => 2, "Mercredi" => 3, "Jeudi" => 4,

"Vendredi" => 5, "Samedi" => 6);

foreach($jour as $cle => $valeur) {

echo "Le jour de la semaine n°".$valeur." : ".

$cle;

}

Fonctions de tri de tableau

Tri selon les valeurs

La fonction sort($tab)effectue un tri sur les valeurs des éléments d’un tableau selon les codes ASCII : "a" est après "Z" et "10" est avant "9")

Le tableau initial est modifié et non récupérable dans son ordre original

Pour les tableaux associatifs les clés seront perdues et remplacées par un indice créé après le tri et commençant à 0 La fonctionrsort($tab)effectue la même action mais en ordre inverse des codes ASCII.

La fonctionasort($tab)trie également les valeurs selon le critère des codes ASCII, mais en préservant les clés pour les tableaux associatifs

La fonctionarsort($tab)la même action mais en ordre inverse des codes ASCII

la fonction natcasesort($tab)effectue un tri dans l’ordre alphabétique non ASCII ("a" est avant "z" et "10" est après "9")

Fonctions de tri de tableau

Tri sur les clés

La fonction ksort() trie les clés du tableau selon le critère des codes ASCII, et préserve les associations clé /valeur

La fonction krsort() effectue la même action mais en ordre inverse des codes ASCII

Fonctions de tri de tableau

<?PHP

$tab2 = array ("1622"=>"Molière", "1802"=>"Hugo", "1920"=>"Vian",

"1905"=>"Sartre") ; ksort($tab2);

echo "Tri sur les clés de \$tab2" ; foreach ($tab2 as $cle=>$valeur) {

echo “\nl’élément a pour clé $cle et pour valeur $valeur";}

?>

Tri sur les clés de $tab2

l’élément a pour clé 1622 et pour valeur Molière l’élément a pour clé 1802 et pour valeur Hugo l’élément a pour clé 1905 et pour valeur Sartre l’élément a pour clé 1920 et pour valeur Vian

Fonctions particulières: explode

La fonction explode permet de découper une chaîne selon un séparateur et de stocker les éléments dans un tableau.

Syntaxe : tableauexplode(chaîneséparateur, chaîneà_découper[, entierlimite]) séparateur Séparateur recherché.

à_découper Chaîne à découper.

limite Si spécifié, nombre maximum d'éléments dans le tableau résultat.

Exemple

<?php

$liste = "bleu, blanc, rouge" ;

$couleurs = explode(", ",$liste); // séparateur = virgule+espace foreach($couleurs as $cle => $valeur)

{ echo "$cle => $valeur<BR>"; }

?>

Résultat 0 => bleu 1 => blanc 2 => rouge

Fonctions particulières: implode

La fonction implode permet de regrouper les éléments d'un tableau dans une chaîne à l'aide d'un séparateur.

Syntaxe: chaîneimplode(chaîneséparateur, tableauéléments) séparateur Séparateur utilisé.

éléments Tableau contenant les éléments à regrouper.

Exemple

<?php

$couleurs = array("bleu","blanc","rouge");

$liste = implode(", ",$couleurs); // séparateur = virgule+espace echo $liste;

?>

Résultat bleu, blanc, rouge

(6)

Fonctions particulières: str_split

La fonction str_split découpe une chaîne en morceaux de longueur fixe et stocke les éléments dans un tableau.

Syntaxe: tableaustr_split(chaînechaîne[,entierlongueur]) chaîne Chaîne à découper.

longueur Longueur des morceaux (1 par défaut).

Exemple

<?php

$chaine = "A1B2C3";

$tableau = str_split($chaine,2);

foreach($tableau as $cle => $valeur) { echo "\$tableau[$cle] = $valeur\n";

}

?>

Résultat

$tableau[0] = A1

$tableau[1] = B2

$tableau[2] = C3

Fonctions particulières: range

La fonction range renvoie un tableau contenant toutes les valeurs comprises entre deux bornes.

Syntaxe: tableaurange(valeur1 , valeur2) valeur1 Borne inférieure.

valeur2 Borne supérieure.

Exemple

<?php

$tableau = range(‘A’ , ‘C’);

foreach($tableau as $cle => $valeur) { echo $tableau[$cle]." = ".$valeur;

}

?>

Résultat

$tableau[0] = A

$tableau[1] = B

$tableau[2] = C

Fonctions particulières: print_r

La fonction print_r affiche le contenu du tableau.

Syntaxe: print_r(tableau)

Exemple:

<?php

$tableau = range('A','C');

print_r($tableau);

?>

Résultat:

Array

<

[0] => A [1] => B [2] => C

>

Références

Documents relatifs

J’espère que vous allez bien, et que vous êtes partantes pour cette nouvelle aventure du cours à distance.. Si vous avez des questions, vous pouvez me joindre par

Macintosh users with 3+Mail for Macintosh may need to use the Chooser to select a zone-containing a server on which the 3+0pen Mail LocalTalk support component is installed-

Votre professionnel de la santé peut vous aider à choisir un pansement avec un adhésif plus doux ou vous suggérer une méthode différente pour maintenir le pansement sur la

En particulier un résultat complexe sera tout de même affiché si c’est le résultat du calcul d’une expression écrite avec des nombres complexes, ou d’une fonction prévue

[r]

Séparation des deux chromatides-sœurs de chaque chromosome dupliqué. Chaque cellul-fille possède une des deux chromatides sœurs. La cellule est haploïde ‘un chromosome de

Du hast jetzt 20 Sekunden Zeit und dann werden die Texte wiederholt.. (20 Sekunden Pause) Die Texte werden

Si vos deux premières cartes sont de valeur identique, vous pouvez les PARTAGER et engager une mise supplémentaire (équivalant à votre mise initiale) afin de jouer deux mains au