Listing du fichier sen_tds.php
00001 <?php
00002 include("../std.php") ;
00003 # (gH) -_- sen_tds.php ; TimeStamp (unix) : 28 Septembre 2010 vers 14:40
00004 debutPage("L3SEN TD ENONCES","strict") ;
00005 debutSection() ;
00006 h1("ENONCES DES TDS INFORMATIQUE WEB") ;
00007 h1("pour la licence DSCS") ;
00008 h1("(Diffusion du savoir et Culture scientifique)") ;
00009
00010 p("grouge droite") ;
00011 echo "gilles.hunault@univ-angers.fr" ;
00012 finp() ;
00013
00014 #########################################################
00015
00016 function tdDscs($num,$nom="") {
00017 h2("TD <a name='td$num'>DSCS</a> numéro $num ".ancre("sen_tds_cor.php#td$num","(corrigé)").$nom) ;
00018 } # fin de fonction tdDscs
00019
00020 #########################################################
00021 #########################################################
00022
00023 $nomTd = array() ;
00024 $nomTd[1] = " Langage XHTML et CSS" ;
00025 $nomTd[2] = " CSS, formulaires, Javascript " ;
00026 $nomTd[3] = " Javascript " ;
00027 $nomTd[4] = " Php" ;
00028 $nomTd[5] = " Php et Mysql " ;
00029 $nomTd[6] = " Tout à la fois " ;
00030
00031 h2("<a name='tdm'>Table des matières</a>") ;
00032 $nb_td = 6 ;
00033 blockquote() ;
00034 for ($itd=1;$itd<=$nb_td;$itd++) {
00035 echo h3(ancre("#td$itd","TD numéro $itd").$nomTd[$itd]) ;
00036 } ; # fin pour
00037 finblockquote() ;
00038
00039 $jtd = 0 ;
00040
00041 #########################################################
00042
00043 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD1
00044
00045 #########################################################
00046
00047 ol() ;
00048
00049 debutli() ;
00050 p("texte") ;
00051 echo "Que signifie HTML ? Où sont les marqueurs dans une page web ? " ;
00052 echo "Comment peut-on écrire les marqueurs < et > ? " ;
00053 echo "Y a-t-il d'autres systèmes de marqueurs ? " ;
00054 echo "" ;
00055 finp() ;
00056 finli() ;
00057
00058 debutli() ;
00059 p("texte") ;
00060 echo "Trouver 5 façons d'afficher en XHTML le texte ".b("Bonjour.")." sur une ligne puis le texte " ;
00061 echo b("Bonsoir.")." sur la ligne d'après." ;
00062 echo " On pourra par exemple utiliser des paragraphes différents, un seul paragraphe et des retours à la ligne," ;
00063 echo " des divisions, un tableau..." ;
00064 finp() ;
00065 finli() ;
00066
00067 debutli() ;
00068 p("texte") ;
00069 echo "Quelle est la différence entre marqueur, élément, balise, entité et attribut ? " ;
00070 echo " Quelle est la structure hiérarchique d'une page web ? " ;
00071 echo " Est-il important de bien structurer une page ? " ;
00072 echo " Est-il obligatoire de bien structurer une page ? " ;
00073 echo " Est-il important d'écrire des pages valides ? " ;
00074 echo " Est-il obligatoire d'écrire des pages valides ? " ;
00075 echo " Est-ce la même chose de fermer une balise et un élément ? " ;
00076 finp() ;
00077 finli() ;
00078
00079 debutli() ;
00080 p("texte") ;
00081 echo "De quelles grammaires dispose-t-on pour bien écrire les pages Web ? " ;
00082 echo " Quelles en sont les règles ? " ;
00083 finp() ;
00084 finli() ;
00085
00086 debutli() ;
00087 p("texte") ;
00088 echo "Donner le code-source d'une adresse comme " ;
00089 finp() ;
00090 pre() ;
00091 nbsp(5) ; echo "Jean DUPONT\n" ;
00092 nbsp(5) ; echo "3 route de Rome\n" ;
00093 nbsp(5) ; echo "49100 ANGERS\n" ;
00094 finpre() ;
00095 p("texte") ;
00096 echo " On utilisera comme structure un seul paragraphe et des retours à la ligne après avoir justifié cette structure." ;
00097 echo " Détailler les différences transitionnel/strict " ;
00098 echo " sachant qu'on veut mettre le nom de la ville en gras, le nom et le prénom en bleu, tout le texte en grands caractères. " ;
00099 echo " Peut-on vraiment imprimer à l'italienne (en paysage) ? " ;
00100 echo " On donnera des solutions valides XHTML et CSS pour les grammaires strictes et transitionnelles." ;
00101 finp() ;
00102
00103 finli() ;
00104
00105 debutli() ;
00106 p("texte") ;
00107 echo " Ecrire le texte XHTML valide au sens transitionnel qui correspond aux indications suivantes." ;
00108 echo " L'élement X1 a pour attribut X2 (de valeur X3) et X4 (de valeur X5). Il contient dans cet ordre " ;
00109 echo " le texte X6 puis l'élément autofermant X7 et en fin le texte X8 écrit en gras. " ;
00110 echo " Remplacer X1 par p, X2 par id, X3 par mfp, X4 par class, X5 par texte, X6 par Bonjour, " ;
00111 echo " X7 par hr, X8 par tout le monde. Qu'obtient-ton ?" ;
00112 finp() ;
00113 finli() ;
00114
00115 debutli() ;
00116 p("texte") ;
00117 echo "Comment afficher un \"beau\" calendrier des saisons pour des petites classes ?" ;
00118 echo " On donnera une solution en tableau et une solution en liste de définitions." ;
00119 echo " Comment avoir tout le calendrier en bleu ? " ;
00120 echo " Comment mettre un quadrillage ? " ;
00121 finp() ;
00122 p("texte") ;
00123 echo " <em>Rappel</em> : une saison a un nom, une date de début et une date de fin." ;
00124 finp() ;
00125 finli() ;
00126
00127 debutli() ;
00128 p("texte") ;
00129 echo "Je veux écrire un paragraphe justifié à droite et à gauche. Quelles sont les possibilités en XHTML / CSS ? " ;
00130 echo " Quels sont toutes les propriétés d'un paragraphe ? Comment les modifier ? " ;
00131 finp() ;
00132 finli() ;
00133
00134 debutli() ;
00135 p("texte") ;
00136 echo " Quelle est la syntaxe exacte à utiliser pour définir un style, à la volée, en local, en externe ? Si on utilise toujours une propriété et une " ;
00137 echo " valeur, pourquoi doit-on mettre un point-virgule entre les propriétés ? " ;
00138 finp() ;
00139 finli() ;
00140
00141 debutli() ;
00142 p("texte") ;
00143 echo " Peut-on mettre plusieurs attributs pour un même élément ? Et plusieurs propriétés ? " ;
00144 echo " Avec les mêmes noms ? " ;
00145 finp() ;
00146 finli() ;
00147
00148 debutli() ;
00149 p("texte") ;
00150 echo " Dans CSS, le C signifie cascade. Qu'est-ce que cela veut dire ? " ;
00151 finp() ;
00152 finli() ;
00153
00154 debutli() ;
00155 p("texte") ;
00156 echo " Détailler ce que fait le navigateur au vu de la balise suivante. On distinguera les grammaires strictes et transitionnelles. " ;
00157 finp() ;
00158
00159 pre("cadre") ;
00160 ?>
00161
00162 <p id="dates" name="dates" style="font-size : 5 ; color : blue" class="mamf1 mamf2"...
00163
00164 <?php
00165 finpre() ;
00166
00167 finli() ;
00168
00169 debutli() ;
00170 echo " Si on n'a pas le droit de mettre des accents dans les liens, comment fait-on, par exemple pour " ;
00171 echo " l'adresse <b>http://www.google.fr/search?q=légumes</b> ? " ;
00172 finli() ;
00173
00174 finol() ;
00175
00176 #########################################################
00177
00178 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD2
00179
00180 #########################################################
00181
00182 ol() ;
00183
00184 debutli() ;
00185 p("texte") ;
00186 echo " On me demande d'écrire l'élément <b>x<sub>1</sub></b> qui contient les éléments <b>x<sub>2</sub></b>, <b>x<sub>3</sub></b>... " ;
00187 echo " avec comme noms de style respectifs <b>s<sub>1</sub></b>, <b>s<sub>2</sub></b>, <b>s<sub>3</sub></b>... Quel fragment XHTML valide dois-je écrire ? " ;
00188 echo " Y a-t-il une indentation particulière à respecter au niveau du code-source ? Pourquoi ? " ;
00189 echo " Application : <b>x<sub>1</sub></b> est <b>ul</b> et les autres <b>x<sub>i</sub></b> sont des <b>li</b>. " ;
00190 echo " Au passage, comment écrit-on des indices et des puissances (et des puissances de puissances) comme dans : " ;
00191 finp() ;
00192
00193 p("center") ;
00194 echo "<span class='gros_car_20pt'>" ;
00195 echo "<b>x<sub>i</sub><sup>(n<sup>2</sup>)</sup></b> se prononce <em>x indice i puissance n deux</em> " ;
00196 echo " (comme <b>x<sup>n<sup>2</sup></sup><sub>i</sub></b> ?)" ;
00197 echo "</span>" ;
00198 finp() ;
00199
00200 echo " <a name='fin'> </a> " ;
00201
00202 finli() ;
00203
00204 debutli() ;
00205 p("texte") ;
00206 echo " Je veux réaliser un joli quadrillage avec une bordure épaisse bleu foncée tout autour du tableau et " ;
00207 echo " des lignes fines en bleu clair (en pointillé ?) à l'intérieur du tableau, " ;
00208 echo " comme dans l'exemple suivant où tout le texte est centré et où le texte ne 'colle' pas aux bords : " ;
00209 finp() ;
00210
00211 echo "<div class='centre respire taille_5'>\n" ;
00212 echo "<table class='espace' summary='exemple 1'>\n" ;
00213
00214 tr() ;
00215 td() ;
00216 echo "<table class='gbbec' cellpadding='10' summary='exemple 2'>\n" ;
00217 echo "<tr>\n" ;
00218 echo " <td class='bbcf'>Angers </td>\n" ;
00219 echo " <td class='bbcf'>Nantes </td>\n" ;
00220 echo " <td class='bbcf'>Tours</td>\n" ;
00221 echo " <td class='bbcf'>Lyon</td>\n" ;
00222 echo "</tr>\n" ;
00223 echo "<tr>\n" ;
00224 echo " <td class='bbcf'>Oui</td>\n" ;
00225 echo " <td class='bbcf'>Non</td>\n" ;
00226 echo " <td class='bbcf'>Oui</td>\n" ;
00227 echo " <td class='bbcf'>Oui</td>\n" ;
00228 echo "</tr>\n" ;
00229 echo "<tr>\n" ;
00230 echo " <td class='bbcf'>Standard</td>\n" ;
00231 echo " <td class='bbcf'>Standard</td>\n" ;
00232 echo " <td class='bbcf'>Spécial</td>\n" ;
00233 echo " <td class='bbcf'>Spécial</td>\n" ;
00234 echo "</tr>\n" ;
00235 echo "<tr>\n" ;
00236 echo " <td class='bbcf'>Janvier</td>\n" ;
00237 echo " <td class='bbcf'>Février</td>\n" ;
00238 echo " <td class='bbcf'>Mars</td>\n" ;
00239 echo " <td class='bbcf'>Avril</td>\n" ;
00240 echo "</tr>\n" ;
00241 echo "</table>\n" ;
00242 fintd() ;
00243
00244 td() ; nbsp() ; fintd() ;
00245 td() ; nbsp() ; fintd() ;
00246 td() ; nbsp() ; fintd() ;
00247
00248 td() ;
00249 echo "<table class='respire gbbec' cellpadding='10' summary='exemple 3'>\n" ;
00250 echo "<tr>\n" ;
00251 echo " <td class='bbcfp'>Angers </td>\n" ;
00252 echo " <td class='bbcfp'>Nantes </td>\n" ;
00253 echo " <td class='bbcfp'>Tours</td>\n" ;
00254 echo " <td class='bbcfp'>Lyon</td>\n" ;
00255 echo "</tr>\n" ;
00256 echo "<tr>\n" ;
00257 echo " <td class='bbcfp'>Oui</td>\n" ;
00258 echo " <td class='bbcfp'>Non</td>\n" ;
00259 echo " <td class='bbcfp'>Oui</td>\n" ;
00260 echo " <td class='bbcfp'>Oui</td>\n" ;
00261 echo "</tr>\n" ;
00262 echo "<tr>\n" ;
00263 echo " <td class='bbcfp'>Standard</td>\n" ;
00264 echo " <td class='bbcfp'>Standard</td>\n" ;
00265 echo " <td class='bbcfp'>Spécial</td>\n" ;
00266 echo " <td class='bbcfp'>Spécial</td>\n" ;
00267 echo "</tr>\n" ;
00268 echo "<tr>\n" ;
00269 echo " <td class='bbcfp'>Janvier</td>\n" ;
00270 echo " <td class='bbcfp'>Février</td>\n" ;
00271 echo " <td class='bbcfp'>Mars</td>\n" ;
00272 echo " <td class='bbcfp'>Avril</td>\n" ;
00273 echo "</tr>\n" ;
00274 echo "</table>\n" ;
00275 fintd() ;
00276 fintr() ;
00277
00278 echo "</table>\n" ;
00279 echo "</div>\n" ;
00280
00281 p("texte") ;
00282 echo " Combien de styles différents me faut-il ? Et où les mettre ? " ;
00283 finp() ;
00284 finli() ;
00285
00286 debutli() ;
00287 p("texte") ;
00288 echo " Lorsque je lis le texte d'un formulaire, je trouve ceci écrit : " ;
00289 echo " <b><form><input type='text' value='5' /></form></b>." ;
00290 echo " Y a-t-il une valeur par défaut pour le texte à saisir ? " ;
00291 echo " Est-ce correct : au sens de <em>xhtml transitionnel</em> (tout le reste étant valide) ? et intellectuellement ?" ;
00292 echo " Que manque-t-il (si on omet la mise en forme) pour avoir un \"vrai\" formulaire ? " ;
00293 finp() ;
00294 finli() ;
00295
00296 debutli() ;
00297 p("texte") ;
00298 echo " Je voudrais écrire un formulaire en <b>mode GET</b> qui demande un prénom et qui rajoute automatiquement comme " ;
00299 echo " paramètre à l'URL de l'action le mot <b>section</b> et la valeur '<b>grande</b>'. Comment faire ? " ;
00300 finp() ;
00301 finli() ;
00302
00303 debutli() ;
00304 p("texte") ;
00305 echo " Un formulaire (en <b>mode GET</b>) contient une entrée texte nommée <b>JOUR</b>, une liste de sélection nommée <b>DR</b> " ;
00306 echo " contenant : " ;
00307 echo " <b><option value='1'>Mancini</option><option value='2'>Poudlard</option>...</b>." ;
00308 echo " Le formulaire a aussi des boutons radios tous nommés <b>HR</b> donc voici le début du code-source : " ;
00309 echo " <b><input type='radio' name='HR' value='A' />9 h " ;
00310 echo " <input type='radio' name='HR' value='B' />14 h...</b>" ;
00311 echo " Sachant que l'URL de l'action (fictive) du formulaire est <b>http://pdrv.fr/parm</b>, si l'utilisateur entre " ;
00312 echo " <b>lun</b> pour le jour, qu'il valide l'option <b>Poudlard</b> et qu'il rend actif le bouton radio correspondant à <b>9 h</b>," ;
00313 echo " quelle serait l'URL renvoyée par le navigateur ? " ;
00314 echo " Et si l'utilisateur écrit <b>x=2</b> comme jour ? " ;
00315 echo " Et si le bouton d'envoi (<b>submit</b>) est nommé go et qu'il affiche 'envoi' ? " ;
00316 finp() ;
00317
00318 p("texte") ;
00319 echo "<em>Pour les experts :</em> dans quel ordre les noms de champs d'entrée sont-ils transmis ? " ;
00320 echo "Le champ de nom <b>pomme</b> (tout en minuscules) est-il différent du champ de nom <b>POMME</b> (tout en majuscules) ?" ;
00321 echo " Peut-on avoir un attribut <b>value</b> dans un élément <b>input</b> sans avoir d'attribut <b>name</b> ? " ;
00322 finp() ;
00323 finli() ;
00324
00325 debutli() ;
00326 p("texte") ;
00327 echo " Lorsqu'un formulaire transmet un <b>input type='text'</b> dont la valeur est <b>5</b>, peut-on savoir s'il s'agit d'un " ;
00328 echo " nombre ou d'une chaine de caractères ? Comment forcer <b>Javascript</b> à l'utiliser comme nombre ?" ;
00329 finp() ;
00330 finli() ;
00331
00332 debutli() ;
00333 p("texte") ;
00334 echo " Je veux écrire un formulaire qui affiche comme liste de sélection (et dans cet ordre) les mots " ;
00335 echo " <b>'pipounet'</b> et <b>'pipounette'</b> mais " ;
00336 echo " que le formulaire transmette respectivement les valeurs <b>G</b> et <b>F</b> pour le champ <b>SEXE</b>. Comment faire ? " ;
00337 echo " Honneur aux dames, comment mettre <b>F</b> comme choix par défaut ? et en rose ? " ;
00338 echo " Pourquoi ne faut-il pas nommer le champ <b>SEXE</b> ? Peut-on mettre les deux options validées par défaut ? " ;
00339 echo " Quelle est la valeur renvoyée dans ce cas ? " ;
00340 finp() ;
00341 finli() ;
00342
00343 debutli() ;
00344 p("texte") ;
00345 echo " J'ai deux boutons radio dans un formulaire qui affichent <b>Non</b> et <b>Oui</b>. Comment faire pour que le formulaire envoie comme valeurs " ;
00346 echo " associées <b>1</b> et <b>2</b> pour le champ '<b>pipouyou</b>' ? " ;
00347 echo " Honneur aux pipouyous, comment mettre <b>Oui</b> choix par défaut ? et en bleu clair ? " ;
00348 finp() ;
00349 finli() ;
00350
00351 debutli() ;
00352 p("texte") ;
00353 echo " Lorsque je teste mon programme <b>Javascript</b> qui utilise les valeurs issues d'un formulaire, " ;
00354 echo " il fonctionne bien avec <b>13</b> et <b>19</b> mais pas avec <b>3</b> et <b>21</b>. Pourquoi ? On pourra imaginer que le " ;
00355 echo " programme se base sur l'ordre des valeurs." ;
00356 finp() ;
00357 finli() ;
00358
00359 debutli() ;
00360 p("texte") ;
00361 echo " Avant de transmettre la valeur du champ <b>REPONSE</b> du formulaire, je voudrais tester avec Javascript si c'est bien un " ;
00362 echo " nombre entier positif. Quels évènements (<b>clavier, souris</b>...) puis-je utiliser ? Et sur quels éléments du formulaire ? " ;
00363 echo " Lesquels sont les plus simples ? " ;
00364 echo " Pourquoi est-ce 'mauvais' de mettre la validation sur le bouton d'envoi comme dans <b>input type='submit' value='Ok' onclick='valider()'</b> ? " ;
00365 echo " Et sur une image de soumission comme dans <b>img src='...' alt='...' onclick='valider()'</b> ? " ;
00366 finp() ;
00367 finli() ;
00368
00369 debutli() ;
00370 p("texte") ;
00371 echo " Que faudrait-il faire en Javascript pour tester qu'une ligne d'entrée contient une suite de nombres entiers séparés " ;
00372 echo " par un ou plusieurs espaces ? Et si la réponse à une question était <b>le ballon rouge</b> ? " ;
00373 echo " Que peut-on en déduire sur la validation de questionnaires par page Web et sur l'évaluation des 'jeunes apprenants' ? " ;
00374 finp() ;
00375 finli() ;
00376
00377 finol() ;
00378
00379 #########################################################
00380
00381 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD3
00382
00383 #########################################################
00384
00385 ol() ;
00386
00387 debutli() ;
00388 p("texte") ;
00389 echo " Que calcule et qu'affiche le texte Javascript suivant (les numéros de ligne ne font pas partie du texte Javascript) ?" ;
00390 finp() ;
00391 pre("cadre") ;
00392 ?>
00393
00394 001 | function f(x) { return x+1 } ;
00395 002 | function g(x) { return 2*x } ;
00396 003 | a = 2 ;
00397 004 | b = 8 ;
00398 005 | c = f(a-2) ;
00399 006 | if (c>0) {
00400 007 | window.document.write(" on Trouve "+g(c))
00401 008 | } else {
00402 009 | window.document.write(" pas Vu, pas Pris. ")
00403 010 | } ; # fin de si
00404
00405 <?php
00406 finpre() ;
00407 finli() ;
00408
00409 debutli() ;
00410
00411 p("texte") ;
00412 echo " Si j'oublie de mettre les guillemets en XHTML comme par exemple dans " ;
00413 echo " <b>Google, c'est <a href=http://www.google.fr>ici</a></b>, " ;
00414 echo " est-ce grave ? Que fait le navigateur ? Et si j'oublie un seul des deux guillemets, " ;
00415 echo " comme dans <b>Google, c'est <a href=\"http://www.google.fr>ici</a></b> ?" ;
00416 echo " ou dans <b>Google, c'est <a href=http://www.google.fr\">ici</a></b> ?" ;
00417 finp() ;
00418
00419 p("texte") ;
00420 echo " Si j'oublie un guillemet en Javascript comme par exemple dans " ;
00421 echo "<b>window.document.write(\" on trouve +g(c)) </b>" ;
00422 echo " ou encore dans <b>window.document.write( on trouve \"+g(c)) </b>, " ;
00423 echo " est-ce grave ? Que fait le navigateur ? Que faut-il en conclure ?" ;
00424 finp() ;
00425
00426 finli() ;
00427
00428 debutli() ;
00429 p("texte") ;
00430 echo " Dans ma page Web, je n'ai, après l'élément ".b("head").", que " ;
00431 finp() ;
00432
00433 pre("cadre") ;
00434 ?>
00435 <body>
00436 <h1 onclick="...">Bonjour</h1>
00437 </body>
00438 </html>
00439 <?php
00440 finpre() ;
00441
00442 p("texte") ;
00443 echo " Que faut-il mettre dans le ".b("onclick")." pour obtenir " ;
00444 finp() ;
00445
00446 pre("cadre") ;
00447 ?>
00448 <body>
00449 <h1 onclick="ajout() ; ">Bonjour</h1>
00450 <span class="gbleu"><h1 class="cadre">Bonsoir</h1></span>
00451 </body>
00452 </html>
00453 <?php
00454 finpre() ;
00455 finli() ;
00456
00457 debutli() ;
00458 p("texte") ;
00459 echo " Donner le texte des instructions Javascript qui permettent d'afficher le texte " ;
00460 finp() ;
00461
00462 p("texte") ;
00463 echo "<b>" ;
00464 echo "<br/> 8 est le double de 4 et donc 4 est la moitié de 8. " ;
00465 echo "<br/> 100 est le double de 50 et donc 50 est la moitié de 100. " ;
00466 echo "<br/> 22 est le double de 11 et donc 11 est la moitié de 22. " ;
00467 echo "<br/> ... " ;
00468 echo "</b>" ;
00469 finp() ;
00470
00471 p("texte") ;
00472 echo " Devant l'ampleur de la répétition de la tache, écrire une fonction <b>d_et_m(x)</b> (pourquoi d_et_m ?) qui affiche le bon texte pour x " ;
00473 echo " (x est 8 pour la première ligne, 100 pour la deuxième, 22 pour la troisième...) " ;
00474 finp() ;
00475
00476 p("texte") ;
00477 echo " Afin d'être encore plus concis(e), on regroupe toutes les valeurs à utiliser dans la variable <b>vau</b> définie par : " ;
00478 echo " <b>var var = new Array(8,100,22,52,38...) ;</b>. Modifier votre code Javascript en conséquence." ;
00479 finp() ;
00480
00481 p("texte") ;
00482 echo " Finalement, on décide d'utiliser le style <b>grouge</b> pour le nombre de départ, ";
00483 echo " le style <b>gbleu</b> pour son double " ;
00484 echo " et le style <b>gvert</b> pour sa moitié. " ;
00485 echo " Modifier la fonction <b>dm(x)</b> en conséquence." ;
00486 finp() ;
00487
00488 p("texte") ;
00489 echo " Où doit-on mettre dans la page Web l'appel à ces instructions javacript ? A-t-on besoin d'une fonction ? " ;
00490 finp() ;
00491
00492 finli() ;
00493
00494 debutli() ;
00495 p("texte") ;
00496 echo " Utiliser la liste de nombres <b>1 5 8 2 8 3 6 8 2 1 7</b> comme tableau de travail. Ecrire une fonction <b>Javascript</b> " ;
00497 echo " nommée <b>valMax()</b> qui trouve la valeur maximale dans le tableau (c'est 8). Compléter la fonction pour qu'elle " ;
00498 echo " trouve aussi le nombre de fois où ce maximum apparait. Affiner en trouvant la première " ;
00499 echo " occurence, la dernière, et le nombre de fois où le maximum apparait, qu'on fournira en absolu et en relatif " ;
00500 echo " c'est à dire en pourcentage du nombre d'éléments du tableau. Vérifier ensuite avec la liste de valeurs 1 2 et " ;
00501 echo " la liste 1 2 3 4 5." ;
00502 finp() ;
00503 p("texte") ;
00504 echo " <em>Pour les experts</em> : écrire une fonction qui trie le tableau, faire le calcul du max et du " ;
00505 echo " nombres d'occurences avec une seule boucle." ;
00506 finp() ;
00507 finli() ;
00508
00509 debutli() ;
00510 p("texte") ;
00511 echo " Reprendre l'exercice précédent en supposant que le tableau fourni à la fonction <b>valMax()</b> " ;
00512 echo " est déjà trié par ordre croissant. Est-ce que cela change quelque chose à la vitesse d'exécution du programme ? " ;
00513 finp() ;
00514 p("texte") ;
00515 echo " <em>Pour les experts</em> : écrire une fonction qui affiche le tableau avec <b>table, tr, td</b> et à l'aide " ;
00516 echo " d'une couleur différente pour le max." ;
00517 finp() ;
00518 finli() ;
00519
00520 debutli() ;
00521 p("texte") ;
00522 echo " Reprendre l'exercice liste des courses en Javascript avec oeuf, viande et légumes en simplifiant : le tableau n'aura que " ;
00523 echo " deux colonnes, l'une avec le mot et un lien vers Google, l'autre avec une image en taille fixe et un lien vers l'image en grand." ;
00524 echo " On mettra le tout dans une fonction nommée echo <b>ldc</b> (pourquoi ldc ?) " ;
00525 echo " et on supposera que la fonction ldc est appelée à l'intérieur de l'élément <b>body</b>. Cette fonction produira le " ;
00526 echo " tableau XHTML avec des images pour le fond (la nappe) et les éléments (les serviettes). On utilisera la " ;
00527 echo " variable définie par <b>var ingr = new Array('oeuf', 'viande','légumes') ;</b>. " ;
00528 finp() ;
00529 p("texte") ;
00530 echo " <em>Pour les experts</em> : mettre des paramètres pour les images, les styles du tableau et des cellules." ;
00531 finp() ;
00532 finli() ;
00533
00534 debutli() ;
00535 p("texte") ;
00536 echo " Ecrire en Javascript une fonction h1(x) puis la fonction h(i,x) qui refait la même chose (c'est à " ;
00537 echo " dire afficher <b><h1> x </h1></b>) " ;
00538 echo " pour <b>i=1</b>. Quel est l'intérêt d'une telle fonction ? " ;
00539 finp() ;
00540 finli() ;
00541
00542 finol() ;
00543
00544 #########################################################
00545
00546 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD4
00547
00548 #########################################################
00549
00550 blockquote() ;
00551 p() ;
00552 echo "Le texte de ce TD est plus court que les autres car il y a une partie <em>examen en controle continu</em>" ;
00553 echo " qui \"occupe\" le TD et qui n'est pas reproduite ici." ;
00554 finp() ;
00555 finblockquote() ;
00556
00557 ol() ;
00558
00559 /*
00560 debutli() ;
00561 p("texte") ;
00562 echo " En Javascript, peut-on transmettre dans un formulaire : la valeur d'un champ-texte ? tout l'objet champ-texte ? " ;
00563 echo " Tout le formulaire ? " ;
00564 finp() ;
00565 p("texte") ;
00566 echo " On dispose de deux champs-texte nommés a et b. Ecrire le corps d'une fonction Javascript qui permute les contenu de a et b et qui les " ;
00567 echo " remet dans a et b. On supposera qu'il y a identité entre <b>name</b> et <b>id</b>." ;
00568 finp() ;
00569 finli() ;
00570 */
00571
00572 debutli() ;
00573 p("texte") ;
00574 echo " Ecrire en Php une fonction h1(x), puis une fonction h2(x) puis la fonction h(i,x) qui refait la même chose (c'est à dire " ;
00575 echo " afficher <b><h<sub>i</sub>> x </h<sub>i</sub>></b>). " ;
00576 echo " Quel est l'intérêt d'une telle fonction ? " ;
00577 finp() ;
00578
00579 p("texte") ;
00580 echo "Sur le même principe, écrire une fonction b() et une fonction href(). " ;
00581 finp() ;
00582
00583 p("texte") ;
00584 echo "Comment prendre en compte les valeurs par défaut obligatoires de XHTML ? et les styles CSS ? " ;
00585 finp() ;
00586
00587 finli() ;
00588
00589 debutli() ;
00590 p("texte") ;
00591 echo "On veut faire du texte \"Angers Nantes Rennes\" un tableau à trois éléments en PHP. Est-ce facile ? " ;
00592 finp() ;
00593 finli() ;
00594
00595 debutli() ;
00596 p("texte") ;
00597 echo " Reprendre l'exercice liste des courses en Php avec oeuf, viande et légumes en simplifiant : le tableau n'aura que " ;
00598 echo " deux colonnes, l'une avec le mot et un lien vers Google, l'autre avec une image en taille fixe et un lien vers l'image en grand." ;
00599 echo " On mettra le tout dans une fonction nommée echo <b>ldc</b> (pourquoi ldc ?) " ;
00600 echo " et on supposera que la fonction ldc est appelée à l'intérieur de l'élément <b>body</b>. Cette fonction produira le " ;
00601 echo " tableau XHTML avec des images pour le fond (la nappe) et les éléments (les serviettes). " ;
00602 echo " On pourra utiliser au choix la " ;
00603 echo " variable définie par <b>var ingr = new Array('oeuf', 'viande','légumes') ;</b> " ;
00604 echo " ou on construira un tableau à partir d'une phrase contenant la liste des ingrédients." ;
00605 finp() ;
00606
00607 p("texte") ;
00608 echo " On s'arrangera pour n'avoir aucune balise, que des fonctions PHP \"conceptuelles\"..." ;
00609 finp() ;
00610
00611 p("texte") ;
00612 echo " <em>Pour les experts</em> : mettre des paramètres pour les images, les styles du tableau et des cellules." ;
00613 echo " Comment se gère l'encodage URL des adresses ? " ;
00614 finp() ;
00615 finli() ;
00616
00617 finol() ;
00618
00619 #########################################################
00620
00621 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD5
00622
00623 #########################################################
00624
00625 ol() ;
00626
00627 debutli() ;
00628 p("texte") ;
00629 echo "On dispose d'une table de données au sens MYSQL qui contient deux champs, l'un nommé ".em("evenement")." qui " ;
00630 echo " correspond à un évènement et l'autre nommé ".em("date")." qui correspond à une date. " ;
00631 echo " Voici un exemple possible de remplissage de la table " ;
00632 finp() ;
00633
00634 pre() ;
00635 ?>
00636 +---------------------------------------------------+------+
00637 | evenement | date |
00638 +---------------------------------------------------+------+
00639 | Le couronnement de Charlemagne | 800 |
00640 | La découverte de l'Amérique par Christophe Colomb | 1492 |
00641 | La bataille de Marignan | 1515 |
00642 | La chute du mur de Berlin | 1989 |
00643 | La mort de Jeanne d'Arc | 1431 |
00644 | La naissance de Louis XVI | 1754 |
00645 | ... | ... |
00646 +---------------------------------------------------+------+
00647
00648
00649 <?php
00650 finpre() ;
00651 p("texte") ;
00652 echo " Répondez aux questions suivantes à l'aide d'instructions MySqL : " ;
00653 finp() ;
00654
00655 ul() ;
00656 li("Combien y a-t-il d'évènements dans la table ? ") ;
00657 li("Combien y a-t-il d'évènements dans la table ayant eu lieu avant 1789 ? ") ;
00658 li("Quels évènements dans la table ont eu lieu avant 1789 ? ") ;
00659 li("Quelles sont les deux premières dates dans la table ? ") ;
00660 li("Quelles sont les deux premières dates dans la table par ordre historique ? ") ;
00661 finul() ;
00662 finli() ;
00663
00664 debutli() ;
00665 p("texte") ;
00666 echo "On dispose d'une table ".em("sen_elev")." et d'une table ".em("sen_exer") ;
00667 echo " qui correspondent respectivement à des élèves et à des séries d'exercices. " ;
00668 finp() ;
00669
00670 p("texte") ;
00671 echo " La table ".em("sen_elev")." contient un prénom puis un numéro d'exercice, puis une note sur 20. En voici un extrait " ;
00672 finp() ;
00673
00674 pre() ;
00675 ?>
00676
00677 +----------+------+------+
00678 | pren | nume | note |
00679 +----------+------+------+
00680 | Louise | 1 | 18 |
00681 | Pierre | 1 | 12 |
00682 | Isabelle | 1 | 12 |
00683 | Damien | 1 | 14 |
00684 | Louise | 2 | 16 |
00685 | Louise | 3 | 16 |
00686 | ... | ... | |
00687 +----------+------+------+
00688
00689
00690 <?php
00691 finpre() ;
00692
00693 p("texte") ;
00694 echo " La table ".em("sen_exer")." contient un identifiant d'exercice (numéro), puis la matière et la difficulté de l'exercice " ;
00695 echo " qui est un entier entre 1 (facile) et 3 (difficile) ; en voici un extrait : " ;
00696 finp() ;
00697
00698 pre() ;
00699 ?>
00700
00701 +-------+----------+-------+
00702 | idexo | mat | diffi |
00703 +-------+----------+-------+
00704 | 1 | Calcul | 1 |
00705 | 2 | Calcul | 3 |
00706 | 3 | Histoire | 1 |
00707 | ... | ... | ... |
00708 +-------+----------+-------+
00709
00710
00711 <?php
00712 finpre() ;
00713
00714 p("texte") ;
00715 echo " Essayer de répondre en MySql aux questions suivantes : " ;
00716 finp() ;
00717
00718 ul() ;
00719 li("Combien d'exercices Louise a-t-elle fait ? ") ;
00720 li("Combien d'élèves ont fait l'exercice 1 ? ") ;
00721 li("Quelle est la moyenne de Louise sur l'ensemble des exercices ? ") ;
00722 li("Et sur l'ensemble des exercices de calcul seulement ? ") ;
00723 li("Comment peut-on afficher les noms et les notes pour l'exercice 1 par ordre de mérite ? ") ;
00724 li("Idem pour la moyenne des notes de calcul (toujours par ordre de mérite) ? ") ;
00725 li("Qui a fait des exercices difficiles ? ") ;
00726 li("Comment peut-on assurer un suivi pédagogique pour les faibles en maths ? ") ;
00727 finul() ;
00728 finli() ;
00729
00730 debutli() ;
00731 p("texte") ;
00732 echo "Donner le code PHP qui répond aux deux premières questions pour la table d'histoire ";
00733 echo "puis donner le code PHP qui répond aux deux premières questions pour les tables ".em("sen_elv") ;
00734 echo " et ".em("sen_exer")." ; écrire ensuite une fonction \"conceptuelle\" en PHP que l'on nommera " ;
00735 echo em("combien")." et donner le code PHP qui réalise les mêmes 4 requêtes à l'aide de cette fonction. " ;
00736 finp() ;
00737 p("texte") ;
00738 echo " Ecrire ensuite les instructions PHP qui affichent les noms et les notes pour l'exercice de numéro 1 par ordre de mérite. " ;
00739 finp() ;
00740 finli() ;
00741
00742 finol() ;
00743
00744 #########################################################
00745
00746 $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD6
00747
00748 #########################################################
00749
00750 ol() ;
00751
00752 debutli() ;
00753 p("texte") ;
00754 echo "On suppose qu'on dispose de la table de données suivante nommée ".em("sen_exer")." : " ;
00755 finp() ;
00756
00757 pre("cadre") ;
00758 ?>
00759
00760 +-------+----------+-------+
00761 | idexo | mat | diffi |
00762 +-------+----------+-------+
00763 | 1 | Calcul | 1 |
00764 | 2 | Calcul | 3 |
00765 | 3 | Histoire | 1 |
00766 | 4 | Calcul | 1 |
00767 | 5 | Calcul | 2 |
00768 | 6 | Histoire | 1 |
00769 | 7 | Histoire | 3 |
00770 +-------+----------+-------+
00771
00772
00773 <?php
00774 finpre() ;
00775
00776 p("texte") ;
00777 echo "Que fait, calcule et affiche le programme PHP suivant après ".em("debutSection()") ;
00778 echo " et avant ".em("finSection()")." ? " ;
00779 finp() ;
00780
00781 # imprimer pour tout le monde le fichier ex1td6.ps
00782
00783 pre("cadre") ;
00784 echo "\n" ;
00785 show_source("sen_exer_txt.php") ;
00786 echo "\n" ;
00787 finpre() ;
00788
00789 p("texte") ;
00790 echo "On admettra que la fonction ".b("combien()")." est définie par les instructions suivantes : " ;
00791 finp() ;
00792
00793 pre("cadre") ;
00794 echo "\n" ;
00795 show_source("combiens_inc.php") ;
00796 echo "\n" ;
00797 finpre() ;
00798
00799
00800
00801 finli() ;
00802
00803 debutli() ;
00804 p("texte") ;
00805 echo "On voudrait produire via du PHP \"conceptuel\" une table des matières et des titres de section comme " ;
00806 echo " ceux des pages d'exercices, à savoir : " ;
00807 finp() ;
00808
00809 pre("cadre") ;
00810 ?>
00811
00812
00813 <h1><font color="blue">Table des matières</font></h1>
00814 <ul>
00815 <li>série 1 : <a href="#s1">le langage XHTML</a></li>
00816 <li>série 2 : <a href="#s2">les styles CSS</a></li>
00817 </ul>
00818
00819 <h1><font color="green"><a name="s1">Série 1 : le langage XHTML</a></font></h1>
00820 ...
00821
00822 <h1><font color="green"><a name="s2">Série 2 : les styles CSS</a></font></h1>
00823 ..
00824
00825 <?php
00826 finpre() ;
00827
00828 p("texte") ;
00829 echo "Sachant qu'on veut fournir un document XHTML qui utilise une grammaire stricte, écrivez une " ;
00830 echo " structure PHP contenant le titre des deux séries puis donnez les instructions PHP qui fournissent " ;
00831 echo " le texte demandé. On inventera des fonctions dont on détaillera la syntaxe d'appel et les paramètres, mais dont on ne donnera pas " ;
00832 echo " le code." ;
00833 finp() ;
00834
00835 finli() ;
00836
00837 debutli() ;
00838 p("texte") ;
00839 echo " Dans la table ".em("sen_exer")." on a un champ ".em("mat")." correspondant à la matière " ;
00840 echo " et un champ ".em("diffi")." correspondant à la difficulté, comme dans le TD précédent." ;
00841 echo " Ecrire en PHP un menu qui affiche le nombre d'exercices disponibles par matière et par difficulté" ;
00842 echo " à l'aide d'".b("une seule requête MySql")."." ;
00843 #echo " Le lien derrière un couple (matière,difficulté) devra faire appel à un sous-programme qui fait " ;
00844 #echo " un tirage aléatoire d'un exercice parmi ceux concernés." ;
00845 finp() ;
00846
00847 p("texte") ;
00848 echo "Voici un exemple d'un tel menu : " ;
00849 finp() ;
00850
00851 pre("cadre") ;
00852 ?>
00853
00854
00855 Choisissez la matière et le niveau de difficulté de l'exercice :
00856
00857
00858 Matière 1 : Calcul
00859 Difficulté 1 (5 exercices)
00860 Difficulté 2 (5 exercices)
00861 Difficulté 3 (3 exercices)
00862
00863 Matière 2 : Histoire
00864 Difficulté 1 (7 exercices)
00865 Difficulté 3 (6 exercices)
00866
00867 Matière 3 : Géographie
00868 ...
00869
00870
00871 <?php
00872 finpre() ;
00873
00874 p("texte") ;
00875 echo "Quelle est, à part le nombre de requêtes, la différence avec l'exercice 1 de ce TD ? " ;
00876 finp() ;
00877
00878 finli() ;
00879
00880 debutli() ;
00881 p("texte") ;
00882 echo "Que fait, calcule et affiche le programme PHP suivant après ".em("debutSection()") ;
00883 echo " et avant ".em("finSection()")." ? " ;
00884 finp() ;
00885
00886 pre("cadre") ;
00887 echo "\n" ;
00888 show_source("sen_stat.php") ;
00889 echo "\n" ;
00890 finpre() ;
00891
00892 p("texte") ;
00893 echo " sachant que le contenu du fichier inclus est : " ;
00894 finp() ;
00895
00896 pre("cadre") ;
00897 echo "\n" ;
00898 show_source("sen_stat_txt.php") ;
00899 echo "\n" ;
00900 finpre() ;
00901
00902
00903 finli() ;
00904
00905 finol() ;
00906
00907 pvide() ;
00908
00909 p() ;
00910 echo ancre("#tdm","Retour à la table des matières") ;
00911 finp() ;
00912
00913 p() ;
00914 echo href("montresource.php?nomfic=sen_tds.php","Code-source de la page") ;
00915 finp() ;
00916
00917 #########################################################
00918
00919 finSection() ;
00920 finPage() ;
00921 ?>
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)