Valid XHTML     Valid CSS2    

Listing du fichier s1p6.php

 

00001     <?php
00002     #    (gH)   -_-  s1p6.php  ;  TimeStamp (unix) : 10 Janvier 2013 vers 08:49
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 fichiers par extension" ;
00023     $idr
++; $tableauDesRubriques[$idr] = "Rexx : déplacement rapidement dans les répertoires et sauvegarde" ;
00024     $idr
++; $tableauDesRubriques[$idr] = "Perl : créer une page de titre en PDF " ;
00025     $idr
++; $tableauDesRubriques[$idr] = "Perl : produire un document RTF (Word) pour des listes de fichiers " ;
00026     $idr
++; $tableauDesRubriques[$idr] = "Php  : produire un document CSV (Excel)  ou RTF (Word) pour des listes de fichiers " ;
00027     $idr
++; $tableauDesRubriques[$idr] = "Tcl/Tk :  visualisation rapide de fichiers" ;
00028     $idr
++; $tableauDesRubriques[$idr] = "Tcl/Tk :  visualisation d'un arbre symbolique avec ramifications " ;
00029     $idr
++; $tableauDesRubriques[$idr] = "Php : produire un histogramme en .PNG à l'aide de JpGraph " ;
00030     $idr
++; $tableauDesRubriques[$idr] = "Php : produire des boxplots et beanplots " ;
00031     $idr
++; $tableauDesRubriques[$idr] = "Et R, alors ? Et Sweave&nbsp;?" ;
00032     $tdmCRLM 
= new tdm($tableauDesRubriques) ;
00033     $tdmCRLM
->titre() ;
00034     $tdmCRLM
->menu("oui","oui","nou") ;
00035     
00036     pvide
() ;
00037     
00038     p
() ;
00039      echo "Il est possible d'afficher toutes les solutions via "
.href("s1p$numSerie.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00040     finp
() ;
00041     
00042     finSection
() ;
00043     
00044     debutSection
() ;
00045     $numExo 
;
00046     
00047     ## -------------------------------------------------------------------------------------------
00048     
00049     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Awk  : compter les fichiers par extension
00050     
00051     ## -------------------------------------------------------------------------------------------
00052     
00053     blockquote
() ;
00054     
00055     p
("texte") ;
00056     echo "On voudrait connaitre le nombre de fichiers par extension d'un répertoire et le cumul de leur taille " 
;
00057     echo " (par exemple, 15 fichiers .txt de taille cumulée 250 kO, 3 fichiers .rex de taille 30kO...). Implémenter la solution avec Gawk." 
;
00058     finp
() ;
00059     
00060     solution
($numExo) ;
00061     
00062     consulter
("statdir_awk.txt","cadrejaune","qui s'applique au fichier ".b("dir.dir")." obtenu par ".b("ls -al > dir.dir")."." ) ;
00063     
00064     finsolution
() ;
00065     
00066     finblockquote
() ;
00067     
00068     ## -------------------------------------------------------------------------------------------
00069     
00070     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Rexx : déplacement rapidement dans les répertoires et sauvegarde
00071     
00072     ## -------------------------------------------------------------------------------------------
00073     
00074     blockquote
() ;
00075     
00076     p
("texte") ;
00077     echo "Au lieu de la commande Unix ou Dos nommée "
.b("cd")." on voudrait disposer d'une commande ".b("go")." qui n'utilise que deux ou trois lettres " ;
00078     echo " pour aller dans le \"bon\" répertoire. Implémenter une solution Rexx avec un tableau associatif qui fournit une table de " 
;
00079     echo " correspondance entre le \"vrai\" chemin et l'abbréviation." 
;
00080     finp
() ;
00081     
00082     solution
($numExo) ;
00083     
00084     p
("texte") ;
00085     echo "Il s'agit de l'"
.href("../Farcompr/sacex.htm#p2","exercice 1 de la partie 2","gbleuf nou")." de mon cours " ;
00086     echo href
("../Farcompr/sac.htm","SAC"). " ; la correction des exercices est nommée ".href("../Farcompr/sacor.htm","sacor","gbleuf").". " ;
00087     finp
() ;
00088     
00089     finsolution
() ;
00090     
00091     finblockquote
() ;
00092     
00093     ## -------------------------------------------------------------------------------------------
00094     
00095     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Perl : créer une page de titre en PDF
00096     
00097     ## -------------------------------------------------------------------------------------------
00098     
00099     blockquote
() ;
00100     
00101     p
("texte") ;
00102     echo "Réaliser en Perl une commande "
.b("titre")." qui produit un document PDF avec une page de titre paramétrée comme ".href("titre.pdf") ;
00103     echo " obtenu par "
.b("titre \"production automatique ; de documents structurés\"").". " ;
00104     echo " Afin de voir ce qui est fixe et ce qui est variable, on pourra comparer " 
;
00105     echo href
("xmp1.tex") ;
00106     echo " et " 
;
00107     echo href
("xmp2.tex") ;
00108     echo " obtenus respectivement par les commandes " 
;
00109     echo b
("titre&nbsp;demo1") ;
00110     echo " et " 
;
00111     echo b
("titre&nbsp;\"demo&nbsp;2&nbsp;;&nbsp;sur&nbsp;deux&nbsp;lignes\"").". " ;
00112     finp
() ;
00113     
00114     solution
($numExo) ;
00115     
00116     consulter
("titre_pl.txt",""," ","non") ;
00117     
00118     p
("texte") ;
00119     echo "La dernière commande utilisée, nommée "
.b("dct")." est en fait l'appel du script ".b("dct.rex")." qui compose avec LaTeX le document "  ;
00120     echo " créé par Perl et qui vient le convertir en PDF." 
;
00121     finp
() ;
00122     
00123     pre_fichier
("dct_rex.txt","cadrejaune") ;
00124     
00125     finsolution
() ;
00126     
00127     finblockquote
() ;
00128     
00129     ## -------------------------------------------------------------------------------------------
00130     
00131     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Perl : produire un document RTF (Word) pour des listes de fichiers
00132     
00133     ## -------------------------------------------------------------------------------------------
00134     
00135     blockquote
() ;
00136     
00137     p
("texte") ;
00138     echo "On voudrait obtenir un document lisible par Word avec des styles prédéfinis et une numérotation des pages qui " 
;
00139     echo " recense les fichiers *.DSC d'un répertoire, par ordre alphabétique et par ordre décroissant de date. On utilisera Perl. " 
;
00140     echo " Un exemple de fichier résultat est "
.href("alldsc.rtf").". " ;
00141     finp
() ;
00142     
00143     solution
($numExo) ;
00144     
00145     p
("texte") ;
00146     echo "Il s'agit de l'"
.href("../Farcompr/sacex.htm#p2","exercice 3 de la partie 1","gbleuf nou")." de mon cours " ;
00147     echo href
("../Farcompr/sac.htm","SAC"). " ; la correction des exercices est nommée ".href("../Farcompr/sacor.htm","sacor","gbleuf").". " ;
00148     echo " Le fichier perl est donc "
.href("alldsc_pl.txt").". " ;
00149     finp
() ;
00150     
00151     finsolution
() ;
00152     
00153     finblockquote
() ;
00154     
00155     ## -------------------------------------------------------------------------------------------
00156     
00157     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Php  : produire un document CSV (Excel) ou RTF (Word) pour des listes de fichiers
00158     
00159     ## -------------------------------------------------------------------------------------------
00160     
00161     blockquote
() ;
00162     
00163     p
("texte") ;
00164     echo "On voudrait maintenant fournir la m&ecirc;me liste de fichiers qu'à l'exercice précédent mais au format Excel de façon " 
;
00165     echo " à pouvoir effectuer des calculs sur les données de la liste. On utilisera Php en ligne de commande. " 
;
00166     finp
() ;
00167     
00168     solution
($numExo) ;
00169     
00170     p
("texte") ;
00171     echo "Cette fois, il s'agit de l'"
.href("../internet/tds.php","exercice 30 de la partie 5 (php)","gbleuf nou")." de mon cours " ;
00172     echo href
("../internet/pdc.php","Technologie internet","gbleuf"). " ; la correction des exercices est nommée ".href("../internet/solutions.php","solutions","gbleuf").". " ;
00173     echo " Le fichier php est donc "
.href("alldsc_php.txt").". " ;
00174     finp
() ;
00175     
00176     finsolution
() ;
00177     
00178     finblockquote
() ;
00179     
00180     ## -------------------------------------------------------------------------------------------
00181     
00182     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Tcl/Tk :  visualisation rapide de fichiers
00183     
00184     ## -------------------------------------------------------------------------------------------
00185     
00186     blockquote
() ;
00187     
00188     p
("texte") ;
00189     echo "La visualisation massive de documents avec la commande Unix nommée "
.b("more")." est pratique mais incomplète car elle ne permet de visualiser " ;
00190     echo " que les contenu textes, pas les informations des fichiers. Réaliser en Tcl/Tk une visualisation &laquo;à la Buerg&raquo;. " 
;
00191     echo " Plus de détails "
.href("http://www.fileviewer.com/Tour.html","ici").". " ;
00192     finp
() ;
00193     
00194     solution
($numExo) ;
00195     
00196     consulter
("listgh_tcl.txt",""," En voici deux copies d'écran &nbsp;:","non") ;
00197     
00198     $img1 
"listgh1.png" ;
00199     $img2 
"listgh2.png" ;
00200     table
(0,20) ; tr() ;
00201     td
() ; echo href($img1,img($img1,$img1,"350")) ; fintd() ;
00202     td
() ; echo href($img2,img($img2,$img2,"350")) ; fintd() ;
00203     fintr
() ; fintable() ;
00204     finsolution
() ;
00205     
00206     finblockquote
() ;
00207     
00208     ## -------------------------------------------------------------------------------------------
00209     
00210     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Tcl/Tk :  visualisation d'un arbre symbolique avec ramifications
00211     
00212     ## -------------------------------------------------------------------------------------------
00213     
00214     blockquote
() ;
00215     
00216     p
("texte") ;
00217     echo "Un arbre symbolique ramifié est simplement une chaine de caractères où les crochets représentent une ramification. " 
;
00218     echo " Implémenter en Tcl/Tk une visualisation de tels arbre. Voici un exemple possible d'interface&nbsp;:" 
;
00219     finp
() ;
00220     
00221     
00222     $img3 
"app.jpg" ;
00223     table
() ; tr() ;
00224     td
() ; echo href($img3,img($img3,$img3,"350")) ; fintd() ;
00225     fintr
() ; fintable() ;
00226     
00227     solution
($numExo) ;
00228     
00229     consulter
("str2af_tcl.txt",""," ","non") ;
00230     
00231     finsolution
() ;
00232     
00233     finblockquote
() ;
00234     
00235     ## -------------------------------------------------------------------------------------------
00236     
00237     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Php : produire une histogramme en .PNG à l'aide de JpGraph
00238     
00239     ## -------------------------------------------------------------------------------------------
00240     
00241     blockquote
() ;
00242     
00243     p
("texte") ;
00244     echo "On veut produire régulièrement des histogrammes en PHP via une URL simple. Sachant que " 
;
00245     echo href
("http://jpgraph.net/","JpGraph")." fournit de tels graphiques, peut-on facilement l'interfacer&nbsp;?" ;
00246     finp
() ;
00247     
00248     solution
($numExo) ;
00249     
00250     p
("texte") ;
00251     echo "Oui&nbsp;!" 
;
00252     finp
() ;
00253     
00254     p
("texte") ;
00255     echo "Ma page " 
;
00256     echo href
("../jphistopct.php","jphistopct") ;
00257     echo " montre comment réaliser une telle implémentation, ce qui permet de produire des histogrammes comme ci-dessous&nbsp;:" 
;
00258     finp
() ;
00259     
00260     $img4 
"http://forge.info.univ-angers.fr/~gh/jphistopct.php?vdata=5_20_10_15&amp;titr=B%E9n%E9fices%20pour%204%20mois%20significatifs&amp;xmrks=Jan_Juin_Aout_Dec&amp;tailx=400&amp;taily=250" ;
00261     table
(0,25) ; tr() ;
00262     td
() ; echo href($img4,img($img4,$img4,"350")) ; fintd() ;
00263     fintr
() ; fintable() ;
00264     
00265     finsolution
() ;
00266     
00267     finblockquote
() ;
00268     
00269     ## -------------------------------------------------------------------------------------------
00270     
00271     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Php : produire des boxplots et beanplots " ;
00272     
00273     ## -------------------------------------------------------------------------------------------
00274     
00275     blockquote
() ;
00276     
00277     p
("texte") ;
00278     echo "Une représentation graphique intéressante de valeurs numérique se nomme " 
;
00279     echo href
("http://fr.wikipedia.org/wiki/Bo%C3%AEte_%C3%A0_moustaches","boxplot") ;
00280     echo " en statistiques. Peut-on disposer facilement et rapidement de tels graphiques en Php, via " 
;
00281     echo href
("http://jpgraph.net/","JpGraph")." par exemple&nbsp;?" ;
00282     echo " et pour les variantes nommées " 
;
00283     echo href
("http://www.jstatsoft.org/v28/c01/paper","beanplot") ;
00284     echo " et " 
;
00285     echo href
("http://en.wikipedia.org/wiki/Violin_plot","violinplot") ;
00286     echo "&nbsp;?" 
;
00287     finp
() ;
00288     
00289     
00290     solution
($numExo) ;
00291     
00292     echo "Malheureusement, non. Ce sont des graphiques spécialisés. Par contre le "
.href("../tuteurs/tutrstat.htm","logiciel R","grouge nou")." dispose de fonctions dédiées, avec de " ;
00293     echo " nombreuses options. Voir par exemple la documentation R de " 
;
00294     echo href
("http://finzi.psych.upenn.edu/R/library/graphics/html/boxplot.html","boxplot()") ;
00295     echo ", " 
;
00296     echo href
("http://finzi.psych.upenn.edu/R/library/beanplot/html/beanplot.html","beanplot()") ;
00297     echo " et " 
;
00298     echo href
("http://finzi.psych.upenn.edu/R/library/UsingR/html/violinplot.html","violinplot()") ;
00299     echo ". " 
;
00300     echo " Ce qu'il reste à faire, c'est interfacer R et Php, ce qui n'est pas très compliqué. Voir par exemple notre fichier " 
;
00301     echo href
("montresource.php?nomfic=statuno.php","statuno.php") ;
00302     echo " dont une application se trouve à l'adresse " 
;
00303     echo href
("http://forge.info.univ-angers.fr/~gh/Leadb/index.php?action=12&amp;mode=2&amp;idp=1&amp;ndp=Length&amp;ndpl=Number+of+amino+acids","LEADB/Stat") ;
00304     echo ". Ci-dessous, un exemple de PNG produit." 
;
00305     
00306     $img5
"bb.png" ;
00307     table
(0,25) ; tr() ;
00308     td
() ; echo href($img5,img($img5,$img5,"350")) ; fintd() ;
00309     fintr
() ; fintable() ;
00310     
00311     p
("texte") ;
00312     echo "R est  la fois un langage de scripts et un ensemble de fonctions dédiées aux statisiques et aux graphiques. " 
;
00313     echo "Le site de dépot est nommé "
.href("http://cran.r-project.org/","CRAN").". On pourra consulter " ;
00314     echo href
("http://forge.info.univ-angers.fr/~gh/wstat/statghfns.php","statghfns")." pour voir des exemples de fonctions " ;
00315     echo " programmées en R." 
;
00316     finp
() ;
00317     
00318     finsolution
() ;
00319     
00320     finblockquote
() ;
00321     
00322     ## -------------------------------------------------------------------------------------------
00323     
00324     $tdmCRLM
->afficheRubrique("oui") ; $numExo++ ; # Et R, alors ? Et Sweave&nbsp;
00325     
00326     ## -------------------------------------------------------------------------------------------
00327     
00328     blockquote
() ;
00329     
00330     p
("texte") ;
00331     echo "Pourquoi R n'est-il pas utilisé dans ce cours ? Et Sweave ? " 
;
00332     echo " Qu'est-ce que Rstudio ? Et "
.b("shiny")."&nbsp;? " ;
00333     finp
() ;
00334     
00335     
00336     solution
($numExo) ;
00337     
00338     p
("texte") ;
00339     echo "Comme indiqué à la question précédente, le " 
;
00340     echo href
("../tuteurs/tutrstat.htm","logiciel R","grouge nou") ;
00341     echo " est  la fois un langage de scripts et un ensemble de fonctions dédiées aux statisiques et aux graphiques. " 
;
00342     echo " Il faudrait d'abord suivre un cours de statistiques avant d'en profiter, ce qui dépasse le cadre de ce cours. " 
;
00343     echo " Sweave est une solution logicielle qui mélange astucieusement du code LaTeX et du code R pour produire des documents avec des " 
;
00344     echo " résultats statistiques intégrés à la volée. Voir le "
.href("http://www.stat.uni-muenchen.de/~leisch/Sweave/","site officiel de Sweave","gbleu nou").". " ;
00345     echo " Enfin, "
.href("http://www.rstudio.com/","Rstudio")." est un éditeur (IDE) qui permet de programmer en R, " ;
00346     echo " de façon interactive ou par programme, de produire des documents Sweave et " 
;
00347     echo href
("http://www.rstudio.com/shiny/","shiny")." permet de réaliser calculs statistiques avec de l'interactivité. " ;
00348     finp
() ;
00349     
00350     finsolution
() ;
00351     
00352     finblockquote
() ;
00353     
00354     
00355     ## -------------------------------------------------------------------------------------------
00356     
00357     finPageExercices
($numSerie) ; # contient finSection() et finPage() ; la fonction est dans scripts_inc.php
00358     
00359     ?>

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)