Listing du fichier l2a_tp3.php
00001 <?php
00002 # (gH) -_- l2a_tp3.php ; TimeStamp (unix) : 31 Mars 2013 vers 12:08
00003
00004 error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00005 include("std.php") ;
00006 include("l2a_inc.php") ;
00007
00008 $numTp = 3 ;
00009 debutPageTp($numTp) ;
00010
00011 ## -------------------------------------------------------------------------------------------
00012
00013 sdl(3) ; echo cmt(' pour afficher toutes les solutions : l2a_tp'.$numTp.'.php?solutions=1') ; sdl(3) ;
00014
00015 ## -------------------------------------------------------------------------------------------
00016
00017 debutSection() ;
00018
00019 $tableauDesRubriques = array() ;
00020 $idr = 0 ;
00021 $idr++; $tableauDesRubriques[$idr] = "Objets en PHP" ;
00022 $idr++; $tableauDesRubriques[$idr] = "La structure de données ".b("\"pile\"")." version 3" ;
00023 $idr++; $tableauDesRubriques[$idr] = "PHP et histogrammes avec JPGRAPH" ;
00024 $idr++; $tableauDesRubriques[$idr] = "PHP, MySQL et histogrammes" ;
00025 $idr++; $tableauDesRubriques[$idr] = "Ecrire du PDF avec PHP" ;
00026 $idr++; $tableauDesRubriques[$idr] = "Lire des fichiers Excel avec PHP" ;
00027 $idr++; $tableauDesRubriques[$idr] = "Afficher du code PHP " ;
00028 $idr++; $tableauDesRubriques[$idr] = "Afficher/masquer des solutions avec Javascript" ;
00029 $idr++; $tableauDesRubriques[$idr] = "PHP, XML et DOM" ;
00030 $idr++; $tableauDesRubriques[$idr] = "PHP, XML et Ajax" ;
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("l2a_tp$numTp.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00039 finp() ;
00040
00041 finSection() ;
00042
00043 debutSection() ;
00044 $numExo = 0 ;
00045
00046 ## -------------------------------------------------------------------------------------------
00047
00048 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Objets en PHP
00049
00050 ## -------------------------------------------------------------------------------------------
00051
00052 blockquote() ;
00053
00054 blockquote() ;
00055
00056 p("texte") ;
00057 echo "Implémenter une classe d'objets Personnes avec nom et prénom puis deux sous-classes Producteurs et Artistes de Personnes, " ;
00058 echo " avec Acteurs et MetteursEnScène comme sous-classes d'Artistes qui incluent respectivement une année de naissance et une " ;
00059 echo " liste de films. " ;
00060 echo "On se servira des tables vues à l'".href("l2a_tp2.php?solutions=1#tdm6","exercice 6","grouge nou")." du TP2 pour saisir quelques personnes." ;
00061 echo " Est-ce une bonne idée de séparer les classes Acteurs et MetteursEnScène ?" ;
00062 finp() ;
00063
00064 p("texte") ;
00065 echo b("Remarque :")." on viendra ajouter des propriétés getAnNaissanceFromTable, getListeFilmsFromTable etc. " ;
00066 finp() ;
00067
00068 /*
00069 p("texte") ;
00070 echo "Ecrire ensuite un formulaire en PHP conceptuel qui reproduit le code XHTML suivant et implémenter le programme " ;
00071 echo " correspondant à l'attribut ".b("action").". " ;
00072 echo " La page Web correspondante est ".href("artform.php")."." ;
00073 finp() ;
00074
00075 pre_fichier("artform.txt","cadre") ;
00076 */
00077
00078 finblockquote() ;
00079
00080 solution($numExo,$numTp) ;
00081
00082 p("texte") ;
00083 echo "Consulter ".href("artistes.php")." et son code-source via le lien en bas de la page affichée pour la définition et l'utilisation " ;
00084 echo " de la classe d'objets ".b("Personnes").". " ;
00085 finp() ;
00086
00087 /*
00088 p("texte") ;
00089 echo "Pour reproduire le formulaire, voir son ".href("montresource.php?nomfic=artform.php","code-source","gbleu nou")." numéroté, soit l'extrait de code suivant :" ;
00090 finp() ;
00091
00092 pre_fichier("artform_extrait.txt","cadrejaune") ;
00093 */
00094
00095 finsolution() ;
00096
00097 finblockquote() ;
00098
00099 ## -------------------------------------------------------------------------------------------
00100
00101 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # La structure de données ".b("\"pile\"")." version 3" ;
00102
00103 ## -------------------------------------------------------------------------------------------
00104
00105 blockquote() ;
00106
00107 blockquote() ;
00108
00109 p("texte") ;
00110 echo "Reprendre l'implémentation ligne de commande d'une pile en programmation objets. " ;
00111 echo " Voici comment on voudrait l'utiliser :" ;
00112 finp() ;
00113
00114 pre_fichier("pilev3_demo.php","cadrebleu") ;
00115
00116 finblockquote() ;
00117
00118 solution($numExo,$numTp) ;
00119
00120 pre_fichier("pilev3.php","cadre") ;
00121
00122 finsolution() ;
00123
00124 finblockquote() ;
00125
00126 ## -------------------------------------------------------------------------------------------
00127
00128 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP et histogrammes avec JPGRAPH
00129
00130 ## -------------------------------------------------------------------------------------------
00131
00132 blockquote() ;
00133
00134 blockquote() ;
00135
00136 p("texte") ;
00137 echo "Produire avec PHP un histogramme des fréquences relatives associées aux valeurs 3 6 11 5 " ;
00138 echo " pour les jours lundi, mardi, jeudi et vendredi. Il s'agit de km parcourus par un " ;
00139 echo b("google car").". On essaiera de trouver plusieurs solutions pour construire la bonne URL. " ;
00140 echo " Voici ce qu'on doit obtenir :" ;
00141 finp() ;
00142
00143 p() ;
00144 nbsp(7) ;
00145 $url = "../jphistopct.php?vdata=3_6_11_5&xmrks=Lundi_Mardi_Jeudi_Vendredi&titr=Google%20car" ;
00146 echo href($url,img($url,"google car","300")) ;
00147 finp() ;
00148
00149 p() ;
00150 echo "Au passage, quel est code PHP conceptuel pour afficher cette image cliquable ?" ;
00151 finp() ;
00152
00153 finblockquote() ;
00154
00155 solution($numExo,$numTp) ;
00156
00157
00158 p("texte") ;
00159 echo "Une première solution consiste à construire l'URL «à la main» à partir de l'adresse " ;
00160 echo href("../jphistopct.php","jphistopct.php").". " ;
00161 echo " Une seconde solution est d'utiliser deux tableaux contenant respectivement les kilomètres et les jours " ;
00162 echo " avant de construire l'URL à partir d'une boucle sur les tableaux. " ;
00163 echo " Une troisième solution est d'utiliser des chaines de caractères des valeurs par copier/coller de l'énoncé et la fonction " ;
00164 echo b("mot")." de strfun.php utilisé par std.php ; " ;
00165 echo " enfin une quatrième est d'utiliser un tableau associatif. C'est à vous de choisir. Dans tous les cas, on doit " ;
00166 echo " aboutir à la même URL. Voici le lien de la solution : ".href("gcar.php")." et son " ;
00167 echo href("montresource.php?nomfic=gcar.php","code-source").". L'URL est donc " ;
00168 finp() ;
00169
00170 pre_fichier("gcar_url.txt","cadrebleu") ;
00171
00172 p("texte") ;
00173 echo "Dans la solution, le code PHP est conceptuel, l'affichage de l'image cliquable se réduit donc à " ;
00174 finp() ;
00175
00176 pre_fichier("gcar_php.txt","cadrejaune") ;
00177
00178 finsolution() ;
00179
00180 finblockquote() ;
00181
00182 ## -------------------------------------------------------------------------------------------
00183
00184 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP, MySQL et histogrammes
00185
00186 ## -------------------------------------------------------------------------------------------
00187
00188 blockquote() ;
00189
00190 blockquote() ;
00191
00192 p("texte") ;
00193 echo "On voudrait connaitre l'histogramme des fréquences relatives des personnes des divers " ;
00194 echo " niveaux d'étude de la table ".href("../Datasets/elf.htm","ELF")." qui est dans la base statdata." ;
00195 finp() ;
00196
00197 p("texte") ;
00198 echo "Généraliser ensuite à un champ quelconque de modalités dans une table, avec un tableau des labels des " ;
00199 echo " modalités. Par exemple on utilisera ".b('histo("SEXE","ELF",array(0=>"Homme",1=>"Femme")')." pour avoir " ;
00200 echo " les effectifs relatifs du code-sexe des personnes de la table. On vérifiera que le code suivant fournit " ;
00201 echo " aussi un histogramme :" ;
00202 finp() ;
00203
00204 pre_fichier("histotitanic.txt","cadre") ;
00205
00206
00207 p("texte") ;
00208 echo " La table citée fait référence aux données ".href("../Datasets/titanic.htm","TITANIC")." qui est aussi dans la base statdata." ;
00209 finp() ;
00210
00211 finblockquote() ;
00212
00213 solution($numExo,$numTp) ;
00214
00215 p("texte") ;
00216 echo "Il s'agit en fait de l'".href("tds.php#histo","exercice 16","gvertf nou")." de notre cours sur la " ;
00217 echo href("pdc.php","technologie internet","gbleuf nou")." dont la solution est ".href("solutions.php#histo","ici","grouge nou").". " ;
00218 echo " On en profitera bien sûr pour regarder les autres exercices..." ;
00219 finp() ;
00220 finsolution() ;
00221
00222 finblockquote() ;
00223
00224 ## -------------------------------------------------------------------------------------------
00225
00226 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Ecrire du PDF avec PHP
00227
00228 ## -------------------------------------------------------------------------------------------
00229
00230 blockquote() ;
00231
00232 blockquote() ;
00233
00234 p("texte") ;
00235 echo "Produire un document PDF qui correspond à la page ".href("filmsartistes.html") ;
00236 echo " (vue à l'".href("l2a_tp2.php?solutions=1#tdm6","exercice 6","grouge nou")." du TP2) " ;
00237 echo " puis un autre un document PDF qui correspond à la page ".href("chanteurs.php") ;
00238 echo " (vue comme solution à l'".href("l2a_tp2.php?solutions=1#tdm4","exercice 4","grouge nou")." du même TP2)." ;
00239 finp() ;
00240
00241 finblockquote() ;
00242
00243 solution($numExo,$numTp) ;
00244
00245 vnc() ;
00246
00247 finsolution() ;
00248
00249 finblockquote() ;
00250
00251 ## -------------------------------------------------------------------------------------------
00252
00253 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Lire des fichiers Excel avec PHP
00254
00255 ## -------------------------------------------------------------------------------------------
00256
00257 blockquote() ;
00258
00259 p("texte") ;
00260 echo "Lire le fichier ".href("elf.xls")." qui correspond aux données ".b("ELF")." de l'exercice 4 " ;
00261 echo " et produire un tableau des effectifs du code-sexe et l'histogramme associé. On utilisera une fonction " ;
00262 echo " suffisamment générale pour pouvoir l'appliquer à ".href("titanic.xls").". " ;
00263 finp() ;
00264
00265 solution($numExo,$numTp) ;
00266
00267 p("texte") ;
00268 echo "Consulter ".href("litelfxls.php").". " ;
00269 finp() ;
00270
00271 finsolution() ;
00272
00273 finblockquote() ;
00274
00275
00276 ## -------------------------------------------------------------------------------------------
00277
00278 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Afficher du code PHP
00279
00280 ## -------------------------------------------------------------------------------------------
00281
00282 blockquote() ;
00283 blockquote() ;
00284
00285 p("texte") ;
00286 echo "Comment peut-on afficher du code PHP dont les lignes sont éventuellement numérotées ?" ;
00287 finp() ;
00288
00289 finblockquote() ;
00290
00291 solution($numExo,$numTp) ;
00292
00293 p("texte") ;
00294 echo "Notre programme ".href("montresource.php?nomfic=montresource.php","montresource.php")." s'en occupe très bien..." ;
00295 finp() ;
00296
00297 finsolution() ;
00298
00299 finblockquote() ;
00300
00301 ## -------------------------------------------------------------------------------------------
00302
00303 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Afficher/masquer des solutions avec Javascript
00304
00305 ## -------------------------------------------------------------------------------------------
00306
00307 blockquote() ;
00308 blockquote() ;
00309
00310 p("texte") ;
00311 echo "Expliquer comment les solutions sont affichées ou masquées dans cette page." ;
00312 finp() ;
00313
00314 finblockquote() ;
00315
00316 solution($numExo,$numTp) ;
00317
00318 p("texte") ;
00319 echo "Chaque page d'exercices charge ".href("montresource.php?nomfic=l2a_tp.js","l2a_tp.js")." qui, " ;
00320 echo " lorsqu'on clique sur le bouton solution, permute les styles " ;
00321 echo b("invisible")." et style ".b("visible")." pour l'élément ".b("<div>")." qui contient le texte de la solution. " ;
00322 echo " Au passage, chaque division solution de l'exercice est numérotée, donc on ne montre que la solution considérée. " ;
00323 echo " Par contre, si utilise le bouton général du haut de la page, c'est PHP qui met le style ".b("visible")." par défaut " ;
00324 echo " pour toutes les solutions." ;
00325 finp() ;
00326
00327 finsolution() ;
00328
00329 finblockquote() ;
00330
00331 ## -------------------------------------------------------------------------------------------
00332
00333 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP et DOM
00334
00335 ## -------------------------------------------------------------------------------------------
00336
00337 blockquote() ;
00338 blockquote() ;
00339
00340 p("texte") ;
00341 echo "Reproduire le formulaire suivant en PHP conceptuel et son action " ;
00342 finp() ;
00343
00344 blockquote() ;
00345
00346 form("genereprotxml.php") ;
00347 table(1,7,"collapse jaune_pastel") ;
00348
00349 tr() ;
00350 th("C","bleu_pastel") ; input_submit("générer","","bouton_fin orange_pastel") ; finth() ;
00351 th() ; echo "Identifiant" ; finth() ;
00352 th() ; echo "Séquence" ; finth() ;
00353 th() ; echo "Classe" ; finth() ;
00354 th() ; echo "Longueur" ; finth() ;
00355 fintr() ;
00356
00357 $tabLet = array("non utilisé","i","s","c","l") ;
00358 for ($idl=1;$idl<=2;$idl++) {
00359 tr() ;
00360 td() ;
00361 if ($idl==1) {
00362 echo "Elément" ;
00363 } else {
00364 echo "Attribut" ;
00365 } ; # finsi
00366 fintd() ;
00367 for ($idc=1;$idc<=4;$idc++) {
00368 td("C") ;
00369 $onoff= "" ;
00370 if ($idl==1) { $onoff="checked" ; $laval = "e" ; } ;
00371 if ($idl==2) { $onoff="" ; $laval = "a" ; } ;
00372 input_radio($tabLet[$idc],$laval,"","",$onoff) ;
00373 fintd() ;
00374 } ; # fin pour idc
00375 fintr() ;
00376 } ; # fin pour idl
00377
00378 fintable() ;
00379 finform() ;
00380
00381 finblockquote() ;
00382
00383
00384 p("texte") ;
00385 echo "Au fait, que génère ce formulaire ? " ;
00386 finp() ;
00387
00388 finblockquote() ;
00389
00390 solution($numExo,$numTp) ;
00391
00392 p("texte") ;
00393 echo "Voir la ".href("../Webrd/bioinfxml.php#stockage","fin","grouge nou")." de la section 1 de la page " ;
00394 echo " ".href("../Webrd/bioinfxml.php","bioinfxml.php","gbleu nou").". " ;
00395 finp() ;
00396
00397 p("texte") ;
00398 echo "Le formulaire génère un fichier XML qui contient la séquence Fasta d'une protéine, c'est-à-dire la liste de ses acides aminés. " ;
00399 echo " Suivant ce qui est cliqué, on produit des éléments ou des attributs pour stocker les informations. " ;
00400 finp() ;
00401
00402
00403 finsolution() ;
00404
00405 finblockquote() ;
00406
00407 ## -------------------------------------------------------------------------------------------
00408
00409 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP, XML et Ajax
00410
00411 ## -------------------------------------------------------------------------------------------
00412
00413 blockquote() ;
00414 blockquote() ;
00415
00416 p("texte") ;
00417 echo "Réaliser la solution AJAX proposée en fin d'exercice ".href("l2a_tp2.php?solutions=1#tdm11","11","grouge").". " ;
00418 finp() ;
00419
00420 finblockquote() ;
00421
00422 solution($numExo,$numTp) ;
00423
00424 vnc() ;
00425
00426 finsolution() ;
00427
00428 finblockquote() ;
00429
00430 ## -------------------------------------------------------------------------------------------
00431
00432 finPageTp($numTp) ; # contient finSection() et finPage() ; la fonction est dans l2a_inc.php
00433
00434 ?>
La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file
mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)