0% ont trouvé ce document utile (0 vote)
81 vues6 pages

Correction Devoir de Synthèse 4SI

Ce document contient les instructions pour une épreuve de synthèse en Tunisie. Il présente quatre exercices portant sur le HTML, CSS, JavaScript et les bases de données relationnelles. Les exercices comportent des questions à choix multiples, du complètement de code et des requêtes SQL.

Transféré par

harizi
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
0% ont trouvé ce document utile (0 vote)
81 vues6 pages

Correction Devoir de Synthèse 4SI

Ce document contient les instructions pour une épreuve de synthèse en Tunisie. Il présente quatre exercices portant sur le HTML, CSS, JavaScript et les bases de données relationnelles. Les exercices comportent des questions à choix multiples, du complètement de code et des requêtes SQL.

Transféré par

harizi
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

REPUBLIQUE TUNISIENNE CORRECTION DEVOIR TAIEB AMARI

MINISTERE D’EDUCATION DE SYNTHESE 4 SI (STI)

LYCEE MARETH N°02 17/03/2023 (2H)

Nom et prénom : …………………………………………………………………………………………………


▪ Le sujet comporte 6 pages numérotées de 1/6 à 6/6
▪ Le candidat est appelé à répondre sur cette même feuille d'examen qui sera
remise à la fin de l'épreuve
Exercice 01 (2.5) :
Pour chacune des propositions ci-dessous, une seule proposition est correcte. Mettre une croix (X) dans
la case correspondante à la proposition correcte :
1. En css, pour définir les propriétés de mise en forme d'un élément HTML d'attribut class="c1", on
utilise :

☐ c1{propriétés css}
☒ .c1{propriétés css}
☐ #c1{propriétés css}
2. En css, h1{text-align: center;transition: 5s;} h1:hover{color:blue;}

☐ transforme h1 en lien hypertexte du couleur bleu


☒ ajoute une animation du couleur sur le titre h1 lorsqu'on survole la souris
☐ permet de centrer le titre h1 lorsqu'on survole la souris pendant 5 secondes
3. En HTML, onsubmit:

☐ Envoie les éléments du formulaire obligatoirement vers une autre page


☐ Envoie les éléments du formulaire obligatoirement vers la même page
☒ Envoie les éléments du formulaire vers une autre page ou vers la même page selon la valeur de
l'attribut action
4. En HTML, l'attribut action de la balise form :

☐ Est [toujours] obligatoire


☒ N'est pas [toujours] obligatoire
5. En javascript, ch.substr(a, b) :

☒ retourne une sous-chaîne commençant à la position a et de longueur b.


☐ retourne une sous-chaîne commençant à la position a jusqu'à la position b.
Page 1 sur 6
Exercice 02 (6.75 points) :
Soit l'aperçu de la page Web contenant le formulaire de connexion suivant :

Sachant que le clic sur le bouton :


▪ Login : permet d'appeler une fonction intitulée test() qui se charge de s'assurer de la validité des champs
du formulaire, puis d'envoyer les données saisies au fichier "login.php" sans les affichant dans la barre
d'adresse du navigateur :
▪ Annuler : permet d'initialiser tous les champs du formulaire
▪ Le nom d'utilisateur est obligatoire
Partie 1 : (3.75)
Compléter le code HTML suivant :

<h1>formulaire d'authentification</h1>
<form action="login.php" method="post" onsubmit="test()">
<div class="container">
<label ><b>Nom utilisateur</label>
<input type="text" placeholder="entrer nom d'utilisateur" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder ="Enter votre mot de passe">
<button type="submit">Login</button>
<label><input type="checkbox" checked="checked"> reste active</label>
</div>
<div class="container" >
<button type="reset" class="cancelbtn">Annuler</button>
<span class="psw">Mot de passe <a>oublié?</a></span>
</div>
</form>

Page 2 sur 6
Partie 2 : (3 points)
Soit la représentation textuelle de la table User, ainsi que la description des champs :
User (IdUser, login, password, nom, prenom, tel)
Champ Description et type
IdUser Identifiant d'un user, de type chaine de 5 caractères
login Nom utilisé pour la connexion, de type chaine de 20 caractères
password Mot de passe de connexion, de type chaine de 8 caractères au minimum
Nom Nom user, de type chaine de 50 caractères
prenom Prénom user, de type chaine de 50 caractères
tel Numéro de téléphone, chaine entre 8 et 13 caractères dans le format
+216CCCCCCCC (ou chaque C designe un chiffre de 0 à 9, les deux premiers
chiffres sont dans l'intervalle 20..58 ou 90..99 et le premier chiffre différent de 0
1. Compléter la fonction test() pour contrôler la partie soulignée du champ tel (1.25 point)

function test() {
test=true;
var tel =document.getElementById("tel").value
if (tel.length < 8 || tel.length > 13 || tel.substr(0,4)!="+216" ||
isNaN(tel.substr(4,8) || tel.charAt(4)=='0'|| !(parseInt(tel.substr(4))>=20 &&
parseInt(tel.substr(4))<=58 || parseInt(tel.substr(4))>=90 &&
parseInt(tel.substr(4))<=99)
{alert('numéro tél saisie invalide ! ');
test=false;}
return test;
}
2. Donner la requête SQL pour créer la table user (1.75 point)

-- Créer la table User


Create Table User(
idUser varchar(5), login varchar(20), password varchar(50), Nom
varchar(50), prenom varchar(50), tel varchar(13),
primary key(idUser));
-- Ajouter la contrainte sur le champ password (Contient au minimum 8 caractères) alter table
alter table User add constraint Check (password like "_ _ _ _ _ _ _ _%";
Exercice 03 (10,75 points) :
Afin de mieux gérer les différents services dans un restaurant, on se propose d’utiliser la base de données
simplifiée intitulée "Gestion_Restaurant" décrite par le schéma textuel suivant :
Table (NumTable, NbrePlaces )
Serveur (IdServeur, NomPrenom )
Plat (CodePlat, NomPlat, PrixPlat )
Commande (NumTable#, IdServeur#, CodePlat#, DateCom, HeureCom, NbrePlats )
Soit la description des colonnes des tables de cette base de données :
Nom du
Description Type Taille Contraine
champ
NumTable Numéro d'une table Numérique Entier Auto-incrementé
NbrePlaces Nombre de places d’une table Numérique Entier Null interdit

Page 3 sur 6
IdServeur Identifiant d’un serveur Chaine 3
NomPrenom Nom et prénom d’un serveur Chaine 50 Null interdit
CodePlat Code d’un plat Chaine 5
NomPlat Nom d’un plat Chaine 50 Null interdit
PrixPlat Prix d’un plat exprimé en DT Numérique Entier >0
DateCom Date d’une commande Date
HeureCom Heure d’une commande Heure
NbrePlats Nombre de plats commandés Numérique Entier >0
1. Compléter le schéma relationnel ci-dessous par les cardinalités 1 ou n (l'infinie) sachant que :
◼ Règle 1 : Une table peut être utilisée dans plusieurs commandes
◼ Règle 2 : Un plat peut être demandé plusieurs fois (dans plusieurs commandes)

1
3
1
n
2 4

n 1

2. Justifier votre réponse pour les numéros 2 et 3 :


◼ : CodePlat est une clé étrangère, alors sa cardinalité dans la
table Commande doit être n
◼ : NumTable est une clé étrangère, alors sa cardinalité dans la
table Commande doit être n

Soit le contenu des tables suivant :

Page 4 sur 6
3. Donner la requête SQL pour
a. Créer la table Commande
create table Commande

NumTable int,

idServeur varchar(3),

codePlat varchar(5),

DateCom date,

HeureCom time,

NbrePlats int,

constraint primary key (NumTable, IdServeur, CodePlat, DateCom, HeureCom)

);

alter table Commande

add constraint foreign key cleEtrang1 (NumTable) references


Table(NumTable),

add constraint foreign key cleEtrang2 (IdServeur) references


Serveur(IdServeur),

add constraint foreign key cleEtrang3 (CodePlat) references Plat(CodePlat),

add constraint verfier check (NbrePlats>0);

b. On suppose que les DateCom sont insérés dans la table dans le format SQL ('yyyy-mm-dd'),
afficher les commandes (Numéro table, Nom et prénom du serveur, nom plat, date commande) du
mois d'Avril
select NumTable, NomPrenom, NomPlat, dateCom
from Commande C, Serveur S, Plat P
where C.codePlat = P.CodePlat and C.IdServeur=S.IdServeur and
Month(DateCom)=4

Page 5 sur 6
c. Afficher pour chaque table, le nom et le nombre total de plats servis le "03/01/2022" pour la
table numéro 1.

select NomTable, Sum(NbrePlats)

from Table T, Commande C

where T.NumTable=C.NumTable and DateCom="2022-01-03" and NumTable=1

group by NumTable, NomTable

d. Afficher les plats dont leurs prix est supérieur au prix du plat moyenne
select * from plats where prixPlat>(select AVG(prixPlat) from plats)
4. On veut ajouter une autre table de 5 places dans la table Table de la base, donner la requête avec trois
méthodes:
• insert into table values (5,5);
• insert into table(NumTable, NbrPlaces) values (5,5)
• insert into table (NbrPlaces) values (5)
--- dans la troisième méthode, je n'ai pas utilisé NumTable, car il
est auto-incrémenté (voir tableau de description, colonne contrainte
au début de l'exercice)

Page 6 sur 6

Vous aimerez peut-être aussi