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 = 6 ;
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 = 0 ;
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 ?" ;
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 = 0 ;
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 demo1") ;
00110 echo " et " ;
00111 echo b("titre \"demo 2 ; sur deux 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ê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 «à la Buerg». " ;
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 :","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 :" ;
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 ?" ;
00246 finp() ;
00247
00248 solution($numExo) ;
00249
00250 p("texte") ;
00251 echo "Oui !" ;
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 :" ;
00258 finp() ;
00259
00260 $img4 = "http://forge.info.univ-angers.fr/~gh/jphistopct.php?vdata=5_20_10_15&titr=B%E9n%E9fices%20pour%204%20mois%20significatifs&xmrks=Jan_Juin_Aout_Dec&tailx=400&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 ?" ;
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 " ?" ;
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&mode=2&idp=1&ndp=Length&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
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")." ? " ;
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 à la page principale de (gH)