Listing du fichier pilev2.php
00001 <?php
00002
00003 error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
00004
00005 session_start() ;
00006
00007 include "std.php" ;
00008
00009 debutPage("Exemple de pile","strict") ;
00010 debutSection() ;
00011
00012 if (!isset($_SESSION["laPile"])) {
00013 $_SESSION["laPile"] = creerPile() ;
00014 } ; # fin si
00015
00016 # -------------------------------------------------------------------------------------
00017
00018 h1("Implémentation d'une \"pile\" via un tableau") ;
00019
00020 blockquote() ;
00021
00022 form("pilev2.php") ;
00023 div("bgcolor_slate_encadre") ;
00024 blockquote() ;
00025 pvide() ;
00026 p() ;
00027 input_submit("Afficher la pile","afficher") ;
00028 finp() ;
00029
00030 p() ;
00031 input_submit("Dépiler","depiler") ;
00032 finp() ;
00033
00034 p() ;
00035 input_submit("Empiler la valeur ","empiler") ;
00036 input_text("valeur","") ;
00037 echo " (de préférence numérique) " ;
00038 input_submit("Exécution !","empiler2","vert_pastel") ;
00039 finp() ;
00040
00041 p() ;
00042 input_submit("Réinitialiser la pile","reinitialiser") ;
00043 finp() ;
00044
00045 p() ;
00046 if (isset($_GET["dbg"])) {
00047 input_checkbox("dbg"," Activer le mode debug ","","chk") ;
00048 } else {
00049 input_checkbox("dbg"," Activer le mode debug ") ;
00050 } ; # fin si
00051 finp() ;
00052 pvide() ;
00053 finblockquote() ;
00054 findiv() ;
00055 finform() ;
00056
00057 form("pilev2.php") ;
00058 p() ;
00059 input_submit("Réinitialiser le formulaire") ;
00060 finp() ;
00061 finform() ;
00062
00063 # -------------------------------------------------------------------------------------
00064
00065 if (isset($_GET["reinitialiser"])) {
00066 h3("La pile a été réinitialisée.") ;
00067 $_SESSION["laPile"] = creerPile() ;
00068 } ; # fin si
00069
00070 if (isset($_GET["afficher"])) {
00071 if (pileVide($_SESSION["laPile"])) {
00072 h3("La pile est vide, il n'y a rien à afficher.") ;
00073 } else {
00074 h3("Vous avez demandé d'afficher la pile, la voici : ") ;
00075 montrerPile($_SESSION["laPile"]) ;
00076 } ; # fin si
00077 } ; # fin si
00078
00079 if (isset($_GET["depiler"])) {
00080 list($enleve,$_SESSION["laPile"]) = depiler($_SESSION["laPile"]) ;
00081 if ($enleve=="") {
00082 h3("La pile est vide, il n'y a rien à dépiler.") ;
00083 } else {
00084 h3("On a oté $enleve de la pile.") ;
00085 } ; # finsi
00086 } ; # fin si
00087
00088 if (isset($_GET["empiler"]) or (isset($_GET["empiler2"]))) {
00089 if ((!isset($_GET["valeur"])) or (isset($_GET["valeur"]) and ($_GET["valeur"]=="")) ){
00090 h3("Vous n'avez fourni aucune valeur à empiler.") ;
00091 } else {
00092 $_SESSION["laPile"] = empiler($_GET["valeur"],$_SESSION["laPile"]) ;
00093 h3("On a empilé la valeur ".$_GET["valeur"]) ;
00094 } ; # fin si
00095 } ; # fin si
00096
00097 if (isset($_GET["dbg"])) {
00098 h2("Mode debug actif","grouge") ;
00099 blockquote() ;
00100 h3("Voici le contenu du tableau qui implémente la pile :") ;
00101 pre("plusgrand cadre") ;
00102 print_r($_SESSION["laPile"]) ;
00103 finpre() ;
00104 finblockquote() ;
00105 } ; # fin si
00106
00107 finblockquote() ;
00108
00109 # -------------------------------------------------------------------------------------
00110
00111 finSection() ;
00112 finPage() ;
00113
00114 # ----------------------------------
00115
00116 function creerPile() {
00117
00118 return( array() ) ;
00119
00120 } # fin de fonction creerPile
00121
00122 # ----------------------------------
00123
00124 function pileVide($p) {
00125
00126 return( count($p)==0 ) ;
00127
00128 } # fin de fonction pileVide
00129
00130 # ----------------------------------
00131
00132 function empiler($valeur,$pile) {
00133
00134 $pile[ count($pile) ] = $valeur ;
00135
00136 return( $pile ) ;
00137
00138 } # fin de fonction empiler
00139
00140 # ----------------------------------
00141
00142 function depiler($pile) {
00143
00144 $idd = count($pile) - 1 ; # idd : indice du dernier
00145
00146 if ($idd>=0) {
00147 $dep = $pile[ $idd ] ;
00148 unset( $pile[ $idd ] ) ;
00149 } else {
00150 $dep = "" ;
00151 } # finsi
00152
00153 return( array($dep,$pile) ) ;
00154
00155 } # fin de fonction depiler
00156
00157 # ----------------------------------
00158
00159 function montrerPile($pile) {
00160
00161 pre("plusgrand") ;
00162 $nbe = count($pile) ;
00163 if (pileVide($pile)) {
00164 echo "la pile est vide.\n" ;
00165 } else {
00166 echo "Contenu de la pile :\n" ;
00167 for ($ide=$nbe-1;$ide>=0;$ide--) {
00168 echo " valeur numéro ".sprintf("%2d",$ide)." : ".sprintf("%4d",$pile[$ide]) ;
00169 if ($ide==$nbe-1) { echo " (haut de la pile)" ; } ;
00170 if ($ide==0) { echo " (bas de la pile)" ; } ;
00171 echo "\n" ;
00172 } ; # fin pour ide
00173 } ; # finsi
00174 finpre() ;
00175
00176 } # fin de fonction montrerPile
00177
00178 # ----------------------------------
00179
00180 ?>
La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file
mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)