Valid XHTML     Valid CSS2    

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&nbsp;: ") ;
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)==) ;
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) - # 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 gH    Retour à la page principale de   (gH)