Valid XHTML     Valid CSS2    

Listing du fichier s1p2.php

 

00001     <?php
00002     #    (gH)   -_-  s1p2.php  ;  TimeStamp (unix) : 10 Novembre 2012 vers 20:24
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] = "AWK : compter les lignes d'un seul fichier" ;
00023     $idr
++; $tableauDesRubriques[$idr] = "AWK : compter les fichiers par extension" ;
00024     $idr
++; $tableauDesRubriques[$idr] = "AWK : créer les fichiers dictionnaires d'un texte" ;
00025     $idr
++; $tableauDesRubriques[$idr] = "REXX : commandes en session interactive" ;
00026     $idr
++; $tableauDesRubriques[$idr] = "REXX : implémenter range un peu comme en python" ;
00027     $idr
++; $tableauDesRubriques[$idr] = "REXX : exécuter le m&ecirc;me programme AWK sur un ensemble de fichiers" ;
00028     $idr
++; $tableauDesRubriques[$idr] = "REXX : archivage incrémental de fichiers XML " ;
00029     $idr
++; $tableauDesRubriques[$idr] = "REXX : que font ces programmes&nbsp;? " ;
00030     $idr
++; $tableauDesRubriques[$idr] = "REXX : fichiers dictionnaires d'un texte" ;
00031     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00032     $tdmCRLM
->titre() ;
00033     $tdmCRLM
->menu("oui","oui","nou") ;
00034     
00035     pvide
() ;
00036     
00037     p
("texte") ;
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++ ; # AWK : compter les lignes des fichiers
00049     
00050     ## -------------------------------------------------------------------------------------------
00051     
00052     blockquote
() ;
00053     
00054     p
("texte") ;
00055     echo "La commande wc d'Unix, avec l'option -l permet de connaitre le nombre de lignes d'un ou plusieurs fichiers, comme " 
;
00056     echo " le montre la commande suivante&nbsp;:" 
;
00057     finp
() ;
00058     
00059     pre_fichier
("wc_demo.txt","cadre") ;
00060     
00061     p
("texte") ;
00062     echo "On voudrait la compléter pour indiquer le nombre de mots moyen par ligne, avec le nombre minimal et maximal de mots." 
;
00063     echo " Ainsi, on disposera d'un moyen pour tester si toutes les lignes ont le m&ecirc;me nombre de mots. Implémenter un programme AWK " 
;
00064     echo " qui calcule ces valeurs en plus du nombre de lignes. On devra l'exécuter par la commande " 
;
00065     echo b
(" gawk -f nblv1.awk fichier")." mais pour un seul fichier de données. Quel est le défaut de cet appel de programme&nbsp;? Comment avoir un \"help\" de ce programme&nbsp;? " ;
00066     echo " On rappelle que pour AWK la variable FNR correspond au numéro de ligne courant dans le fichier, " 
;
00067     echo " NF au nombre de mots de la ligne courante et FILENAME au nom du fichier. " 
;
00068     echo " Que se passe-t-il si au lieu d'un seul fichier on utilise une notation ambigue&nbsp;? " 
;
00069     echo " Voici un exemple de ce qu'on voudrait obtenir (les espaces et le formatage font partie de l'affichage, voir exercice 6)&nbsp;:" 
;
00070     finp
() ;
00071     
00072     pre_fichier
("nbl_awk.txt","cadre") ;
00073     
00074     p
("texte") ;
00075     echo "On pourra se contenter dans un premier temps de ne calculer que le nombre moyen de mots, affiché avec deux décimales." 
;
00076     finp
() ;
00077     
00078     solution
($numExo) ;
00079     
00080     p
("texte") ;
00081     echo "Puisque ce programme AWK ne doit s'appliquer qu'à un seul fichier, le programme est très simple à écrire&nbsp;:" 
;
00082     echo " on initialise les variables quand on lit la ligne 1, on cumule les NF et on met à jour éventuellement les min et max de NC pour les autres lignes et enfin " 
;
00083     echo " on affiche après avoir lu la dernière ligne du fichier. On peut utiliser NFR en fin de programme comme nombre de lignes lues pour " 
;
00084     echo " calculer la moyenne des NC. Voici un exemple de programme minimal possible nommé "
.href("nblv0.awk")."&nbsp;:" ;
00085     finp
() ;
00086     
00087     pre_fichier
("nblv0.awk","cadrejaune") ;
00088     pre_fichier
("nblv0_res.txt","cadre") ;
00089     
00090     p
("texte") ;
00091     echo "Sur ce principe, et en remettant END \"à sa place\" on peut compléter avec le nombre minimal et maximal de mots par ligne" 
;
00092     echo " soit le fichier "
.href("nblv1.awk")."&nbsp;:" ;
00093     finp
() ;
00094     
00095     pre_fichier
("nblv1.awk","cadrejaune") ;
00096     
00097     p
("texte") ;
00098     echo "Le défaut de ce programme est de ne pas gérer plusieurs fichiers à la fois. Si on l'applique à un ensemble de fichiers, il fournira un résultat " 
;
00099     echo " erroné et n'affichera que des informations -- correctes, mais incomplètes -- pour le dernier fichier. Pour l'appliquer en boucle sur chacun des fichiers passés en " 
;
00100     echo " paramètre, voir l'exercice numéro 6. " 
;
00101     finp
() ;
00102     
00103     
00104     p
("texte") ;
00105     echo "Il n'est pas possible d'avoir de \"help\" sauf à \"bricoler\". Par exemple en admettant que le fichier HELP_nbl.awk_AIDE sert à reconnaitre " 
;
00106     echo " qu'on veut connaitre l'aide, on pourrait écrire quelque chose comme le " 
;
00107     echo " le fichier "
.href("nblv1aide.awk")."&nbsp;:" ;
00108     finp
() ;
00109     
00110     pre_fichier
("nblv1aide.awk","cadrejaune") ;
00111     
00112     p
("texte") ;
00113     echo "Encore faudra-t-il savoir qu'il faut appeler le programme sur ce fichier via " 
;
00114     echo b
("gawk -f nblv1aide.awk  HELP_nbl.awk_AIDE").". " ;
00115     finp
() ;
00116     
00117     p
("texte") ;
00118     echo "En fait, très souvent on n'appelle pas un programme AWK directement. On utilise un script du système " 
;
00119     echo " qui teste les paramètres et affiche l'aide si aucun paramètre n'est fourni et qui sinon exécute le programme avec le \"bon\" " 
;
00120     echo " chemin d'accès (voir l'exercice 6). " 
;
00121     finp
() ;
00122     
00123     finsolution
() ;
00124     
00125     finblockquote
() ;
00126     
00127     ## -------------------------------------------------------------------------------------------
00128     
00129     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # AWK : compter les fichiers par extension
00130     
00131     ## -------------------------------------------------------------------------------------------
00132     
00133     blockquote
() ;
00134     
00135     p
("texte") ;
00136     echo "On aimerait connaitre le nombre de fichiers par extension, avec la taille qu'ils occupent. Ecrire un programme Awk " 
;
00137     echo " pour réaliser cela. " 
;
00138     echo " Voici un exemple de ce qu'on voudrait obtenir pour notre répertoire courant (affichage trié)&nbsp;:" 
;
00139     finp
() ;
00140     
00141     pre_fichier
("statdir_res.txt","cadre") ;
00142     
00143     solution
($numExo) ;
00144     
00145     p
("texte") ;
00146     echo "Consulter le fichier "
.href("statdir.awk")." pour une version proche de la solution, et qui s'utilise par exemple par ".b("ls -al | gawk -f statdir.awk")."&nbsp;:" ;
00147     finp
() ;
00148     
00149     pre_fichier
("statdir.awk","cadrejaune") ;
00150     
00151     
00152     p
("texte") ;
00153     echo "Il reste juste à trier l'affichage, ce que nous laissons à la perspicacité des lecteurs et lectrices." 
;
00154     
00155     finp
() ;
00156     
00157     finsolution
() ;
00158     
00159     finblockquote
() ;
00160     
00161     ## -------------------------------------------------------------------------------------------
00162     
00163     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # AWK : créer les fichiers dictionnaires d'un texte
00164     
00165     ## -------------------------------------------------------------------------------------------
00166     
00167     blockquote
() ;
00168     
00169     p
("texte") ;
00170     echo "On aimerait construirer les dictionnaires alphabétiques et fréquentiels du fichier "
.href("texte.txt") ;
00171     echo " dont le contenu est&nbsp;:" 
;
00172     finp
() ;
00173     
00174     pre_fichier
("texte.txt","cadre") ;
00175     
00176     p
("texte") ;
00177     echo " Voici ce qu'on voudrait obtenir comme dictionnaire alphabétique, soit le fichier "
.b("dico.tpm")."&nbsp;:" ;
00178     finp
() ;
00179     
00180     pre_fichier
("dico_tpm.txt","cadre") ;
00181     
00182     p
("texte") ;
00183     echo " Et voici ce qu'on voudrait obtenir comme dictionnaire fréquentiel, soit le fichier "
.b("dico.tpo").". " ;
00184     echo " Il faut donc trier ici par fréquence décroissante puis par ordre alphabétique croissant en cas " 
;
00185     echo " d'"
.em("exaequo")."&nbsp;:" ;
00186     finp
() ;
00187     
00188     pre_fichier
("dico_tpo.txt","cadre") ;
00189     
00190     solution
($numExo) ;
00191     
00192     p
("texte") ;
00193     echo "Consulter le fichier "
.href("dico.awk")." pour une version proche de la solution&nbsp;:" ;
00194     finp
() ;
00195     
00196     pre_fichier
("dico.awk","cadrejaune") ;
00197     
00198     finsolution
() ;
00199     
00200     finblockquote
() ;
00201     
00202     ## -------------------------------------------------------------------------------------------
00203     
00204     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : commandes en session interactive
00205     
00206     ## -------------------------------------------------------------------------------------------
00207     
00208     blockquote
() ;
00209     
00210     blockquote
() ;
00211     
00212     p
("texte") ;
00213     echo "En mode interactif, avec "
.href("rt.rex")." donner la ou les instructions qui répondent aux questions suivantes&nbsp;:" ;
00214     finp
() ;
00215     
00216     ul
() ;
00217     
00218      debutli
() ; p() ;
00219         echo "quelle est la valeur de 16 puissance 4&nbsp;? et le reste entier de la division de 2012 par 128&nbsp;? " 
;
00220      finp
() ; finli() ;
00221     
00222      debutli
() ; p() ;
00223         echo " quel est le code hexadécimal de A&nbsp; ? et le code décimal de 'xFFF'&nbsp; ? et le code ascii de 'a'&nbsp;? et le caractère de numéro décimal 98&nbsp;?" 
;
00224      finp
() ; finli() ;
00225     
00226      debutli
() ; p() ;
00227         echo " si la variable "
.b("cmd")." contient ".b("\"prog --fmt tex --nbdec 4 --fichier demo.rex\"")." comment récupérer la valeur de l'option ".b("--fmt") ;
00228         echo " c'est-à-dire "
.b("tex")."&nbsp;? " ;
00229      finp
() ; finli() ;
00230     
00231      debutli
() ; p() ;
00232         echo " si "
.b("phr")." contient ".b("\"A2837 12 18 37 25\"")." comment transférer dans la variable numData toutes les valeurs après le premier mot (soit ici A2837)&nbsp;? "  ;
00233      finp
() ; finli() ;
00234     
00235      debutli
() ; p() ;
00236         echo " combien vaut factorielle 8&nbsp;?" 
;
00237      finp
() ; finli() ;
00238     
00239      debutli
() ; p() ;
00240         echo " comment afficher ou mettre dans une variable la date et l'heure&nbsp;?" 
;
00241      finp
() ; finli() ;
00242     
00243      debutli
() ; p() ;
00244         echo " comment calculer la moyenne des valeurs contenues dans la chaine de caractères \"12 5 20 8 15\"&nbsp;?" 
;
00245      finp
() ; finli() ;
00246     
00247      debutli
() ; p() ;
00248         echo " comment souligner avec des tirets la chaine de caractères "
.b("\"ceci est mon titre\"")."&nbsp;?" ;
00249      finp
() ; finli() ;
00250     
00251     finul
() ;
00252     
00253     finblockquote
() ;
00254     
00255     solution
($numExo) ;
00256     
00257     p
("texte") ;
00258     echo "Voici un exemple de solution en session interactive&nbsp;:" 
;
00259     finp
() ;
00260     
00261     pre_fichier
("rt_sol.txt","cadrebleu") ;
00262     
00263     finsolution
() ;
00264     
00265     finblockquote
() ;
00266     
00267     ## -------------------------------------------------------------------------------------------
00268     
00269     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : implémenter range comme en python
00270     
00271     ## -------------------------------------------------------------------------------------------
00272     
00273     blockquote
() ;
00274     
00275     blockquote
() ;
00276     
00277     p
("texte") ;
00278     echo "Implémenter une fonction "
.b("range()")." en REXX un peu comme Python, mais en commençant à l'indice 1. " ;
00279     echo " On viendra compléter le fichier "
.href("range.rex")." suivant qui indique ce qu'on veut obtenir&nbsp;:" ;
00280     finp
() ;
00281     
00282     pre_fichier
("range.rex","cadrebleu") ;
00283     
00284     finblockquote
() ;
00285     
00286     solution
($numExo) ;
00287     
00288     p
("texte") ;
00289     echo "Dans la mesure où REXX dispose d'une boucle "
.b("do / = / to / by / end")." le problème est juste de bien " ;
00290     echo " gérer les paramètres, ici séparés par des virgules, d'où le fichier solution " 
;
00291     echo href
("range_sol.rex")."&nbsp;:" ;
00292     finp
() ;
00293     
00294     pre_fichier
("range_sol.rex","cadrebleu") ;
00295     pre_fichier
("range_sol.txt","cadre") ;
00296     
00297     p
("texte") ;
00298     echo "Pour ceux et celles qui préfèrent une séparation des paramètres par des espaces,  " 
;
00299     echo " consulter "
.href("range_sol1.rex").". " ;
00300     finp
() ;
00301     
00302     finsolution
() ;
00303     
00304     finblockquote
() ;
00305     
00306     ## -------------------------------------------------------------------------------------------
00307     
00308     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX et AWK : exécuter le m&ecirc;me programme AWK sur un ensemble de fichiers
00309     
00310     ## -------------------------------------------------------------------------------------------
00311     
00312     blockquote
() ;
00313     
00314     blockquote
() ;
00315     
00316     p
("texte") ;
00317     echo "Reprendre l'exercice 1. On utilisera REXX pour afficher un \"help\" si on ne fournit aucun paramètre ; " 
;
00318     echo " sinon, on exécutera la commande "
.b("gawk&nbsp;-f&nbsp;nblv2.awk")." sur chacun des fichiers passés en paramètre " ;
00319     echo " (notation ambigue avec * et ? possible). " 
;
00320     finp
() ;
00321     
00322     finblockquote
() ;
00323     
00324     solution
($numExo) ;
00325     
00326     p
() ;
00327     echo "Là encore, il s'agit juste de bien gérer les paramètres. On remarquera dans la solution la composition \"à la volée\" de la " 
;
00328     echo " commande à exécuter." 
;
00329     finp
() ;
00330     
00331     pre_fichier
("nbl.rex","cadrebleu") ;
00332     pre_fichier
("nblv2.awk","cadrejaune") ;
00333     pre_fichier
("nbl_rex.txt","cadre") ;
00334     
00335     finsolution
() ;
00336     
00337     finblockquote
() ;
00338     
00339     ## -------------------------------------------------------------------------------------------
00340     
00341     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : archivage incrémental de fichiers XML
00342     
00343     ## -------------------------------------------------------------------------------------------
00344     
00345     blockquote
() ;
00346     
00347     blockquote
() ;
00348     
00349     p
("texte") ;
00350     echo "On voudrait qu'à l'exécution du script "
.s_span("archcd.rex","gbleuf")." il y ait une production automatique de l'archive " ;
00351     echo " pour tous les fichiers de type xml avec numérotation de l'archive. " 
;
00352     echo " Par exemple la première fois que le script est exécuté, on produira l'archive "
.b("lesxml001.tar")." ; " ;
00353     echo " la seconde fois, ce sera "
.b("lesxml002.tar")." etc. " ;
00354     echo " L'algorithme de base ressemble certainement à " 
;
00355     finp
() ;
00356     
00357     pre_fichier
("archivage_alg.txt","cadrebleu") ;
00358     
00359     p
("texte") ;
00360     echo "On pourra utiliser " 
;
00361     echo href
("REXXUT.rex","REXXUT") ;
00362     echo " et " 
;
00363     echo href
("FILEUT.rex","FILEUT") ;
00364     echo "." 
;
00365     finp
() ;
00366     
00367     finblockquote
() ;
00368     
00369     solution
($numExo) ;
00370     
00371     p
() ;
00372     echo "Consulter le fichier "
.href("archcd.rex")."&nbsp;:" ;
00373     finp
() ;
00374     
00375     pre_fichier
("archcd.rex","cadrejaune") ;
00376     
00377     p
() ;
00378     echo "Exemple d'utilisation&nbsp;:" 
;
00379     finp
() ;
00380     
00381     pre_fichier
("archcd_rex.txt","cadre") ;
00382     
00383     finsolution
() ;
00384     
00385     finblockquote
() ;
00386     
00387     
00388     ## -------------------------------------------------------------------------------------------
00389     
00390     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : que font ces programmes ?
00391     
00392     ## -------------------------------------------------------------------------------------------
00393     
00394     blockquote
() ;
00395     
00396     blockquote
() ;
00397     
00398     p
("texte") ;
00399     echo "Que fait le programme REXX nommé "
.href("catv.rex")."&nbsp;? " ;
00400     echo "Et les macros pour éditeur "
.href("av.sedit").", ".href("ts.sedit")." et ".href("exec.sedit")."&nbsp;?" ;
00401     finp
() ;
00402     
00403     finblockquote
() ;
00404     
00405     solution
($numExo) ;
00406     
00407     # mettre des versions avec numéros de lignes pour les explications
00408     
00409     p
("texte") ;
00410     echo "Après lecture du fichier-programme REXX nommé "
.href("catv.rex")." dont nous avons numéroté les lignes, " ;
00411     finp
() ;
00412     
00413     pre_fichier
("catv_rex.txt","cadrejaune") ;
00414     
00415     p
("texte") ;
00416     echo " on peut comprendre que ce programme REXX lit deux fichiers dont les noms sont passés en paramètre " 
;
00417     echo " (lignes 23 et 24) " 
;
00418     echo " et qu'il met met bout à bout soit une concaténation verticale " 
;
00419     echo " (lignes 34 à 40 ) " 
;
00420     echo " les lignes des deux fichiers. " 
;
00421     echo " Par exemple, avec les deux fichiers " 
;
00422     $f1 
"gauche.txt" ;
00423     $f2 
"droite.txt" ;
00424     $f3 
"gd2.txt" ;
00425     echo href
("$f1") ;
00426     echo " et " 
;
00427     echo href
("$f2") ;
00428     echo " la commande "
.b("catv $f1 $f2 3 35")." produit le fichier " ;
00429     echo href
("$f3").". " ;
00430     echo " Si on ne passe pas de paramètre de taille de ligne après les noms de fichier et si le fichier de gauche n'a pas des lignes de " 
;
00431     echo " m&ecirc;me longueur, le résultat est \"cahotique\" comme pour le fichier "
.href("gd1.txt").". " ;
00432     echo " On remarquera l'initialisation des "
.b("stem")." (tableaux) ligne 19 qui permet de ne pas se préoccuper de lignes inexistantes... " ;
00433     finp
() ;
00434     
00435     pre_fichier
("$f1","cadrejaune") ;
00436     pre_fichier
("$f2","cadrejaune") ;
00437     pre_fichier
("$f3","cadrebleu") ;
00438     
00439     
00440     p
("texte") ;
00441     echo "L'étudiant Hossam Eddine BENHOUD a réussi à trouver une commande Unix à peu près équivalente. " 
;
00442     echo "Il suffit d'écrire "
.b("pr&nbsp;-m&nbsp;-t&nbsp;fichier1&nbsp;fichier2").". Bravo Hossam Edine&nbsp;!" ;
00443     finp
() ;
00444     
00445     p
("texte") ;
00446     echo "La macro-programme REXX pour éditeur nommée "
.href("av.sedit") ;
00447     finp
() ;
00448     
00449     pre_fichier
("av_sedit.txt","cadrejaune") ;
00450     
00451     p
("texte") ;
00452     echo "vient sauvegarder dans le répertoire ~/Tmp une copie du fichier en cours d'édition avec le m&ecirc;me nom et de m&ecirc;me " 
;
00453     echo " extension mais avec insertion d'un numéro entier sur 4 positions autoincrémenté. Ainsi pour le fichier "
.b("s1p2.php") ;
00454     echo " l'exécution de la macro, en ligne de commande-éditeur ou avec une touche comme F2 vient sauvegarder le fichier actuel comme " 
;
00455     echo b
("s1p2.0001.php")." ; la seconde exécution produit ".b("s1p2.0002.php")." etc." ;
00456     echo " La fonction "
.b("state")." à la ligne 19 et à la ligne 26 renvoie 0 si le fichier n'existe pas, un entier positif sinon." ;
00457     finp
() ;
00458     
00459     p
("texte") ;
00460     echo "La macro-programme REXX pour éditeur nommée "
.href("ts.sedit") ;
00461     finp
() ;
00462     
00463     pre_fichier
("ts_sedit.txt","cadrejaune") ;
00464     
00465     p
("texte") ;
00466     echo "ajoute en haut de fichier une ligne qui donne la date et l'heure. Si la ligne existe déjà, elle est mise à jour. " 
;
00467     echo " La ligne est insérée comme un commentaire s'il s'agit d'un fichier-programme, avec le format de commenatire " 
;
00468     echo " lié au langage. Par exemple, appliquée au fichier "
.b("s1p2.php") ;
00469     echo " il y a insertion de quelque chose comme" 
;
00470     finp
() ;
00471     
00472     pre_fichier
("ts_demo1.txt","cadre") ;
00473     
00474     p
("texte") ;
00475     echo "Pour un fichier REXX comme par exemple "
.b("s1p2.rex").", le commentaire sera&nbsp;:" ;
00476     finp
() ;
00477     
00478     pre_fichier
("ts_demo2.txt","cadre") ;
00479     
00480     p
("texte") ;
00481     echo "La correction pour "
.b("exec.sedit")." n'est volontairement pas fournie." ;
00482     finp
() ;
00483     
00484     finsolution
() ;
00485     
00486     finblockquote
() ;
00487     
00488     ## -------------------------------------------------------------------------------------------
00489     
00490     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # REXX : créer les fichiers dictionnaires d'un texte
00491     
00492     ## -------------------------------------------------------------------------------------------
00493     
00494     blockquote
() ;
00495     
00496     blockquote
() ;
00497     
00498     p
("texte") ;
00499     echo "Essayer de réaliser l'exercice 3 proposé pour AWK (création des dictionnaires) en REXX. " 
;
00500     finp
() ;
00501     
00502     finblockquote
() ;
00503     
00504     solution
($numExo) ;
00505     
00506     p
("texte") ;
00507     echo "Consulter "
.href("dico.rex")." sachant qu'on utilise les bibliothèques de fonctions (gH) nommées " ;
00508     echo " "
.href("FILEUT.rex")." et " ;
00509     echo " "
.href("REXXUT.rex").". " ;
00510     finp
() ;
00511     
00512     pre_fichier
("dico.rex","cadre") ;
00513     
00514     pre_fichier
("FILEUT.rex","cadrebleu") ;
00515     pre_fichier
("REXXUT.rex","cadrejaune") ;
00516     
00517     
00518     finsolution
() ;
00519     
00520     finblockquote
() ;
00521     
00522     
00523     ## -------------------------------------------------------------------------------------------
00524     
00525     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans webrd_inc.php
00526     
00527     ?>

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)