Valid XHTML     Valid CSS2    

Listing du fichier s1p3.php

 

00001     <?php
00002     #    (gH)   -_-  s1p3.php  ;  TimeStamp (unix) : 27 Novembre 2012 vers 16:56
00003     
00004     error_reporting
(E_ALL E_NOTICE E_STRICT) ;
00005     include("std.php"
) ;
00006     include("../xmlstd.php"
) ;
00007     include("scripts_inc.php"
) ;
00008     
00009     $numSerie 
;
00010     debutPageExoScr1
($numSerie) ;
00011     
00012     ## -------------------------------------------------------------------------------------------
00013     
00014     sdl
(3) ; echo cmt(' pour afficher toutes les solutions : wedrd01.php?solutions=1') ; sdl(3) ;
00015     
00016     ## -------------------------------------------------------------------------------------------
00017     
00018     debutSection
() ;
00019     
00020     $tableauDesRubriques 
= array() ;
00021     $idr 
;
00022     $idr
++; $tableauDesRubriques[$idr] = "TCL : commandes en session interactive" ;
00023     $idr
++; $tableauDesRubriques[$idr] = "TCL : archivage incrémental de fichiers XML" ;
00024     $idr
++; $tableauDesRubriques[$idr] = "TK   : choix du répertoire de sauvegarde ";
00025     $idr
++; $tableauDesRubriques[$idr] = "PERL : commandes en session interactive" ;
00026     $idr
++; $tableauDesRubriques[$idr] = "PERL : nombre premier en \"one-liner\"" ;
00027     $idr
++; $tableauDesRubriques[$idr] = "PERL : archivage incrémental de fichiers XML " ;
00028     $idr
++; $tableauDesRubriques[$idr] = "PERL : striphtml" ;
00029     $idr
++; $tableauDesRubriques[$idr] = "PERL : créer les fichiers dictionnaires d'un texte " ;
00030     $idr
++; $tableauDesRubriques[$idr] = "TK avec Tcl, Rexx et Perl " ;
00031     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00032     $tdmCRLM
->titre() ;
00033     $tdmCRLM
->menu("oui","oui","nou") ;
00034     
00035     pvide
() ;
00036     
00037     p
() ;
00038      echo "Il est possible d'afficher toutes les solutions via "
.href("s1p$numSerie.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00039     finp
() ;
00040     
00041     finSection
() ;
00042     
00043     debutSection
() ;
00044     $numExo 
;
00045     
00046     ## -------------------------------------------------------------------------------------------
00047     
00048     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # TCL : commandes en session interactive
00049     
00050     ## -------------------------------------------------------------------------------------------
00051     
00052     blockquote
() ;
00053     
00054     p
("texte") ;
00055     echo "Essayer en mode interactif avec "
.b("tclsh")." de donner la ou les instructions qui répondent aux " ;
00056     echo " m&ecirc;mes questions que pour Rexx en mode interactif, "
.href("s1p2.php#tdm4","exercice 4 de la série 2").". " ;
00057     #echo " m&ecirc;mes questions que pour Perl en mode interactif, ".href("s1p3.php#tdm4","exercice 4 de la série 3").". " ;
00058     finp
() ;
00059     
00060     solution
($numExo) ;
00061     
00062     consulter
("tclsh.txt") ;
00063     
00064     finsolution
() ;
00065     
00066     finblockquote
() ;
00067     
00068     ## -------------------------------------------------------------------------------------------
00069     
00070     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # TCL archivage incrémental de fichiers XML
00071     
00072     ## -------------------------------------------------------------------------------------------
00073     
00074     blockquote
() ;
00075     
00076     p
("texte") ;
00077     echo "Implémenter une version tcl de la sauvegarde incrémentale de fichiers XML comme pour " 
;
00078     echo href
("s1p2.php#tdm7"," l'exercice 7 de la série 2")." . "  ;
00079     finp
() ;
00080     
00081     solution
($numExo) ;
00082     
00083     consulter
("archcd.tcl") ;
00084     
00085     finsolution
() ;
00086     
00087     finblockquote
() ;
00088     
00089     ## -------------------------------------------------------------------------------------------
00090     
00091     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # TK choix du répertoire de sauvegarde
00092     
00093     ## -------------------------------------------------------------------------------------------
00094     
00095     blockquote
() ;
00096     
00097     p
("texte") ;
00098     echo "On veut mettre à disposition des utilisateurs un système de choix de répertoires à sauvegarder. " 
;
00099     echo " Voici ce qu'on voudrait voir sous Linux&nbsp;:" 
;
00100     finp
() ;
00101     
00102     $img1 
"../Farcompr/choix1.png" ;
00103     p
("texte") ;
00104     nbsp
(15) ;
00105     echo img
($img1) ;
00106     finp
() ;
00107     
00108     p
("texte") ;
00109     echo " Et sous Windows&nbsp;:" 
;
00110     finp
() ;
00111     
00112     $img2 
"../Farcompr/choix2.png" ;
00113     p
("texte") ;
00114     nbsp
(15) ;
00115     echo img
($img2) ;
00116     finp
() ;
00117     
00118     p
("texte") ;
00119     echo "Ecrire un programme TK pour cela. Le programme devra s'exécuter tel quel aussi bien sous Linux que sous Windows." 
;
00120     finp
() ;
00121     
00122     solution
($numExo) ;
00123     
00124     consulter
("archglob.tcl") ;
00125     
00126     finsolution
() ;
00127     
00128     finblockquote
() ;
00129     
00130     ## -------------------------------------------------------------------------------------------
00131     
00132     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # PERL : commandes en session interactive
00133     
00134     ## -------------------------------------------------------------------------------------------
00135     
00136     blockquote
() ;
00137     
00138     p
("texte") ;
00139     echo "En mode interactif, avec "
.href("pt.pl")." donner la ou les instructions qui répondent aux " ;
00140     echo " m&ecirc;mes questions que pour Rexx en mode interactif, "
.href("s1p2.php#tdm4","exercice 4 de la série 2").". " ;
00141     finp
() ;
00142     
00143     solution
($numExo) ;
00144     
00145     consulter
("perl_pt.txt") ;
00146     
00147     finsolution
() ;
00148     
00149     finblockquote
() ;
00150     
00151     ## -------------------------------------------------------------------------------------------
00152     
00153     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # PERL : diviseurs de n en \"one-liner\"
00154     
00155     ## -------------------------------------------------------------------------------------------
00156     
00157     blockquote
() ;
00158     
00159     p
("texte") ;
00160     echo "Donner une expression perl en mode "
.b("one liner")." qui indique si un nombre est premier ; on utilisera une "  ;
00161     echo " expression régulière. " 
;
00162     # echo " Recommencer ensuite avec l'affichage des diviseurs. " ;
00163     echo 
" Est-ce efficace pour des grands nombres ? " ;
00164     echo " Que peut-on en conclure sur les expressions régulières&nbsp;? et sur Perl&nbsp;? "
;
00165     finp
() ;
00166     
00167     solution
($numExo) ;
00168     
00169     
00170     p
("texte") ;
00171     echo "Voici une solution qui n'affiche rien si le nombre n'est pas premier et qui écrit explicitement quand le nombre " 
;
00172     echo " est premier&nbsp;:" 
;
00173     finp
() ;
00174     
00175     pre_fichier
("perl_prime.txt","cadre") ;
00176     
00177     p
("texte") ;
00178     echo "Si vous n'avez pas tout compris, une explication est " 
;
00179     echo href
("http://montreal.pm.org/tech/neil_kandalgaonkar.shtml","là")."." ;
00180     finp
() ;
00181     
00182     p
("texte") ;
00183     echo "Ce n'est sans doute pas très efficace, quoique... " 
;
00184     echo "Cela montre la force des expressions régulières. On verra avec d'autres langages comment réutiliser cette expression régulière." 
;
00185     echo " Par exemple, il est possible de consulter la référence "
.href("http://wfr.tcl.tk/1827","1827")." de ".b("wfr.tcl.tk")." pour en voir " ;
00186     echo " l'implémentation en Tcl." 
;
00187     finp
() ;
00188     
00189     finsolution
() ;
00190     
00191     finblockquote
() ;
00192     
00193     ## -------------------------------------------------------------------------------------------
00194     
00195     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # PERL : archivage incrémental de fichiers XML
00196     
00197     ## -------------------------------------------------------------------------------------------
00198     
00199     blockquote
() ;
00200     
00201     p
("texte") ;
00202     echo "Implémenter une version Perl de la sauvegarde incrémentale de fichiers XML comme pour " 
;
00203     echo href
("s1p2.php#tdm7"," l'exercice 7 de la série 2")." . "  ;
00204     finp
() ;
00205     
00206     p
("texte") ;
00207     echo "Reprendre ensuite le script Perl en ajoutant "
.b("use strict&nbsp;;")." en haut du script. " ;
00208     echo " Que faut-il alors changer pour ne pas avoir d'erreurs d'interprétation&nbsp;?" 
;
00209     finp
() ;
00210     
00211     solution
($numExo) ;
00212     
00213     consulter
("archcd.pl") ;
00214     
00215     p
("texte") ;
00216     echo " Avec "
.b("use strict&nbsp;;")." toute variable locale doit &ecirc;tre déclarée à l'aide de " ;
00217     echo b
("my").". Il faut donc ajouter trois ".b("my")." au script&nbsp;:" ;
00218     finp
() ;
00219     
00220     pre_fichier
("archcds.pl","cadre") ;
00221     
00222     finsolution
() ;
00223     finblockquote
() ;
00224     
00225     ## -------------------------------------------------------------------------------------------
00226     
00227     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # PERL : striphtml
00228     
00229     ## -------------------------------------------------------------------------------------------
00230     
00231     blockquote
() ;
00232     
00233     p
("texte") ;
00234     echo "Expliquer ce que fait le programme "
.href("striphtml.pl") ;
00235     echo " dont la partie importante est listée ci-dessous avec des numéros de ligne &nbsp;:" 
;
00236     finp
() ;
00237     
00238     pre_fichier
("striphtml_part.txt","cadrebleu") ;
00239     
00240     p
("texte") ;
00241     echo "On pourra l'appliquer aux deux fichiers " 
;
00242     echo href
("f1.html") ;
00243     echo " et " 
;
00244     echo href
("f2.html") ;
00245     echo " qui sont des portions HTML -- non nécessairement valides -- pour tester ce qui se passe." 
;
00246     finp
() ;
00247     
00248     solution
($numExo) ;
00249     
00250     p
("texte") ;
00251     echo "Le programme Perl enlève toutes les balises HTML et convertit les entités. Ainsi, pour "
.href("f1.html")." on passe de&nbsp;" ;
00252     finp
() ;
00253     
00254     pre_fichier
("f1.html","cadre") ;
00255     
00256     p
("texte") ;
00257     echo "au fichier texte tout simple (mais avec tous les retours-charriot) " 
;
00258     finp
() ;
00259     
00260     pre_fichier
("f1_stripped.txt","cadre") ;
00261     
00262     p
("texte") ;
00263     echo "Ce programme prend en compte les commentaires via la première substitution. Sans cela, pour notre fichier " 
;
00264     echo "on obtiendrait " 
;
00265     finp
() ;
00266     
00267     pre_fichier
("f1_bad.txt","cadre") ;
00268     
00269     
00270     # en ultra-court : s/<(?:[^>'"]*|(['"]).*?\1)*>//gs
00271     
00272     p
("texte") ;
00273     echo "Une solution ultra-courte mais incorrecte est " 
;
00274     echo href
("http://www.rocketaware.com/perl/perlfaq9/How_do_I_remove_HTML_from_a_stri.htm","ici").". " ;
00275     finp
() ;
00276     
00277     finsolution
() ;
00278     
00279     finblockquote
() ;
00280     
00281     ## -------------------------------------------------------------------------------------------
00282     
00283     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # PERL : créer les fichiers dictionnaires d'un texte
00284     
00285     ## -------------------------------------------------------------------------------------------
00286     
00287     blockquote
() ;
00288     
00289     p
("texte") ;
00290     
00291     echo "Essayer de réaliser l'"
.href("s1p2.php#tdm3","exercice 3 de la série 2")." (création des dictionnaires) en PERL. " ;
00292     finp
() ;
00293     
00294     solution
($numExo) ;
00295     
00296     consulter
("dico.pl","cadrejaune","On appréciera la concision des tris.") ;
00297     
00298     finsolution
() ;
00299     
00300     finblockquote
() ;
00301     
00302     ## -------------------------------------------------------------------------------------------
00303     
00304     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # TK avec Tcl, Rexx et Perl
00305     
00306     ## -------------------------------------------------------------------------------------------
00307     
00308     blockquote
() ;
00309     
00310     p
("texte") ;
00311     echo "On voudrait disposer d'un convertisseur cm/pouces et pouces/cm sachant qu'un pouce fait 2,54 cm." 
;
00312     echo " Réaliser l'implémentation en ligne de commandes avec paramètres en Rexx, Tcl et Perl puis " 
;
00313     echo " réaliser une implémentation avec interface graphique en Tcl/Tk puis en Rexx/Tk et Perl/Tk. " 
;
00314     finp
() ;
00315     
00316     p
("texte") ;
00317     echo "On commencera par vérifier l'installation de Tk et l'exemple élémentaire fourni en bas de la page " 
;
00318     echo href
("http://www.tkdocs.com/tutorial/install.html","tkdocs-install").". " ;
00319     finp
() ;
00320     solution
($numExo) ;
00321     
00322     vnc
() ;
00323     
00324     finsolution
() ;
00325     
00326     finblockquote
() ;
00327     
00328     
00329     ## -------------------------------------------------------------------------------------------
00330     
00331     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans webrd_inc.php
00332     
00333     ?>

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)