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
= 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&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
= 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&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)