Listing du fichier sen_tps.php avec syntaxhighlighter
<?php # # (gH) -_- sen_tps.php ; TimeStamp (unix) : 07 Octobre 2019 vers 12:56 include("../std.php") ; debutPage("L3SEN TP ENONCES","strict") ; debutSection() ; h1("ENONCES DES TPS INFORMATIQUE WEB") ; h1("pour la licence DSCS") ; h1("(Diffusion du savoir et Culture scientifique)") ; $HTML = ghBleu("HTML") ; $Javascript = ghVert("Javascript") ; $MySQL = ghBleu("MySQL") ; p("grouge droite") ; echo "gilles.hunault@univ-angers.fr" ; finp() ; ######################################################### function tpDscs($num,$nom="") { h2("TP ".aname("DSCS","tp$num")." numéro $num ".ancre("sen_tps_cor.php#tp$num","(corrigé)").$nom) ; } # fin de fonction tpDscs ######################################################### ######################################################### $nomTp = array() ; $nomTp[1] = " Pages Web ".em(ghvert("locales")) ; $nomTp[2] = " Pages Web sur ".em(ghRouge("distantes"))." sur ".em("devel")." et tableaux " ; $nomTp[3] = " Tableaux, listes et CSS " ; $nomTp[4] = " CSS, formulaires et $Javascript" ; $nomTp[5] = " $Javascript" ; $nomTp[6] = " Php " ; $nomTp[7] = " Php et Mysql " ; h2("Table des matières") ; $nb_tp = 7 ; blockquote() ; for ($itp=1;$itp<=$nb_tp;$itp++) { echo h3(ancre("#tp$itp","TP numéro $itp").$nomTp[$itp]) ; } ; # fin pour finblockquote() ; $jtp = 0 ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP1 ######################################################### p("texte") ; echo b("Remarque ")." : tout le TP se passe en local, sous Windows ou Linux." ; finp() ; ol() ; debutli() ; # 1 p("texte") ; echo "Quels sont les navigateurs Web disponibles en général ? Lequel ou lesquels sont les meilleurs et pourquoi ?" ; finp() ; finli() ; debutli() ; # 2 p("texte") ; echo "Ecrire juste ".ghBleu("ESSAI : <H1>BONJOUR")." dans le fichier ".b("bonjour.htm")." " ; echo " à l'aide de Geany ou Notepad++ (mais pas le bloc-notes standard de Windows) pour Windows, " ; # sous Xp, avec gedit sous Linux." ; echo " avec Geany sous Linux (ou un autre éditeur de texte avec coloration syntaxique des mots-clés de XHTML)." ; finp() ; ul() ; li("Est-ce que le texte s'affiche avec un navigateur via Fichier/Ouvrir ?") ; li("ESSAI et BONJOUR sont-ils écrits pareils ? Pourquoi ? ") ; li("Est ce que le texte s'affiche de façon identique quelque soit le navigateur ?") ; li("Le fichier est-il bien formé ? valide ? ") ; li("Complétez le fichier pour qu'il soit valide au sens de la grammaire XHTML Strict et vérifiez-le sur le site du W3C.") ; li("Ecrire un fichier ".b("sq.htm")." (\"squelette\") qui servira de modèle pour les exercices suivants.") ; finul() ; finli() ; debutli() ; # 3 p("texte") ; echo "Essayez de trouver plusieurs façons d'écrire ".ghBleu("BONJOUR BONSOIR")." sur deux lignes différentes à l'affichage. " ; echo " ".em("Remarque")." : il y en a au moins 6." ; finp() ; finli() ; debutli() ; # 4 p("texte") ; echo "Mézalors, quelle grammaire (DOCTYPE) faut-il utiliser ?" ; echo " Et comment utiliser les styles ?" ; finp() ; /* p("texte") ; echo "Installez HTML validator pour Firefox. Si on vous demande une méthode de validation " ; echo " à l'installation, privilégiez le mode «les deux»." ; finp() ; */ finli() ; debutli() ; p("texte") ; echo em("Do you need to speak english to write Web pages ?")."" ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire une page Web qui correspond à l'adresse Jean DUPONT 3 route de Rome 49100 ANGERS pour une grande enveloppe A4. " ; echo "Comment mettre en bleu le nom et le prénom ? Et la ville en gras ? " ; finp() ; p("cadre unTiers center") ; echo img("a4.png","",600) ; finp() ; p() ; echo b("Attention")." : résoudre complètement cet exercice en transitionnel et en strict est technique. On réfléchira à la solution " ; echo " mais on n'essaiera pas d'écrire exactement le code source HTML et CSS." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Construire une liste numérotée puis non numérotée des courses : oeufs, pain, viande, fruits, légumes." ; echo " Reprendre avec une liste à définition (faire un petit commentaire pour chaque ingrédient)." ; echo " Cherchez le mot oeuf avec ".b("Google").". Comment faire un lien vers la page correspondante ? " ; echo " Cherchez une image d'oeuf avec ".b("Google Images").". Comment afficher cette image ? " ; finp() ; p("texte") ; echo " Faire un tableau (avec bordure) des courses oeufs, pain, viande fruits, légumes sous forme de tableau. La colonne 1 contiendra le mot avec son lien, " ; echo " la colonne 2 l'image (normalisée), la colonne 3 le petit commentaire. " ; echo " Comment mettre un lien sur le bas de la page de la liste de courses ? " ; finp() ; p("texte") ; echo "S'il reste du temps : (à faire dans le tableau)" ; finp() ; ul() ; li(" Quelle est la \"bonne\" syntaxe de l'URL ".b("http://www.google.fr/search?q=légumes")." ? ") ; li(" Mettre toutes les images avec une même taille. ") ; li(" Mettre une couleur bleu clair en fond de tableau.") ; li(" Mettre le texte de commentaire en vert sur fond rose pour le pain et la viande.") ; li(" Faire un roll-over (qu'est-ce ?) sur deux images en cru/cuit.") ; finul() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP2 ######################################################### p("texte") ; echo b("Remarque ")." : sauf pour l'exercice 1, tout le TP se passe en local, sous Windows ou Linux, " ; echo " mais les pages doivent ensuite être transférées vers les comptes Linux étudiant(e)s du départment informatique de l'UFR." ; finp() ; ol() ; debutli() ; p("texte") ; echo " Utiliser le PC sous Linux et réaliser une connection vers la machine ".em("devel")." dans un terminal. " ; echo " On utilisera la commande ".b("ssh -YC -p 4920 VOTRE_LOGIN@devel.info.univ-angers.fr")." pour se connecter où ".b("VOTRE_LOGIN")." est l'identifiant " ; echo " associé à votre compte d'étudiant(e). " ; #echo " Au pire, demandez à un(e) voisin(e) connecté(e) de taper ".b("liste licsen")." " ; #echo " afin de voir votre login." ; finp() ; p("texte") ; #echo " Changer le mot de passe provisoire de votre compte en un \"vrai\" mot de passe avec la commande ".em("yppasswd").". " ; echo " Est-ce que le répertoire ".ghRouge("forge_html")." existe ?" ; echo " Si non, le créer. Vérifier ensuite que les droits sont bien ceux correspondant à la commande ".b("chmod -R 711 ~/forge_html")."." ; finp() ; p("texte") ; echo " Reprendre l'exercice 3 (Bonjour/Bonsoir) et recopier les fichiers sur votre compte Unix et votre \"site étudiant\". " ; echo " On utilisera un éditeur comme ".b("gedit").", ".b("kate").", ".b("geany")." ou ".b("kwrite").". " ; echo " On fournira une version transitionnelle ou une version stricte, mais il est possible de se contenter de recopier la solution et " ; echo " de tester qu'elle fonctionnne après avoir recopié tous les fichiers nécessaires dont les feuilles de style. " ; echo " On viendra tester que le validateur du W3C est capable de tester les pages étudiantes via leur URL." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Peut-on écrire des pages Web chez soi, sur son Pc sous Windows et les mettre sur son compte étudiant Unix ?" ; finp() ; p("texte") ; echo em("Mézalors").", sous quel environnement (Windows, Linux) écrire ses pages, et avec quel éditeur ?" ; finp() ; p("texte") ; echo " Vérifier que vous savez transférer un fichier local sur ".em("janus")." à l'aide de ".b("FileZilla") ; echo " ou d'un outil logiciel équivalent qui utilise le protocole ".b("SFTP")." :" ; # , port 4920 : " ; finp() ; p("texte") ; echo "Il faut mettre ".b("sftp://devel.info.univ-angers.fr")." comme nom d'".em(ghVert("hôte")).", " ; echo " puis entrer son identifiant ".b("et")." son mot de passe puis appuyer sur Enter (pas sur Connexion rapide). "; echo " Il n'y a pas besoin d'entrer le numéro du port." ; finp() ; p() ; $url = "filezilla.png" ; echo href($url,img($url,"",600)) ; finp() ; p("texte") ; echo " Vérifier aussi qu'on peut alors consulter la page Web sur son téléphone portable, ou avec une tablette." ; finp() ; p("texte") ; echo em("Remarque")." : " ; echo " à la faculté, on peut aussi mettre comme nom d'hôte ".ghvert("sftp://devel.info-ua")." pour ". b("FileZilla"); echo " alors que depuis l'extérieur, il ".ghrouge("faut")." mettre comme nom d'hôte ".ghvert("sftp://devel.info.univ-angers.fr").". " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Reprendre sous Unix l'exercice de la liste des courses du TP 1 (version tableau) avec les images et les liens. " ; echo " On mettra des liens vers Google, les images en petit avec un lien pour avoir l'image en grand. " ; echo " De plus on mettra une nappe (ou une couleur de fond) pour le tableau et une serviette (ou une couleur de cellule) " ; echo " pour la première case de chaqe ligne. On pourra aussi tester les ".b("divisions")." (<div>)." ; finp() ; p("texte") ; echo " Pour ceux et celles qui l'ont oublié, vérifier que la page est valide avec la grammaire transitionnelle puis en faire " ; echo " une copie avec la grammaire stricte (page valide) avec tous les styles en externe dans un fichier CSS." ; echo " Essayer aussi de regarder comment on ".href("http://www.albionresearch.com/misc/urlencode.php","urlencode")." la référence pour les légumes à cause du e-accent aigu." ; finp() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP3 ######################################################### p("texte") ; echo b("Remarque ")." : tous les TPs sont désormais aux choix des étudiant(e)s sous Windows ou sous Linux." ; finp() ; ol() ; /* debutli() ; p("texte") ; echo "Démarrer le PC sous Windows et vérifier que vous savez utiliser WinScp " ; echo " pour transférer un fichier de n'importe quelle machine connectée à Internet sous Windows vers votre compte Unix ; " ; echo " recopier, par exemple sur votre compte les deux fichiers " ; echo href("modele_transitionnel.htm","modele_transitionnel")." et " ; echo href("modele_strict.htm","modele_strict")." puis " ; echo href("std.css")." qui servira pour tous les TP." ; finp() ; p("texte") ; echo "Installer en local sous Windows l'extension ".ancre("https://addons.mozilla.org/fr/firefox/addon/249","Html Validator")." et " ; echo " vérifier que le code-source est testé en fonction de la grammaire. Choisir le mode \"les deux\" pour la vérification." ; echo " Installer aussi le validateur sous Linux." ; finp() ; finli() ; */ debutli() ; p("texte") ; echo "Reproduire le tableau de la page " ; echo ancre("botablo.htm") ; echo " puis celui de la page " ; echo ancre("botablo2.htm").". On essaiera de comprendre la différence entre " ; echo b("<table bgcolor='yellow'>...")."," ; echo b("<td bgcolor='yellow'>...")." et " ; echo b("<td><p bgcolor='yellow'>...")."" ; echo " Tester également ".b("border='100'")." puis les couples ".b("cellpadding='20' cellspacing='100'")." et ".b("cellpadding='20' cellspacing='100'")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo "On veut s'affranchir du souligné sous un lien. Comment faire ? On essaiera de mettre un petit texte en bleu foncé dans " ; echo " un paragraphe sur fond gris (paragraphe justifié à droite et à gauche et encadré) avec un lien en rouge sans souligné. " ; echo " Dupliquer le paragraphe et inventer un \"bouton rectangulaire\" en jouant sur les dimensions du style associé au lien." ; echo " On ne commencera pas avec une page web vide mais avec le squelette ".ancre("sq.htm")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Inventer la couleur bleu_tendre ou bleu_intense à l'aide d'un code RGB issu de ".ancre("http://www.pagetutor.com/colorpicker/index.html","ColorPicker"). "." ; echo " Copier-coller le texte suivant (tiré de ".ancre("http://fr.wikipedia.org/wiki/Jules_C%C3%A9sar","wiki").")." ; finp() ; pre_fichier("jules.txt","cadrejaune") ; p("texte") ; echo " On utilisera pour cette première partie la grammaire ".em("transitionnelle")."." ; echo " Mettez un titre de niveau 1 autour de ".b("Jules César")." puis écrivez à nouveau ".b("Jules César")." " ; echo " en taille 7 et encore une troisième fois en \"font-size\" ".b("300pt").". Qui est le plus gros ? " ; echo " Délimiter le paragraphe de biographie via l'élément ".b("p").". " ; echo " Dupliquer le paragraphe et essayer de mettre la copie en retrait. " ; echo " On essaiera de trouver plusieurs solutions pour ce retrait. Mettre ensuite le titre en bleu_intense à l'aide d'un " ; echo " style en ligne puis avec un style nommé ".b("jc")." pris dans une feuille de style externe nommée ".b("cesar.css")." ;" ; echo " peut-on utiliser le style ".b("jc")." pour faire ressortir les mots ".b("Rome")." et ".b("République romaine")." ? " ; echo " Pourquoi est-ce \"stupide\" d'utiliser une feuille nommée ".b("cesar.css")." ?" ; echo " On ne commencera pas avec une page web vide mais avec le squelette ".ancre("sq.htm")."." ; finp() ; p("texte") ; echo " Reprendre l'exercice avec la grammaire ".em("stricte")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire un petit texte dans un paragraphe et dupliquer le paragraphe. Appliquer ensuite " ; echo " le style ".b("cadre")." de la feuille de styles ".href("../std.css","std.css") ; echo " au deuxième paragraphe. " ; finp() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP4 ######################################################### ol() ; debutli() ; p("texte") ; echo "Recopier en local la page ".ancre("sen_ts.htm").", les styles ".ancre("sen_demo1.css")." et ".ancre("sen_demo2.css")."." ; echo " Testez ces 3 fichiers pour savoir s'ils sont valides et corrigez-les le cas échéant." ; echo " Tester l'affichage si on met ".b("sen_demo1.css")." comme feuille de style pour ".b("sen_ts.htm")." puis quand on utilise ".b("sen_demo2.css")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire un formulaire minimal pour remplacer le formulaire de base de Google. " ; echo " Qu'y a-t-il de plus dans le formulaire original de Google ? " ; finp() ; p("texte") ; echo " ".em("Pour les experts")." : écrire dans la même page un autre formulaire dont la recherche est restreinte à la France," ; echo " un troisième restreint aux images et enfin un quatrième qui filtre les recherches pour protéger les enfants. " ; echo " Pourquoi dans ce cas certaines pages de ".b("Gilles Hunault")." sont-elles filtrées ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Que peut-on faire avec l'URL ".b("http://forge.info.univ-angers.fr/~gh/internet/ndjpm.php")." ? Essayer de voir comment cette adresse " ; echo " permet de connaitre le nombre de jours d'un mois donné. Pourquoi est-ce que ce script (programme) se nomme ".b("ndjpm")." ? " ; echo " Peut-on 'coincer' ce programme ? Lui faire afficher une erreur ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Faire une liste numérotée avec les mois Septembre, Octobre... ; peut-on commencer les numéros à 9 ? et mettre les nombres en latin ? " ; echo " Mettre un lien sous le nom du mois avec comme URL :" ; finp() ; div('center') ; echo b("http://forge.info.univ-angers.fr/~gh/internet/ndjpm.php?m=")." " ; findiv() ; p("texte") ; echo " suivi du numéro du mois ( ".b("?m=9")." pour Septembre, ".b("?m=10")." pour Octobre etc.). " ; finp() ; p("texte") ; echo " Si on commence à 1957, quelle est la première valeur avec ".b("type='I'")." ? Pourquoi ? " ; finp() ; p("texte") ; echo " Si on commence à 2019, quelle est la deuxième valeur avec ".b("type='A'")." ? Pourquoi ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire un formulaire qui demande un numéro de mois et qui renvoie le nombre de jours dans ce mois. " ; echo " On utilisera l'URL de l'exercice précédent." ; echo " Ecrire dans la même page un second formulaire qui utilise une liste de sélection non multiple qui affiche les noms de mois " ; echo " et qui renvoie le nombre de jours dans ce mois. " ; echo " Ecrire (toujours dans la même page) un troisième formulaire qui utilise une liste de boutons radio pour sélectionner le mois " ; echo " et qui renvoie le nombre de jours dans ce mois. " ; finp() ; p("texte") ; echo em("Question sans réponse")." : pédagogiquement, quel est le meilleur formulaire et pourquoi ?" ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire un formulaire qui demande une longueur et une largeur en mètres et qui utilise comme action " ; echo " l'URL ".href("http://forge.info.univ-angers.fr/~gh/internet/longlarg.php") ; echo " pour afficher le périmètre et l'aire du champ rectangulaire correspondant à ces dimensions " ; echo " (pas de $Javascript ici)." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Puisque l'attribut ".b("start")." pour l'élément ".b("ol")." est interdit dans la grammaire stricte (voir la validation de la page " ; echo href("http://forge.info.univ-angers.fr/~gh/internet/olstart1.php","olstart1")."), " ; echo " comment faire pour commencer une liste ordonnée à 9 pour le mois de septembre avec la grammaire stricte ?" ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire un formulaire qui demande un nombre et en affiche le double sur la même page. " ; echo " On utilisera $Javascript avec une grammaire stricte et on fera la multiplication par 2 'à la volée' dans un \"onsubmit\" ; " ; echo " on utilisera deux champs textes nommés respectivement ".b("nombre")." et ".b("double").". " ; echo " L'action sera l'URL : " ; finp() ; p("centre") ; echo b(href("http://forge.info.univ-angers.fr/~gh/internet/non.php"))."" ; finp() ; p("texte") ; echo " et ne devra pas s'exécuter..." ; finp() ; p("texte") ; echo " Pour mémoire, en $Javascript, à l'intérieur d'un formulaire, on accède à la valeur liée à un élement de type input " ; echo " par ".b("this.NOM.value")." si NOM est le nom de l'élément. En dehors du formulaire, par exemple dans la console ou par fonction, " ; echo " on y accède par ".b("window.document.getElementById(\"IDELT\").value")." si IDELT est l'id de l'élément." ; finp() ; p("texte") ; echo " Ajouter un autre formulaire qui demande un nombre et en affiche le double et la moitié sur la même page avec un seul bouton d'envoi. " ; echo " On utilisera $Javascript avec une grammaire stricte et on fera la division par 2 'à la volée' dans un \"onsubmit\" ; " ; echo " on utilisera trois champs textes nommés respectivement ".b("Xnombre").", ".b("Xdouble")." et ".b("Xdemi")." (pourquoi ?). " ; finp() ; p("texte") ; echo " Ecrire enfin un troisième formulaire qui affiche le tiers d'un nombre. Comment gérer les décimales ? " ; finp() ; p("texte") ; echo " Peut-on faire la même chose sans formulaire ?" ; finp() ; p("texte") ; echo " On pourra consulter ".href("sen_nombres4.php","sen_nombres4")." comme modèle de page ) produire, comme ci-dessous :" ; finp() ; p() ; nbsp(8) ; $url = "sen_nombres4.png" ; echo href($url,img($url,"",600)) ; finp() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP5 ######################################################### ol() ; debutli() ; p("texte") ; echo " Ecrire un formulaire qui demande une longueur et une largeur en mètres et qui utilise comme action " ; echo " l'URL ".href("http://forge.info.univ-angers.fr/~gh/internet/longlarg.php") ; echo " pour afficher le périmètre et l'aire du champ rectangulaire correspondant à ces dimensions " ; echo " (pas de $Javascript ici)." ; finp() ; p("texte") ; echo "Remplacer ensuite l'action par la mise à jour des réponses dans la page via $Javascript. On pourra afficher des étoiles à la place " ; echo " du résultat tant qu'on a pas cliqué sur le bouton d'envoi nommé ".b("calculer !")."." ; finp() ; p("texte") ; echo "Pour les plus rapides, masquer la zone des résultats au chargement de la page et la montrer seulement " ; echo " quand on utilise le bouton d'envoi nommé ".b("calculer")." (utiliser la propriété ".b("visibility")." ou les styles " ; echo b("visible")." et ".b("invisible")." de ".href("std.css").")." ; finp() ; finli() ; debutli() ; p("texte") ; echo "J'ai malheureusement écrit le texte html suivant nommé ".href("malchance.htm")." : \n" ; finp() ; pre() ; echo " <h2>Bonjour</h2> \n" ; echo " \n" ; echo " <script language=\"javascript\"> \n" ; echo " window.document.write(' Qui le dit ? C'est moi ! ') ; \n" ; echo " </script> \n" ; echo " \n" ; echo " <h2>Bonsoir</h2> \n" ; finpre() ; p() ; echo "...mais je ne vois rien entre Bonjour et Bonsoir. Pourquoi ? Corriger le script puis \n" ; echo "indiquer comment on peut voir les erreurs des scripts. Est-ce que cela a de l'influence sur la validation ?\n" ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire un formulaire qui demande un nombre de kilos et qui affiche son équivalent en grammes. " ; echo " On utilisera $Javascript avec une grammaire stricte. Une première solution fera la conversion à la volée dans un \"onsubmit\", " ; echo " la deuxième solution utilisera une fonction de conversion mise dans un fichier externe (chargé dans ".b("head")."). On utilisera une action non vide " ; echo " qui ne devra pas être déclenchée. La fonction utilisée, soit ".b("conversionKilos(x)")." recevra tout le formulaire " ; echo " et non pas juste la valeur à convertir. On fera juste la conversion, mais aucune vérification sur le type, la valeur... " ; finp() ; p("texte") ; echo " ".em("Pour les experts")." : dans le deuxième formulaire, arrangez-vous pour rendre le champ de réponse invisible " ; echo " (propriété CSS nommée ".b("visible").") et rendez-la visible quand on soumet le formulaire. Attention : ce n'est pas le " ; echo " même code avec Firefox et Internet Explorer." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire une page Web qui met, via ".em("Javascript").", " ; echo " la valeur ".b("8")." dans la variable ".b("a").", la valeur ".b("2")." dans la variable ".b("b")." " ; echo " et qui ensuite calcule et affiche leur addition, soustraction, multiplication et division." ; echo " Comment demander à $Javascript d'écrire dans la page ? " ; echo " Utilisez une grammaire stricte. Attention : cet exercice n'utilise aucun formulaire." ; finp() ; p("texte") ; echo " Ecrire dans la même page un formulaire qui demande deux nombres entiers et qui affiche leur addition, soustraction, multiplication et division." ; echo " On utilisera $Javascript avec une grammaire stricte et on soignera le cas de la division." ; echo " On pourra ajouter la comparaison des deux nombres (à tester avec 13 et 2). " ; # echo " A quoi sert l'url ".b("javascript:")." sous Firefox ? " ; echo " Comment demander à $Javascript d'écrire dans la page qui contient le formulaire ? " ; echo " Utilisez une grammaire stricte." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire une page Web qui met via ".em("Javascript")." " ; echo " la valeur ".b("8")." dans la variable ".b("a").", la valeur ".b("2")." dans la variable ".b("b")." " ; echo " et la valeur ".b("6")." dans la variable ".b("c").". Comment afficher ces variables par ordre croissant ? " ; echo " On utilisera impérativement une fonction ".b("afficheCroiss(a,b,c)")." et on réfléchira à l'ensemble des cas possibles." ; echo " Comment devrait-on faire si on avait 4, 5, 6... valeurs ? On pourra utiliser la liste de nombres 1 5 8 2 8 3 6 8 2 pour vérifier." ; echo " Utilisez une grammaire stricte. Attention : cet exercice n'utilise aucun formulaire." ; finp() ; ######################################################### ######################################################### ######################################################### CONFINEMENT ######################################################### ######################################################### div("cadre") ; blockquote("1") ; h1("TP ".aname("confinement","confinement")." novembre 2020","grouge") ; blockquote(2) ; ######################################################################### h2("TP du 03 novembre : fonctions $Javascript liées à onClick ") ; ######################################################################### blockquote(21) ; div("cadreblanc") ; blockquote(210) ; p("texte") ; echo " Essayer de réaliser les exercices ".ghVert(6)." et ".ghVert(7)." ci-dessous (".ghBleu("TP 5")."), le panneau d'affichage Eux/Nous et l'horloge numérique. " ; finp() ; p("texte") ; echo " N'oublez pas d'afficher la console $Javascript via les outils de développement pour voir les messages d'erreur." ; finp() ; p("texte") ; echo em(s_span(" Pour mémoire","vert")).", l'éditeur de texte conseillé pour écrire du HTML et du $Javascript est ".b("Geany").". " ; echo " C'est un logiciel gratuit, facile à installer depuis son téléchargement " ; echo href("https://www.geany.org/","ici").". " ; finp() ; finblockquote(210) ; findiv() ; finblockquote(21) ; ######################################################################### h2("TP du 10 novembre : tableaux en $Javascript ") ; ######################################################################### blockquote(22) ; div("cadreblanc") ; blockquote(220) ; p("texte") ; echo " Essayer de réaliser les exercices ".ghVert(8)." et ".ghVert(11)." ci-dessous (".ghBleu("TP 5")."), calcul du maximum d'un tableau et la réponse " ; echo b("rr?o?uge")." dans «".em("le petit chaperon rouge")."»." ; finp() ; p("texte") ; echo em("Facultatif")." : " ; echo " réaliser le test de compréhension des tableaux disponible " ; echo href("https://wiki.developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Test_your_skills:_Arrays","ici").". " ; # echo " puis l'exercice ".ghVert(9)." du ".ghBleu("TP 5")." (le nombre mystérieux). Quelle est la meilleure stratégie pour trouver ce nombre ?" ; finp() ; finblockquote(220) ; findiv() ; finblockquote(22) ; ######################################################################### h2("TP du 17 novembre : nombres au hasard, le jeu du nombre mystérieux ($Javascript)") ; ######################################################################### blockquote(22) ; div("cadreblanc") ; blockquote(221) ; pvide() ; ul("class='disque'") ; debutli() ; p("texte") ; echo " Pour vérifier que vous savez générer un nombre au hasard, lisez et étudiez la page ".href("nbAuHasard.php","nombreAuHasard","bleu").". " ; echo " Modifiez le code $Javascript pour que, quand le nombre d'enregistrements est plus ou grand ou égal au nombre de tirages, les nombres tirés soient distincts " ; echo " (au bout d'un moment, ils ne sont donc plus vraiment au hasard). " ; echo ghRouge(" Attention :")." si vous programmez mal vos calculs, il est possible que votre script entre dans une boucle infinie, " ; echo " alors, prudence dans ce que vous écrivez. " ; finp() ; p("texte") ; nbsp(5) ; echo ghBleu(" Solution : ") ; echo href("nombresAuHasardDistincts.php","nombresAuHasardDistincts") ; echo ". " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Programmer ensuite en $Javascript dans une page Web le jeu du nombre mystérieux, selon les consignes suivantes. " ; echo " L'ordinateur choisit un nombre entier au hasard entre 1 et 100. L'utilisateur doit trouver ce nombre. " ; echo " A chaque réponse utilisateur incorrecte, l'ordinateur répond " ; echo em("«plus petit»") ; echo " ou " ; echo em("«plus grand»") ; echo " pour guider l'utilisateur. " ; echo " Si le nombre n'est pas trouvé au bout de 9 essais, l'ordinateur affiche la réponse. " ; finp() ; p("texte") ; echo " Il faut bien sûr commencer par réfléchir au ".b("design")." de la page. " ; echo " Vous trouverez " ; echo href("leNombreInconnu.php","ici")." un exemple de page possible (mais sans $Javascript) pour cet exercice. " ; echo " La division qui contient le nombre inconnu et le nombre d'essais ne doivent pas apparaitre et " ; echo " il serait \"sympathique\" de masquer la zone jaune tant que l'utilisateur n'a pas effectué son premier essai. " ; finp() ; p("texte") ; nbsp(5) ; echo ghBleu(" Solution : ") ; echo href("leNombreInconnuVersion1.php","leNombreInconnuVersion1") ; echo ". " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Rien n'interdit à l'utilisateur de saisir plusieurs fois la même valeur. Ecrivez une version 2 du jeu du nombre mystérieux " ; echo " où on n'autorise pas deux fois la même valeur de la part de l'utilisateur. " ; finp() ; p("texte") ; nbsp(5) ; echo ghBleu(" Solution : ") ; echo href("leNombreInconnuVersion2.php","leNombreInconnuVersion2") ; echo ". " ; finp() ; finli() ; finul() ; pvide() ; finblockquote(221) ; findiv() ; finblockquote(22) ; ######################################################################### h2("TP du 24 novembre : requêtes $MySQL") ; ######################################################################### blockquote(22) ; div("cadreblanc") ; blockquote(222) ; pvide() ; p("texte") ; echo " Le but de ce TP est de vérifier que vous avez compris la seule chose importante dans ce cours par rapport " ; echo " à $MySQL, à savoir : ".em("écrire une requête ".b("SELECT")).". " ; finp() ; p("texte") ; echo " Donc ".ghRouge("pas de panique")." ! Si vous avez l'impression d'être perdue entre $HTML et $Javascript, bonne nouvelle :" ; echo " dans ce TP, il n'y en a pas, il n'y a que du $MySQL." ; finp() ; ul("class='disque'") ; debutli() ; p("texte") ; echo " Répondez aux questions du " ; echo href("../tuteurs/tutmysql.htm#tth_sEc6.","tuteur $MySQL") ; echo " section 6, exercices 1 (".ghVert("titanic").") et 2 (".ghVert("elf")."). " ; finp() ; p("texte"); echo " Vous utiliserez bien sûr la page " ; finp() ; p("texte"); nbsp(8) ; echo href("http://forge.info.univ-angers.fr/~gh/Pluripass/Db/executeMysql.php"," executeMysql ","bouton_fin nou jaune_pastel") ; finp() ; p("texte"); echo " pour tester vos réponses. " ; finp() ; p("texte") ; echo " Essayez ensuite de répondre aux questions de la partie 2 de l'examen " ; echo href("sen2017_3.pdf","sen2017_3").". " ; ; finp() ; finli() ; debutli() ; p("texte") ; echo " Répondez aux questions du " ; echo href("../tuteurs/tutmysql.htm#tth_sEc6.","tuteur MySQL") ; echo " section 6, exercices 3 (".ghVert("ronfle").") et 4 (".ghVert("2tables")."). " ; finp() ; p("texte") ; echo " Essayez ensuite de répondre aux questions de la partie 3 de l'examen " ; echo href("sen2016_3.pdf","sen2016_3").". " ; ; finp() ; finli() ; debutli() ; p("texte") ; echo " Répondez aux questions du " ; echo href("../tuteurs/tutmysql.htm#tth_sEc6.","tuteur $MySQL") ; echo " section 6, exercice 5 (".ghVert("4tables")."). " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Sur la base du " ; echo href("miniQuizzHistoire.php","mini quizz d'histoire") ; echo " présenté hier, comment feriez pour avoir trois dates aléatoires à proposer dans l'exercice " ; echo " plutôt que les trois premières dates ? " ; echo " Peut-on le faire avec $MySQL ?" ; finp() ; finli() ; finul() ; pvide() ; finblockquote(222) ; findiv() ; finblockquote(22) ; ######################################################################### h2("TP du 1".sup("er")." décembre : révision, suite et fin") ; ######################################################################### blockquote(33) ; div("cadreblanc") ; blockquote(330) ; pvide() ; p("texte") ; echo " Si vous n'aviez fini pas le cours d'hier avec ses huit étapes, reprenez là où vous étiez rendues. " ; echo " Si vous avez l'impression de passer trop de temps sur l'étape 2, lisez et recopiez le corrigé dans " ; echo href("mots2.html")." et dans ".href("mots2.js")." puis passez à l'étape 3 qui est plus simple. " ; finp() ; p("texte") ; echo " Si vous aviez tout fini, refaites tout mais sans utiliser les maquettes de fonction fournies. " ; echo " Si vous préférez, refaites une page similaire pour des exercices de géographie avec la même démarche :" ; echo " $HTML puis $Javascript pour un exercice, une boucle pour plusieurs exercices, intégration de la base de données, évaluation... " ; finp() ; pvide() ; finblockquote(330) ; findiv() ; finblockquote(33) ; ########################################################################################## ########################################################################################## ########################################################################################## ########################################################################################## ########################################################################################## finblockquote(2) ; finblockquote("1") ; findiv() ; finli() ; ########################################################################################## ########################################################################################## ########################################################################################## ########################################################################################## ########################################################################################## debutli() ; p("texte") ; echo " Ecrire un panneau d'affichage Eux/Nous avec des \"gros\" boutons + et - pour modifier les scores, comme dans une salle de sports. " ; echo " On utilisera $Javascript avec une grammaire stricte et on mettra un bouton pour remettre à zéro." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire un affichage d'horloge numérique pour apprendre à lire l'heure, avec avec des \"gros\" boutons + et - " ; echo " pour modifier les heures et les minutes. On initalisera à 23 h 58." ; echo " On utilisera $Javascript avec une grammaire stricte. Exemple de rendu via ".href("sen_horloge.php","sen_horloge")." :" ; finp() ; p() ; nbsp(8) ; $url = "sen_horloge.png" ; echo href($url,img($url,"",600)) ; finp() ; p("texte") ; echo " Beaucoup plus difficile (".b("mais plus pédagogique")."). Ajouter un panneau qui dit l'heure : " ; echo " ".em("neuf heures moins le quart ")." pour 8 h 45, " ; echo " ".em("10 heures moins dix")." pour 9 h 50 etc." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire une fonction $Javascript qui détermine le max d'un tableau (la plus grande valeur présente dans le tableau) et le nombre de fois où ce max apparait " ; echo " avec la contrainte qu'on doit utiliser une seule boucle POUR qui fait à la fois la détermination du max " ; echo " et le calcul du nombres d'occurences." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire tout en $Javascript le jeu du nombre mystérieux avec initialisation à un entier entre 1 et 100, " ; echo " un nombre maximum d'essais et un affichage de l'historique des réponses." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire une fonction $Javascript qui trie un tableau HTML à plusieurs colonnes." ; echo " On distinguera le tri alphabétique (comme pour les mois) du tri numérique (pour les prix)." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire une page Web qui pose la question ".em("Quelle est la couleur du petit chaperon dans le conte de Charles PERRAULT ?").". " ; echo " Sans utiliser de formulaire, utiliser $Javascript pour accepter silencieusement une chaine avec des espaces en début ou en fin de chaine. " ; echo " On acceptera la réponse ".b("rouge")." comme seule bonne réponse exacte. " ; echo " On acceptera les réponses ".b("roug").", ".b("ruge").", ".b("rrouge")." comme réponses correctes approchées. " ; echo " Le code $Javascript devra convertir en minuscules tout le texte entré et remplacer les espaces multiples par un seul espace." ; finp() ; p("texte") ; echo " Demander ensuite à l'apprenant son mois de naissance au format ".b("MM").". On refusera tout autre format." ; finp() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP6 ######################################################### p("texte") ; echo b("Remarque ")." : que le TP se passe sous Windows ou sous Unix, toutes les pages écrites doivent " ; echo " être enregistrées dans des fichiers de type ".b(".php")." (et non pas ".b(".html").") et il faut les " ; echo " ouvrir avec le protocole ".b("http://").", c'est à dire qu'on ne peut plus faire ".em("Fichier/Ouvrir")." " ; echo " pour charger la page." ; echo " L'URL du fichier ".b("demo.php")." pour l'utilisateur ".b("login")." est :" ; finp() ; p("centre") ; echo b("http://devel.info.univ-angers.fr/~login/demo.php")."" ; finp() ; p("texte") ; echo " ce qui signifie donc que vous devez mettre vos fichiers ".b(".php")." dans votre répertoire " ; echo " ".b("forge_html/").". " ; finp() ; p("texte") ; echo ghRouge("Attention :")." contrairement aux pages Web précédentes, une erreur dans le code PHP peut aboutir à une page toute blanche " ; echo" ou au message ".b("Erreur 404: not found")." ou à l'affichage d'un code d'erreur. " ; finp() ; p("texte") ; echo " Pour tester les erreurs de syntaxe élémentaire, il est conseille d'utiliser ".ghVert("php -l monProgramme.php")." comme ci-dessous " ; echo " où il manque un point-virgule sur la ligne qui précède ".ghvert("if").". " ; finp() ; pre_fichier("err_demo.txt","cadrebleu") ; p("texte") ; echo" Lorque votre page est \"propre\" et \"correcte\", vous pouvez l'utiliser sur forge, soit, pour l'exemple précédent, avec l'URL" ; finp() ; p("centre") ; echo b("http://forge.info.univ-angers.fr/~login/demo.php")."" ; finp() ; p("texte") ; echo" Il est conseillé d'utiliser ".ghVert("php -a")." dans un terminal pour tester un bout de code, découvrir comment marche une fonction, etc. " ; finp() ; ol() ; debutli() ; p("texte") ; echo "Testez ce qu'affiche le code PHP suivant :" ; finp() ; pre("cadre") ; echo "\n"; echo " <?php\n" ; echo " echo \"<h1>\\nET VOILA LE TRAVAIL\\n</h1>\\n\" ;\n" ; echo " ?>\n" ; echo "\n"; finpre() ; p("texte") ; echo "Si on affiche le code HTML de la page, combien trouve-t-on de lignes ? " ; echo " Que se passe-t-il en cas d'erreur, pas exemple si on oublie un guillemet ?" ; finp() ; p("texte") ; echo "Ecrire un programme en ligne de commandes qui affiche, au dizième de milliard près, le nombre de secondes écoulées " ; echo " depuis l'an 0." ; echo " On ne tiendra pas compte de la nuit du " ; echo href("https://fr.wikipedia.org/wiki/Calendrier_gr%C3%A9gorien","4 au 15 octobre 1582").". " ; echo " Faut-il tenir compte des annnées bissextiles ?" ; finp() ; p("texte") ; echo "Ecrire ensuite un programme PHP qui à partir des variables \$a et \$b met respectivement dans " ; echo " \$p et \$g la plus petite et la plus grande des deux valeurs. " ; echo " Combien y a-t-il de cas à envisager ?" ; echo b(" Attention :")." votre code doit fonctionner aussi bien avec des nombres qu'avec des chaines de caractères. " ; finp() ; p("texte") ; echo "Ecrire ensuite un programme PHP qui à partir des trois variables \$a, \$b et \$c met respectivement dans " ; echo " \$p, \$g et \$m la plus petite, la plus grande et la valeur du milieu. " ; echo " Combien y a-t-il de cas à envisager ?" ; echo b(" Attention :")." votre code doit fonctionner aussi bien avec des nombres qu'avec des chaines de caractères. " ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire une fonction ".em("debutPage()")." qui écrit toutes les balises jusqu'à ".b("body")." compris " ; echo " et écrire dans la foulée la fonction ".em("finPage()")."." ; echo " Combien faut-il de temps désormais pour écrire une page \"propre et valide\" qui affiche ".b("Bonjour")." ? " ; finp() ; p("texte") ; echo "Une fois que les fonctions ".em("debutPage()")." et ".em("finPage()")." seront au point, on les mettra dans " ; echo "le fichier ".b("mesfonctions.php")." et on utilisera un ".em("include")."... " ; finp() ; p("texte") ; echo " ".em("Pour les experts")." : ajouter un paramètre à la fonction ".em("debutPage()")." pour que le programmeur " ; echo " puisse facilement choisir la grammaire stricte ou transitionnelle. Par défaut, ce sera la grammaire transitionnelle "; echo " qui sera utilisée." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire en PHP la fonction ".em("h1").", la fonction ".em("h2")." et la fonction ".em("h3")." puis implémenter " ; echo " la fonction ".em("tnh(x,i)")." telle que ".em("h1(x)")." corresponde à ".em("tnh(x,1)")." et " ; echo " ".em("h2(x)")." corresponde à ".em("tnh(x,2)")." etc. " ; echo " Quel est l'intéret de ".em("tnh")." ? " ; finp() ; finli() ; debutli() ; p("texte") ; echo "Ecrire le programme PHP qui correspond à l'action du formulaire ".ancre("sen_age.php") ; echo " (dont le code-source est ".ancre("montresource.php?nomfic=sen_age.php","ici")."), " ; echo " et qui répond " ; echo b("Vous êtes mineur")." si l'age est strictement inférieur à 18 et " ; echo b("Vous êtes majeur")." si l'age est supérieur ou égal à 18." ; echo " Pourquoi n'est-on pas obligé(e) de recopier le formulaire ? " ; finp() ; p("texte") ; echo " ".em("Pour les experts")." : tester s'il s'agit bien d'un nombre entier et positif ou nul." ; finp() ; finli() ; debutli() ; p("texte") ; echo "Répondez à la question 1 de l'examen de décembre 2014 (".href("php_conceptuel.php","PHP conceptuel","grouge")."), " ; echo " le PDF est ".href("sen2014_2.pdf","ici").". " ; echo " Afin de disposer de ".b("std.php")." et de ".b("strfun.php").", le plus simple est de copier/coller " ; echo " les deux commandes suivantes dans un terminal, une fois la connexion établie sur forge/janus. " ; echo " Vous devez être dans votre répertoire ".b("forge_html")." pour exécuter ces commandes :" ; finp() ; pre("cadre") ; echo "\n" ; echo " wget http://forge.info.univ-angers.fr/~gh/internet/std.php.zip\n" ; echo "\n" ; echo " unzip -o std.php.zip \n" ; echo "\n" ; finpre() ; p("texte") ; echo "La première commande vient rapatrier l'archive et la deuxième décompresse les fichiers de l'archive " ; echo href("std.php.zip").". " ; echo " Facile, non ?" ; echo " Une autre solution consiste à rapatrier l'archive " ; echo href("std.php.zip").", " ; echo " à la décompresser sous Windows puis à retransférer les fichiers présents dans l'archive..." ; finp() ; p("texte") ; echo "Vous viendrez bien sûr tester votre code en ligne de commandes (pas dans Firefox)." ; finp() ; p("texte") ; echo "Répondez ensuite à la question 1 de l'examen de juin 2017 (".href("php_conceptuel.php","PHP conceptuel","grouge")."), " ; echo " le PDF est ".href("sen2017_1.pdf","ici").". " ; finp() ; finli() ; debutli() ; p("texte") ; echo "A partir de la chaine de caractères ".em("\"pain oeuf viande lait vin fromage\"")." construire en PHP un tableau qui reprend " ; echo " les éléments de l'exercice de la liste des courses : lien vers google, image en taille normalisée et en grand... " ; echo " Comparer le nombre de lignes du fichier PHP (qui utilisera ".em("debutPage()")." et ".em("finPage()")." via un " ; echo " ".em("include").") et le nombre de lignes du fichier-source HTML." ; finp() ; p("texte") ; echo "En faire ensuite une fonction et l'appliquer à la chaine ".em("\"tomates saucisson eau bananes\"")." ; " ; echo b("pour les plus fort(e)s")." ajouter le mot ".b("légumes")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Ecrire en PHP un formulaire qui utilise la fonction ".em("hist()")." dont le code-source est " ; echo ancre("montresource.php?nomfic=sen_hist.php","ici") ; echo " pour préparer un questionnaire d'histoire ".em("sen_hist_form.php")." sur des dates ; " ; echo " écrire en PHP la page ".em("sen_hist_rep.php")." qui utilise le même texte ".em("sen_hist.php")." " ; echo " et qui évalue les réponses de l'apprenant. On pourra supposer que l'exercice affiche les évènements " ; echo " et demande les dates correspondantes." ; finp() ; p("texte") ; echo " On pourra consulter la référence PHP sur la boucle ".em("foreach")." (pour chaque) liée aux \"tableaux associatifs\" " ; echo ancre("http://www.manuelphp.com/php/control-structures.foreach.php","ici")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Expliquer comment les titres des énoncés et corrigés des TP sont produits sachant que le code-source des énoncés " ; echo " est ".ancre("montresource.php?nomfic=sen_tps.php","ici")." et celui des solutions" ; echo " est ".ancre("montresource.php?nomfic=sen_tps_cor.php","là")."." ; finp() ; finli() ; debutli() ; p("texte") ; echo " Après avoir lu la page " ; echo ancre("http://fr.php.net/manual/fr/function.rand.php","rand()") ; echo " écrire un programme PHP qui tire au hasard un nombre entre 1 et 3, l'affiche puis propose un lien pour recommencer." ; finp() ; p("texte") ; echo "Modifier la page précédente pour qu'elle ait le même comportement que la page " ; echo href("sen_quests1.php") ; echo " avec 1=Calculs, 2=Histoire et 3=Géographie." ; finp() ; finli() ; finol() ; ######################################################### $jtp++ ; tpDscs($jtp,$nomTp[$jtp]) ; # TP7 ######################################################### p("texte") ; echo em("On relira les ".href('phpmysql.htm',"exemples")." MYSQL et PHP avant de faire les exercices du TP.") ; finp() ; ol() ; debutli() ; p("texte") ; echo "Ecrire un programme PHP qui compte combien il y a d'hommes dans la table " ; echo ancre("../Datasets/ronfle.htm","ronfle"). " (la base de données est statdata, sur forge). " ; echo " Modifier le programme pour qu'il compte combien d'hommes fument et ronflent." ; echo " Modifier encore le programme pour qu'il indique le pourcentage d'hommes qui fument et ronflent par rapport " ; echo " au nombre d'hommes en tout. On fournira un pourcentage entier arrondi." ; finp() ; p("texte") ; echo " Lister ensuite via PHP les 10 plus jeunes femmes qui ronflent par age croissant. Où est le problème ?" ; finp() ; p("texte") ; echo " On mettra les requêtes SQL dans des variables PHP. Pour le pourcentage entier, on pourra au choix " ; echo " faire l'arrondi en SQL ou en PHP. Quelle est la meilleure solution, à votre avis ? " ; finp() ; p("texte") ; echo " Lorsqu'on fournit des comptages, des pourcentages, il est souvent agréable de fournir une représentation " ; echo " graphique nommée ".b("histogramme des fréquences").". Est-ce possible de réaliser un tel graphique en PHP ?" ; finp() ; table(0,20) ; tr() ; td() ;nbsp(8) ;fintd() ; td() ; $i = "ronfle.png" ; echo img($i) ; fintd() ; td() ;nbsp(8) ;fintd() ; td() ; $i = "titanic.png" ; echo img($i) ; fintd() ; fintr() ; fintable() ; finli() ; debutli() ; p("texte") ; echo " Après avoir lu la page " ; echo ancre("http://fr.php.net/manual/fr/function.rand.php","rand") ; echo " écrire un programme PHP qui tire au hasard un nombre entre 1 et 3, l'affiche puis propose un lien pour recommencer." ; finp() ; p("texte") ; echo "Ecrire un programme PHP qui tire au hasard un nombre entre 1 et 3 et qui utilise la table de données " ; echo " correspondante dans la base statad sur forge : " ; finp() ; blockquote() ; ol() ; debutli() ; echo "sen_CALC" ; finli() ; debutli() ; echo "sen_HIST" ; finli() ; debutli() ; echo "sen_GEOG" ; finli() ; finol() ; finblockquote() ; # consulter sen_bd.mysql pour le détail des tables p("texte") ; echo " La table sen_CALC (Calcul) comporte deux champs par exercice : EXPR et RES ; EXPR est l'expression à afficher et RES son résultat. " ; echo " On fera faire à l'élève tous les exercices de la table (il y en a 5). " ; finp() ; p("texte") ; echo " La table sen_HIST (Histoire) comporte deux champs par exercice : EVENEMENT et DATE ; l'exercice correspondant consiste à demander " ; echo " la date associée à l'évènement." ; echo " On fera faire à l'élève la moitié des exercices de la table (il y en a 6) par tirage au sort. " ; finp() ; p("texte") ; echo " La table sen_GEOG (Géographie) comporte trois champs par exercice : PAYS, CAPI et DIFF ; l'exercice correspondant consiste à demander " ; echo " la captiale du pays ; diff donne la difficulté de l'exercice (1=facile, 2=difficile). " ; echo " On fera faire à l'élève un tiers des exercices de la table (il y en a 9) avec au moins un exercice difficile. " ; finp() ; p("texte") ; echo "Voici des liens pour voir le contenu des tables : " ; echo href("sen_CALC.dsc.txt","sen_CALC").", " ; echo href("sen_HIST.dsc.txt","sen_HIST").", " ; echo href("sen_GEOG.dsc.txt","sen_GEOG")."." ; finp() ; p("texte") ; echo em("Pour les experts")." : demander au tout début un prénom, puis boucler sur 5 séries d'exercices et afficher les résultats." ; finp() ; finli() ; finol() ; ######################################################### pvide() ; p() ; echo href("montresource.php?nomfic=sen_tps.php","Code-source de cette page","orange_stim nou")."." ; 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)