Listing du fichier sen_tds.php avec syntaxhighlighter
<?php include("../std.php") ; # (gH) -_- sen_tds.php ; TimeStamp (unix) : 28 Septembre 2010 vers 14:40 debutPage("L3SEN TD ENONCES","strict") ; debutSection() ; h1("ENONCES DES TDS INFORMATIQUE WEB") ; h1("pour la licence DSCS") ; h1("(Diffusion du savoir et Culture scientifique)") ; p("grouge droite") ; echo "gilles.hunault@univ-angers.fr" ; finp() ; ######################################################### function tdDscs($num,$nom="") { h2("TD <a name='td$num'>DSCS</a> numéro $num ".ancre("sen_tds_cor.php#td$num","(corrigé)").$nom) ; } # fin de fonction tdDscs ######################################################### ######################################################### $nomTd = array() ; $nomTd[1] = " Langage XHTML et CSS" ; $nomTd[2] = " CSS, formulaires, Javascript " ; $nomTd[3] = " Javascript " ; $nomTd[4] = " Php" ; $nomTd[5] = " Php et Mysql " ; $nomTd[6] = " Tout à la fois " ; h2("<a name='tdm'>Table des matières</a>") ; $nb_td = 6 ; blockquote() ; for ($itd=1;$itd<=$nb_td;$itd++) { echo h3(ancre("#td$itd","TD numéro $itd").$nomTd[$itd]) ; } ; # fin pour finblockquote() ; $jtd = 0 ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD1 ######################################################### ol() ; debutli() ; p("texte") ; echo "Que signifie HTML ? Où sont les marqueurs dans une page web ? " ; echo "Comment peut-on écrire les marqueurs < et > ? " ; echo "Y a-t-il d'autres systèmes de marqueurs ? " ; echo "" ; finp() ; finli() ; debutli() ; p("texte") ; echo "Trouver 5 façons d'afficher en XHTML le texte ".b("Bonjour.")." sur une ligne puis le texte " ; echo b("Bonsoir.")." sur la ligne d'après." ; echo " On pourra par exemple utiliser des paragraphes différents, un seul paragraphe et des retours à la ligne," ; echo " des divisions, un tableau..." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Quelle est la différence entre marqueur, élément, balise, entité et attribut ? " ; echo " Quelle est la structure hiérarchique d'une page web ? " ; echo " Est-il important de bien structurer une page ? " ; echo " Est-il obligatoire de bien structurer une page ? " ; echo " Est-il important d'écrire des pages valides ? " ; echo " Est-il obligatoire d'écrire des pages valides ? " ; echo " Est-ce la même chose de fermer une balise et un élément ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "De quelles grammaires dispose-t-on pour bien écrire les pages Web ? " ; echo " Quelles en sont les règles ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Donner le code-source d'une adresse comme " ; finp() ; pre() ; nbsp(5) ; echo "Jean DUPONT\n" ; nbsp(5) ; echo "3 route de Rome\n" ; nbsp(5) ; echo "49100 ANGERS\n" ; finpre() ; p("texte") ; echo " On utilisera comme structure un seul paragraphe et des retours à la ligne après avoir justifié cette structure." ; echo " Détailler les différences transitionnel/strict " ; 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. " ; echo " Peut-on vraiment imprimer à l'italienne (en paysage) ? " ; echo " On donnera des solutions valides XHTML et CSS pour les grammaires strictes et transitionnelles." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire le texte XHTML valide au sens transitionnel qui correspond aux indications suivantes." ; echo " L'élement X1 a pour attribut X2 (de valeur X3) et X4 (de valeur X5). Il contient dans cet ordre " ; echo " le texte X6 puis l'élément autofermant X7 et en fin le texte X8 écrit en gras. " ; echo " Remplacer X1 par p, X2 par id, X3 par mfp, X4 par class, X5 par texte, X6 par Bonjour, " ; echo " X7 par hr, X8 par tout le monde. Qu'obtient-ton ?" ; finp() ; finli() ; debutli() ; p("texte") ; echo "Comment afficher un \"beau\" calendrier des saisons pour des petites classes ?" ; echo " On donnera une solution en tableau et une solution en liste de définitions." ; echo " Comment avoir tout le calendrier en bleu ? " ; echo " Comment mettre un quadrillage ? " ; finp() ; p("texte") ; echo " <em>Rappel</em> : une saison a un nom, une date de début et une date de fin." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Je veux écrire un paragraphe justifié à droite et à gauche. Quelles sont les possibilités en XHTML / CSS ? " ; echo " Quels sont toutes les propriétés d'un paragraphe ? Comment les modifier ? " ; finp() ; finli() ; debutli() ; p("texte") ; 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 " ; echo " valeur, pourquoi doit-on mettre un point-virgule entre les propriétés ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Peut-on mettre plusieurs attributs pour un même élément ? Et plusieurs propriétés ? " ; echo " Avec les mêmes noms ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Dans CSS, le C signifie cascade. Qu'est-ce que cela veut dire ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Détailler ce que fait le navigateur au vu de la balise suivante. On distinguera les grammaires strictes et transitionnelles. " ; finp() ; pre("cadre") ; ?> <p id="dates" name="dates" style="font-size : 5 ; color : blue" class="mamf1 mamf2"... <?php finpre() ; finli() ; debutli() ; echo " Si on n'a pas le droit de mettre des accents dans les liens, comment fait-on, par exemple pour " ; echo " l'adresse <b>http://www.google.fr/search?q=légumes</b> ? " ; finli() ; finol() ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD2 ######################################################### ol() ; debutli() ; p("texte") ; 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>... " ; 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 ? " ; echo " Y a-t-il une indentation particulière à respecter au niveau du code-source ? Pourquoi ? " ; 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>. " ; echo " Au passage, comment écrit-on des indices et des puissances (et des puissances de puissances) comme dans : " ; finp() ; p("center") ; echo "<span class='gros_car_20pt'>" ; echo "<b>x<sub>i</sub><sup>(n<sup>2</sup>)</sup></b> se prononce <em>x indice i puissance n deux</em> " ; echo " (comme <b>x<sup>n<sup>2</sup></sup><sub>i</sub></b> ?)" ; echo "</span>" ; finp() ; echo " <a name='fin'> </a> " ; finli() ; debutli() ; p("texte") ; echo " Je veux réaliser un joli quadrillage avec une bordure épaisse bleu foncée tout autour du tableau et " ; echo " des lignes fines en bleu clair (en pointillé ?) à l'intérieur du tableau, " ; echo " comme dans l'exemple suivant où tout le texte est centré et où le texte ne 'colle' pas aux bords : " ; finp() ; echo "<div class='centre respire taille_5'>\n" ; echo "<table class='espace' summary='exemple 1'>\n" ; tr() ; td() ; echo "<table class='gbbec' cellpadding='10' summary='exemple 2'>\n" ; echo "<tr>\n" ; echo " <td class='bbcf'>Angers </td>\n" ; echo " <td class='bbcf'>Nantes </td>\n" ; echo " <td class='bbcf'>Tours</td>\n" ; echo " <td class='bbcf'>Lyon</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcf'>Oui</td>\n" ; echo " <td class='bbcf'>Non</td>\n" ; echo " <td class='bbcf'>Oui</td>\n" ; echo " <td class='bbcf'>Oui</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcf'>Standard</td>\n" ; echo " <td class='bbcf'>Standard</td>\n" ; echo " <td class='bbcf'>Spécial</td>\n" ; echo " <td class='bbcf'>Spécial</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcf'>Janvier</td>\n" ; echo " <td class='bbcf'>Février</td>\n" ; echo " <td class='bbcf'>Mars</td>\n" ; echo " <td class='bbcf'>Avril</td>\n" ; echo "</tr>\n" ; echo "</table>\n" ; fintd() ; td() ; nbsp() ; fintd() ; td() ; nbsp() ; fintd() ; td() ; nbsp() ; fintd() ; td() ; echo "<table class='respire gbbec' cellpadding='10' summary='exemple 3'>\n" ; echo "<tr>\n" ; echo " <td class='bbcfp'>Angers </td>\n" ; echo " <td class='bbcfp'>Nantes </td>\n" ; echo " <td class='bbcfp'>Tours</td>\n" ; echo " <td class='bbcfp'>Lyon</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcfp'>Oui</td>\n" ; echo " <td class='bbcfp'>Non</td>\n" ; echo " <td class='bbcfp'>Oui</td>\n" ; echo " <td class='bbcfp'>Oui</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcfp'>Standard</td>\n" ; echo " <td class='bbcfp'>Standard</td>\n" ; echo " <td class='bbcfp'>Spécial</td>\n" ; echo " <td class='bbcfp'>Spécial</td>\n" ; echo "</tr>\n" ; echo "<tr>\n" ; echo " <td class='bbcfp'>Janvier</td>\n" ; echo " <td class='bbcfp'>Février</td>\n" ; echo " <td class='bbcfp'>Mars</td>\n" ; echo " <td class='bbcfp'>Avril</td>\n" ; echo "</tr>\n" ; echo "</table>\n" ; fintd() ; fintr() ; echo "</table>\n" ; echo "</div>\n" ; p("texte") ; echo " Combien de styles différents me faut-il ? Et où les mettre ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Lorsque je lis le texte d'un formulaire, je trouve ceci écrit : " ; echo " <b><form><input type='text' value='5' /></form></b>." ; echo " Y a-t-il une valeur par défaut pour le texte à saisir ? " ; echo " Est-ce correct : au sens de <em>xhtml transitionnel</em> (tout le reste étant valide) ? et intellectuellement ?" ; echo " Que manque-t-il (si on omet la mise en forme) pour avoir un \"vrai\" formulaire ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Je voudrais écrire un formulaire en <b>mode GET</b> qui demande un prénom et qui rajoute automatiquement comme " ; echo " paramètre à l'URL de l'action le mot <b>section</b> et la valeur '<b>grande</b>'. Comment faire ? " ; finp() ; finli() ; debutli() ; p("texte") ; 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> " ; echo " contenant : " ; echo " <b><option value='1'>Mancini</option><option value='2'>Poudlard</option>...</b>." ; echo " Le formulaire a aussi des boutons radios tous nommés <b>HR</b> donc voici le début du code-source : " ; echo " <b><input type='radio' name='HR' value='A' />9 h " ; echo " <input type='radio' name='HR' value='B' />14 h...</b>" ; echo " Sachant que l'URL de l'action (fictive) du formulaire est <b>http://pdrv.fr/parm</b>, si l'utilisateur entre " ; 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>," ; echo " quelle serait l'URL renvoyée par le navigateur ? " ; echo " Et si l'utilisateur écrit <b>x=2</b> comme jour ? " ; echo " Et si le bouton d'envoi (<b>submit</b>) est nommé go et qu'il affiche 'envoi' ? " ; finp() ; p("texte") ; echo "<em>Pour les experts :</em> dans quel ordre les noms de champs d'entrée sont-ils transmis ? " ; 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) ?" ; echo " Peut-on avoir un attribut <b>value</b> dans un élément <b>input</b> sans avoir d'attribut <b>name</b> ? " ; finp() ; finli() ; debutli() ; p("texte") ; 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 " ; echo " nombre ou d'une chaine de caractères ? Comment forcer <b>Javascript</b> à l'utiliser comme nombre ?" ; finp() ; finli() ; debutli() ; p("texte") ; echo " Je veux écrire un formulaire qui affiche comme liste de sélection (et dans cet ordre) les mots " ; echo " <b>'pipounet'</b> et <b>'pipounette'</b> mais " ; echo " que le formulaire transmette respectivement les valeurs <b>G</b> et <b>F</b> pour le champ <b>SEXE</b>. Comment faire ? " ; echo " Honneur aux dames, comment mettre <b>F</b> comme choix par défaut ? et en rose ? " ; echo " Pourquoi ne faut-il pas nommer le champ <b>SEXE</b> ? Peut-on mettre les deux options validées par défaut ? " ; echo " Quelle est la valeur renvoyée dans ce cas ? " ; finp() ; finli() ; debutli() ; p("texte") ; 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 " ; echo " associées <b>1</b> et <b>2</b> pour le champ '<b>pipouyou</b>' ? " ; echo " Honneur aux pipouyous, comment mettre <b>Oui</b> choix par défaut ? et en bleu clair ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Lorsque je teste mon programme <b>Javascript</b> qui utilise les valeurs issues d'un formulaire, " ; 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 " ; echo " programme se base sur l'ordre des valeurs." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Avant de transmettre la valeur du champ <b>REPONSE</b> du formulaire, je voudrais tester avec Javascript si c'est bien un " ; echo " nombre entier positif. Quels évènements (<b>clavier, souris</b>...) puis-je utiliser ? Et sur quels éléments du formulaire ? " ; echo " Lesquels sont les plus simples ? " ; 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> ? " ; echo " Et sur une image de soumission comme dans <b>img src='...' alt='...' onclick='valider()'</b> ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Que faudrait-il faire en Javascript pour tester qu'une ligne d'entrée contient une suite de nombres entiers séparés " ; echo " par un ou plusieurs espaces ? Et si la réponse à une question était <b>le ballon rouge</b> ? " ; echo " Que peut-on en déduire sur la validation de questionnaires par page Web et sur l'évaluation des 'jeunes apprenants' ? " ; finp() ; finli() ; finol() ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD3 ######################################################### ol() ; debutli() ; p("texte") ; echo " Que calcule et qu'affiche le texte Javascript suivant (les numéros de ligne ne font pas partie du texte Javascript) ?" ; finp() ; pre("cadre") ; ?> 001 | function f(x) { return x+1 } ; 002 | function g(x) { return 2*x } ; 003 | a = 2 ; 004 | b = 8 ; 005 | c = f(a-2) ; 006 | if (c>0) { 007 | window.document.write(" on Trouve "+g(c)) 008 | } else { 009 | window.document.write(" pas Vu, pas Pris. ") 010 | } ; # fin de si <?php finpre() ; finli() ; debutli() ; p("texte") ; echo " Si j'oublie de mettre les guillemets en XHTML comme par exemple dans " ; echo " <b>Google, c'est <a href=http://www.google.fr>ici</a></b>, " ; echo " est-ce grave ? Que fait le navigateur ? Et si j'oublie un seul des deux guillemets, " ; echo " comme dans <b>Google, c'est <a href=\"http://www.google.fr>ici</a></b> ?" ; echo " ou dans <b>Google, c'est <a href=http://www.google.fr\">ici</a></b> ?" ; finp() ; p("texte") ; echo " Si j'oublie un guillemet en Javascript comme par exemple dans " ; echo "<b>window.document.write(\" on trouve +g(c)) </b>" ; echo " ou encore dans <b>window.document.write( on trouve \"+g(c)) </b>, " ; echo " est-ce grave ? Que fait le navigateur ? Que faut-il en conclure ?" ; finp() ; finli() ; debutli() ; p("texte") ; echo " Dans ma page Web, je n'ai, après l'élément ".b("head").", que " ; finp() ; pre("cadre") ; ?> <body> <h1 onclick="...">Bonjour</h1> </body> </html> <?php finpre() ; p("texte") ; echo " Que faut-il mettre dans le ".b("onclick")." pour obtenir " ; finp() ; pre("cadre") ; ?> <body> <h1 onclick="ajout() ; ">Bonjour</h1> <span class="gbleu"><h1 class="cadre">Bonsoir</h1></span> </body> </html> <?php finpre() ; finli() ; debutli() ; p("texte") ; echo " Donner le texte des instructions Javascript qui permettent d'afficher le texte " ; finp() ; p("texte") ; echo "<b>" ; echo "<br/> 8 est le double de 4 et donc 4 est la moitié de 8. " ; echo "<br/> 100 est le double de 50 et donc 50 est la moitié de 100. " ; echo "<br/> 22 est le double de 11 et donc 11 est la moitié de 22. " ; echo "<br/> ... " ; echo "</b>" ; finp() ; p("texte") ; 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 " ; echo " (x est 8 pour la première ligne, 100 pour la deuxième, 22 pour la troisième...) " ; finp() ; p("texte") ; echo " Afin d'être encore plus concis(e), on regroupe toutes les valeurs à utiliser dans la variable <b>vau</b> définie par : " ; echo " <b>var var = new Array(8,100,22,52,38...) ;</b>. Modifier votre code Javascript en conséquence." ; finp() ; p("texte") ; echo " Finalement, on décide d'utiliser le style <b>grouge</b> pour le nombre de départ, "; echo " le style <b>gbleu</b> pour son double " ; echo " et le style <b>gvert</b> pour sa moitié. " ; echo " Modifier la fonction <b>dm(x)</b> en conséquence." ; finp() ; p("texte") ; echo " Où doit-on mettre dans la page Web l'appel à ces instructions javacript ? A-t-on besoin d'une fonction ? " ; finp() ; finli() ; debutli() ; p("texte") ; 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> " ; echo " nommée <b>valMax()</b> qui trouve la valeur maximale dans le tableau (c'est 8). Compléter la fonction pour qu'elle " ; echo " trouve aussi le nombre de fois où ce maximum apparait. Affiner en trouvant la première " ; echo " occurence, la dernière, et le nombre de fois où le maximum apparait, qu'on fournira en absolu et en relatif " ; echo " c'est à dire en pourcentage du nombre d'éléments du tableau. Vérifier ensuite avec la liste de valeurs 1 2 et " ; echo " la liste 1 2 3 4 5." ; finp() ; p("texte") ; echo " <em>Pour les experts</em> : écrire une fonction qui trie le tableau, faire le calcul du max et du " ; echo " nombres d'occurences avec une seule boucle." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Reprendre l'exercice précédent en supposant que le tableau fourni à la fonction <b>valMax()</b> " ; echo " est déjà trié par ordre croissant. Est-ce que cela change quelque chose à la vitesse d'exécution du programme ? " ; finp() ; p("texte") ; echo " <em>Pour les experts</em> : écrire une fonction qui affiche le tableau avec <b>table, tr, td</b> et à l'aide " ; echo " d'une couleur différente pour le max." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Reprendre l'exercice liste des courses en Javascript avec oeuf, viande et légumes en simplifiant : le tableau n'aura que " ; 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." ; echo " On mettra le tout dans une fonction nommée echo <b>ldc</b> (pourquoi ldc ?) " ; 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 " ; echo " tableau XHTML avec des images pour le fond (la nappe) et les éléments (les serviettes). On utilisera la " ; echo " variable définie par <b>var ingr = new Array('oeuf', 'viande','légumes') ;</b>. " ; finp() ; p("texte") ; echo " <em>Pour les experts</em> : mettre des paramètres pour les images, les styles du tableau et des cellules." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire en Javascript une fonction h1(x) puis la fonction h(i,x) qui refait la même chose (c'est à " ; echo " dire afficher <b><h1> x </h1></b>) " ; echo " pour <b>i=1</b>. Quel est l'intérêt d'une telle fonction ? " ; finp() ; finli() ; finol() ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD4 ######################################################### blockquote() ; p() ; echo "Le texte de ce TD est plus court que les autres car il y a une partie <em>examen en controle continu</em>" ; echo " qui \"occupe\" le TD et qui n'est pas reproduite ici." ; finp() ; finblockquote() ; ol() ; /* debutli() ; p("texte") ; echo " En Javascript, peut-on transmettre dans un formulaire : la valeur d'un champ-texte ? tout l'objet champ-texte ? " ; echo " Tout le formulaire ? " ; finp() ; p("texte") ; 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 " ; echo " remet dans a et b. On supposera qu'il y a identité entre <b>name</b> et <b>id</b>." ; finp() ; finli() ; */ debutli() ; p("texte") ; 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 " ; echo " afficher <b><h<sub>i</sub>> x </h<sub>i</sub>></b>). " ; echo " Quel est l'intérêt d'une telle fonction ? " ; finp() ; p("texte") ; echo "Sur le même principe, écrire une fonction b() et une fonction href(). " ; finp() ; p("texte") ; echo "Comment prendre en compte les valeurs par défaut obligatoires de XHTML ? et les styles CSS ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "On veut faire du texte \"Angers Nantes Rennes\" un tableau à trois éléments en PHP. Est-ce facile ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Reprendre l'exercice liste des courses en Php avec oeuf, viande et légumes en simplifiant : le tableau n'aura que " ; 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." ; echo " On mettra le tout dans une fonction nommée echo <b>ldc</b> (pourquoi ldc ?) " ; 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 " ; echo " tableau XHTML avec des images pour le fond (la nappe) et les éléments (les serviettes). " ; echo " On pourra utiliser au choix la " ; echo " variable définie par <b>var ingr = new Array('oeuf', 'viande','légumes') ;</b> " ; echo " ou on construira un tableau à partir d'une phrase contenant la liste des ingrédients." ; finp() ; p("texte") ; echo " On s'arrangera pour n'avoir aucune balise, que des fonctions PHP \"conceptuelles\"..." ; finp() ; p("texte") ; echo " <em>Pour les experts</em> : mettre des paramètres pour les images, les styles du tableau et des cellules." ; echo " Comment se gère l'encodage URL des adresses ? " ; finp() ; finli() ; finol() ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD5 ######################################################### ol() ; debutli() ; p("texte") ; echo "On dispose d'une table de données au sens MYSQL qui contient deux champs, l'un nommé ".em("evenement")." qui " ; echo " correspond à un évènement et l'autre nommé ".em("date")." qui correspond à une date. " ; echo " Voici un exemple possible de remplissage de la table " ; finp() ; pre() ; ?> +---------------------------------------------------+------+ | evenement | date | +---------------------------------------------------+------+ | Le couronnement de Charlemagne | 800 | | La découverte de l'Amérique par Christophe Colomb | 1492 | | La bataille de Marignan | 1515 | | La chute du mur de Berlin | 1989 | | La mort de Jeanne d'Arc | 1431 | | La naissance de Louis XVI | 1754 | | ... | ... | +---------------------------------------------------+------+ <?php finpre() ; p("texte") ; echo " Répondez aux questions suivantes à l'aide d'instructions MySqL : " ; finp() ; ul() ; li("Combien y a-t-il d'évènements dans la table ? ") ; li("Combien y a-t-il d'évènements dans la table ayant eu lieu avant 1789 ? ") ; li("Quels évènements dans la table ont eu lieu avant 1789 ? ") ; li("Quelles sont les deux premières dates dans la table ? ") ; li("Quelles sont les deux premières dates dans la table par ordre historique ? ") ; finul() ; finli() ; debutli() ; p("texte") ; echo "On dispose d'une table ".em("sen_elev")." et d'une table ".em("sen_exer") ; echo " qui correspondent respectivement à des élèves et à des séries d'exercices. " ; finp() ; p("texte") ; 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 " ; finp() ; pre() ; ?> +----------+------+------+ | pren | nume | note | +----------+------+------+ | Louise | 1 | 18 | | Pierre | 1 | 12 | | Isabelle | 1 | 12 | | Damien | 1 | 14 | | Louise | 2 | 16 | | Louise | 3 | 16 | | ... | ... | | +----------+------+------+ <?php finpre() ; p("texte") ; echo " La table ".em("sen_exer")." contient un identifiant d'exercice (numéro), puis la matière et la difficulté de l'exercice " ; echo " qui est un entier entre 1 (facile) et 3 (difficile) ; en voici un extrait : " ; finp() ; pre() ; ?> +-------+----------+-------+ | idexo | mat | diffi | +-------+----------+-------+ | 1 | Calcul | 1 | | 2 | Calcul | 3 | | 3 | Histoire | 1 | | ... | ... | ... | +-------+----------+-------+ <?php finpre() ; p("texte") ; echo " Essayer de répondre en MySql aux questions suivantes : " ; finp() ; ul() ; li("Combien d'exercices Louise a-t-elle fait ? ") ; li("Combien d'élèves ont fait l'exercice 1 ? ") ; li("Quelle est la moyenne de Louise sur l'ensemble des exercices ? ") ; li("Et sur l'ensemble des exercices de calcul seulement ? ") ; li("Comment peut-on afficher les noms et les notes pour l'exercice 1 par ordre de mérite ? ") ; li("Idem pour la moyenne des notes de calcul (toujours par ordre de mérite) ? ") ; li("Qui a fait des exercices difficiles ? ") ; li("Comment peut-on assurer un suivi pédagogique pour les faibles en maths ? ") ; finul() ; finli() ; debutli() ; p("texte") ; echo "Donner le code PHP qui répond aux deux premières questions pour la table d'histoire "; echo "puis donner le code PHP qui répond aux deux premières questions pour les tables ".em("sen_elv") ; echo " et ".em("sen_exer")." ; écrire ensuite une fonction \"conceptuelle\" en PHP que l'on nommera " ; echo em("combien")." et donner le code PHP qui réalise les mêmes 4 requêtes à l'aide de cette fonction. " ; finp() ; p("texte") ; 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. " ; finp() ; finli() ; finol() ; ######################################################### $jtd++ ; tdDscs($jtd,$nomTd[$jtd]) ; # TD6 ######################################################### ol() ; debutli() ; p("texte") ; echo "On suppose qu'on dispose de la table de données suivante nommée ".em("sen_exer")." : " ; finp() ; pre("cadre") ; ?> +-------+----------+-------+ | idexo | mat | diffi | +-------+----------+-------+ | 1 | Calcul | 1 | | 2 | Calcul | 3 | | 3 | Histoire | 1 | | 4 | Calcul | 1 | | 5 | Calcul | 2 | | 6 | Histoire | 1 | | 7 | Histoire | 3 | +-------+----------+-------+ <?php finpre() ; p("texte") ; echo "Que fait, calcule et affiche le programme PHP suivant après ".em("debutSection()") ; echo " et avant ".em("finSection()")." ? " ; finp() ; # imprimer pour tout le monde le fichier ex1td6.ps pre("cadre") ; echo "\n" ; show_source("sen_exer_txt.php") ; echo "\n" ; finpre() ; p("texte") ; echo "On admettra que la fonction ".b("combien()")." est définie par les instructions suivantes : " ; finp() ; pre("cadre") ; echo "\n" ; show_source("combiens_inc.php") ; echo "\n" ; finpre() ; finli() ; debutli() ; p("texte") ; echo "On voudrait produire via du PHP \"conceptuel\" une table des matières et des titres de section comme " ; echo " ceux des pages d'exercices, à savoir : " ; finp() ; pre("cadre") ; ?> <h1><font color="blue">Table des matières</font></h1> <ul> <li>série 1 : <a href="#s1">le langage XHTML</a></li> <li>série 2 : <a href="#s2">les styles CSS</a></li> </ul> <h1><font color="green"><a name="s1">Série 1 : le langage XHTML</a></font></h1> ... <h1><font color="green"><a name="s2">Série 2 : les styles CSS</a></font></h1> .. <?php finpre() ; p("texte") ; echo "Sachant qu'on veut fournir un document XHTML qui utilise une grammaire stricte, écrivez une " ; echo " structure PHP contenant le titre des deux séries puis donnez les instructions PHP qui fournissent " ; 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 " ; echo " le code." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Dans la table ".em("sen_exer")." on a un champ ".em("mat")." correspondant à la matière " ; echo " et un champ ".em("diffi")." correspondant à la difficulté, comme dans le TD précédent." ; echo " Ecrire en PHP un menu qui affiche le nombre d'exercices disponibles par matière et par difficulté" ; echo " à l'aide d'".b("une seule requête MySql")."." ; #echo " Le lien derrière un couple (matière,difficulté) devra faire appel à un sous-programme qui fait " ; #echo " un tirage aléatoire d'un exercice parmi ceux concernés." ; finp() ; p("texte") ; echo "Voici un exemple d'un tel menu : " ; finp() ; pre("cadre") ; ?> Choisissez la matière et le niveau de difficulté de l'exercice : Matière 1 : Calcul Difficulté 1 (5 exercices) Difficulté 2 (5 exercices) Difficulté 3 (3 exercices) Matière 2 : Histoire Difficulté 1 (7 exercices) Difficulté 3 (6 exercices) Matière 3 : Géographie ... <?php finpre() ; p("texte") ; echo "Quelle est, à part le nombre de requêtes, la différence avec l'exercice 1 de ce TD ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Que fait, calcule et affiche le programme PHP suivant après ".em("debutSection()") ; echo " et avant ".em("finSection()")." ? " ; finp() ; pre("cadre") ; echo "\n" ; show_source("sen_stat.php") ; echo "\n" ; finpre() ; p("texte") ; echo " sachant que le contenu du fichier inclus est : " ; finp() ; pre("cadre") ; echo "\n" ; show_source("sen_stat_txt.php") ; echo "\n" ; finpre() ; finli() ; finol() ; pvide() ; p() ; echo ancre("#tdm","Retour à la table des matières") ; finp() ; p() ; echo href("montresource.php?nomfic=sen_tds.php","Code-source de la page") ; finp() ; ######################################################### finSection() ; finPage() ; ?>La coloration syntaxique est réalisée par : SyntaxHighlighter.
Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.
Retour à la page principale de (gH)