100% ont trouvé ce document utile (1 vote)
2K vues5 pages

Examen Prog Web II.2014 Avec Correction

Ce document décrit un examen de programmation web 2 contenant trois exercices. Le premier exercice concerne la validation de documents XML. Le deuxième exercice demande d'établir la DTD d'un document XML donné. Le troisième exercice porte sur la programmation de fonctions JavaScript pour la validation d'un formulaire HTML et le calcul d'une addition.

Transféré par

Ibtì Ssëm Limem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
2K vues5 pages

Examen Prog Web II.2014 Avec Correction

Ce document décrit un examen de programmation web 2 contenant trois exercices. Le premier exercice concerne la validation de documents XML. Le deuxième exercice demande d'établir la DTD d'un document XML donné. Le troisième exercice porte sur la programmation de fonctions JavaScript pour la validation d'un formulaire HTML et le calcul d'une addition.

Transféré par

Ibtì Ssëm Limem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 5

INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES DE JENDOUBA

DEPARTEMENT TECHNOLOGIE DE L’INFORMATIQUE

EXAMEN
Matière: PROGRAMMATION WEB 2 Documents: Non autorisés
Enseignants: B. Kalfi, H. Chorfi, S. Abidi et Y.Mbarek Durée: 1h30
Classes : TI1* Date: Juin 2014

Il vous est demandé d’apporter un soin particulier à la présentation de votre copie.

EXERCICE 1 : (5 POINTS)
On rappelle qu’un document est dit bien formé s’il est syntaxiquement correct, sans référence à une
quelconque DTD. Un document valide est bien formé et respecte les contraintes indiquées dans la
DTD qui lui correspond (la DTD est obligatoire).
I. Ce document xml n’est pas bien formé. Indiquez les lignes contenant les erreurs et les corrigez.
1. <?xml version="1.0" "?>
2. <bibliographie>
3. <TITRE>Calcul Quantique</titre>
4. <article type=non publié>
5. <titre>Quantum Proofs for Classical Theorem</titre>
6. <auteurs>
7. <nom>Drucker</nom><nom>de Wolf</nom>
8. </auteurs>
9. <uri>arxiv:quant-ph/0910.3376v1</uri>
10. </article>
11. <livre lang = "en">
12. <titre>Quantum Computation and Quantum Information</titre
13. <auteurs>
14. <nom>Nielsen</nom><nom>Chuang</nom>
15. <éditeur>Cambridge U. Press</éditeur>
16. <livre/>
17. </bibliographie>
Correction :
I.
Barème : ligne : 0.25+ correction 0.5
3. Casse : <titre>Calcul Quantique</titre> 0.25+0.5
4. apostrophes : <article type="non publié"> 0.25+0.5
<livre xml:lang = "en">
12. fermeture de balise : <titre>Quantum Computation and Quantum Information</titre>
0.25+0.5
13. </auteurs> 0.25+0.5
16. </livre> 0.25+0.5

II. Pour chacun des documents suivants, indiquez s’il est valide ou pas. Quand le document n’est pas
valide indiquez la nature de l’erreur (ou des erreurs).
1. document non valide (6. <c x="bold">du texte</c>) 0.5+0.25

2. document valide 0.5

Année Universitaire 2013/2014 Sem.2 Page 1/5


1. 1. <?xml version="1.0" ?> <!ELEMENT a (b*, c)>
2. <!DOCTYPE a SYSTEM "a.dtd"> <!ELEMENT b EMPTY>
3. <a> <!ELEMENT c (#PCDATA)>
4. <b/> <!ATTLIST c x CDATA #FIXED "bold">
5. <b/>
6. <c x="medium">du texte</c>
7. </a>

2. 1. <?xml version="1.0" ?> <!ELEMENT a (b*, c)>


2. <!DOCTYPE a SYSTEM "a.dtd"> <!ELEMENT b EMPTY>
3. <a> <!ELEMENT c (#PCDATA)>
4. <b/> <!ATTLIST b truc CDATA #IMPLIED>
5. <b truc="bidule"/>
6. <c>Et voilà</c>
7. </a>

EXERCICE 2 : (7 POINTS)
Etablir la DTD du document suivant, sachant que l’élément fleuriste est optionnel et qu’il contient
nécessairement soit un élément ville soit un élément lieu.
<composition>
<auteur>Floristore</auteur>
<date_de_creation>29/02/2001</date_de_creation>
<fleuriste>
<ville>Paris</ville>
</fleuriste>
<composants>
<vase>
<matiere>Porcelaine</matiere>
<taille>50x70 cm</taille>
</vase>
<fleurs>
<nature>Europeenne</nature>
<item>Tulipe</item>
<item>glaieul</item>
<item>Marguerite</item>
</fleurs>
</composants>
</composition>

Correction :
Syntaxe : 0.5
<!ELEMENT composition (auteur,date_de_creation,fleuriste?,composants)> 0.5
<!ELEMENT auteur (#PCDATA)> 0.5
<!ELEMENT date_de_creation (#PCDATA)> 0.5
<!ELEMENT fleuriste (lieu?,ville?)> 0.5
<!ELEMENT lieu (#PCDATA)> 0.5
<!ELEMENT ville (#PCDATA)> 0.5

Année Universitaire 2013/2014 Sem.2 Page 2/5


<!ELEMENT composants (vase,fleurs)> 0.5
<!ELEMENT vase (matiere,taille)> 0.5
<!ELEMENT matiere (#PCDATA)> 0.5
<!ELEMENT taille (#PCDATA)> 0.5
<!ELEMENT fleurs (nature,item+)> 0.5
<!ELEMENT nature (#PCDATA)> 0.5
<!ELEMENT item (#PCDATA)> 0.5
EXERCICE 3 : (8 POINTS)
Soit le document HTML ci-dessous qui permet de choisir son menu au restaurant : une entrée, un plat
principal et un dessert. L'appui sur un bouton "Envoi" permet de calculer l'addition.

Couscous

Prix à payer :

Le code HTML de cette page est la suivante :


<body>
<h1><strong>Composez votre menu </strong></h1>
<hr>
<p>Choisissez une entrée, un plat et un dessert, puis appuyez sur le bouton «Prix» </p>
<form name="f1" method="post" action="">
<p>Entrée Plat Principal Dessert </p>
<select name="s1" size="1">
<option value="15.00">Paté en croute</option>
<option value="18.00">Soupe</option>
</select>
<select name="s2" size="1">
<option value="32.00">Couscous</option>
<option value="50.00">Poisson</option>
</select>
<select name="s3" size="1">

Année Universitaire 2013/2014 Sem.2 Page 3/5


<option value="16.5">Glace</option>
<option value="17.00">Fruit</option>
</select>
<input type="button" name="prix" value="prix" onClick="addition()">
<input type="text" name="t1"> <input type="text" name="t2"> <input type="text"
name="t3">
Total: <input type="text" name="t4">

Adresse de livraison: <input type="text" name="a"> <input type="submit" name="Submit"


value="Envoi" onClick="adresseValide ()">

</form>
</body>

1. Définir la fonction JavaScript addition() qui permet de :


 afficher le prix de l’entrée dans le champ t1
 afficher le prix du plat principal dans le champ t2
 afficher le prix du dessert dans le champ t3
 calculer le prix à payer et l’afficher dans le champ t4

2. Définir la fonction JavaScript adresseValide() qui vérifie si l'adresse remplie est valide ou non.
L’adresse est valide si :
 si le nombre de caractères de la chaîne est non nul.
 si la chaîne contient un code postal (un nombre de 4 chiffres).

Correction :
Syntaxe: 1
<script language="JavaScript">
function addition(){
var e=document.f1.s1.options.selectedIndex; 0.5
document.f1.t1.value=document.f1.s1.options[e].value; 0.75
var pp=document.f1.s2.options.selectedIndex; 0.5
document.f1.t2.value=document.f1.s2.options[pp].value; 0.75
var d=document.f1.s3.options.selectedIndex; 0.5
document.f1.t3.value=document.f1.s3.options[d].value; 0.75
var prix=document.f1.t1.value*1+document.f1.t2.value*1+document.f1.t3.value*1; 0.75
document.f1.t4.value=prix; 0.5
}
</script>
2.
//on suppose que le code postal s’écrit en dernière position.
Cette solution n’est pas la solution optimale puisqu’on doit utiliser les expressions régulières et
personnellement je n’ai pas abordé cette partie dans le cours.

Année Universitaire 2013/2014 Sem.2 Page 4/5


Je vois qu’on ne doit pas compter cette partie de l’exercice ou attribuer un bonus pour cette
partie (vérification du code postal)
function adresseValide(){
var ad=document.f1.a.value; 1
if (ad.length == 0) 1
{alert ("Adresse vide!!");
return false;}
else { Bonus : 2
var c="012356789";
if (c.indexOf(ad.charAt(ad.length))==-1)
{alert('Le code postal est invalide');
return false;}
if (c.indexOf(ad.charAt(ad.length-1))==-1)
{alert('Le code postal est invalide');
return false;}
if (c.indexOf(ad.charAt(ad.length-2))==-1)
{alert('Le code postal est invalide');
return false;}
if (c.indexOf(ad.charAt(ad.length-3))==-1)
{alert('Le code postal est invalide');
return false;}
alert('Le code postal est valide');
return true;
}}

Bon Travail

Année Universitaire 2013/2014 Sem.2 Page 5/5

Vous aimerez peut-être aussi