Correction Theorique 2013 TDI OFPPT
Dossier I
1. Correction Dossier I
Dossier II :
NB : D’autre solution peuvent être envisageable
--1. Réaliser une requête qui permet d’afficher les 3 clients d’or
--sachant qu’un client d’or est un client qui consomme plus de recharges.
select top 3 client.numtel , client.nomclient, SUM(ticket.Montant) as consomme
from client inner join compte inner join recharger inner join ticket on ticket.CodeTicket = recharger.CodeTicket on recharger.NumTel=compte.Numtel on compte.numTel = client.numtel
group by client.numtel , client.nomclient
order by consomme desc
ou autre solution
--2. Réaliser une requête qui permet d’afficher les codes de recharges consommé
--par le client dont l’adresse Email est : hamzaoui_ofppt@gmail.com. (0,5 pt)
select CodeRech from recharger
where numtel=(select numtel from client where EmailClient='hamzaoui_ofppt@gmail.com')
--3. Réaliser une procédure stockée qui permet d’afficher les clients
--dont un montant est expiré (pour parcourir la table compte, utiliser un curseur). (1 pt)
create proc PS_Qst5
as
begin
declare cur cursor for select NumTel from compte where MontantRest>0
declare @tel varchar(14)
open cur
fetch cur into @tel
while @@fetch_status=0
begin
select * from client where NumTel=@tel
fetch cur into @tel
end
close cur
deallocate cur
end
ou bien avec la moitie de la note
create proc PS_Qst5
as
begin
select client.* from client inner join compte on compte.numTel = client.numtel where compte.MontantRest>0
end
ou
autre solution
--4. Réaliser une fonction qui retourne le total de consommation d’un client en paramètre. (0,75 pt)
create function FTotal(@nt nchar(14))
returns money
begin
declare @tot money
select @tot=sum(Ticket.Montant) from Ticket inner join recharger
on Ticket.CodeTicket=Recharger.CodeTicket
where Numtel=@nt
return @tot
end
--5.Réaliser une fonction qui retourne les machines utilisées par un client lors de
-- ses connexions. (1 pt)
create function MachineConnexion(@nt nchar(14))
returns table
as
return(
select machine.* from machine inner join connexion
on machine.AdresseMAC= connexion.AdresseMAC
where connexion.Numtel = @nt)
--6.Réaliser un déclencheur qui permet de décrémenter la quantité des tickets
--lors de l’utilisation d’une recharger. (1 pt)
create trigger Tr_Qt8
on recharger
after insert
as
begin
declare @CodeTicket int
select @CodeTicket = CodeTicket from inserted
update Ticket set Qte=Qte-1 where CodeTicket=@CodeTicket
end
Dossier III :
Exercice 01 :
1- DTD
<!ELEMENT etablissement (CDJ?,CDS?,FQ?)>
<!ELEMENT CDJ (filiere+)>
<!ELEMENT CDS (filiere+)>
<!ELEMENT filiere (employer+|stagiaire+)>
<!ELEMENT employer (ste,matricule,datedebut)>
<!ELEMENT stagiaire (nom,prenom,nins,age)>
<!ELEMENT FQ (formation+)>
<!ELEMENT formation (Participant*)>
<!ELEMENT Participant (nom, Tel)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT datedebut (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nins (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT ste (#PCDATA)>
<!ELEMENT matricule (#PCDATA)>
<!ELEMENT datedebut (#PCDATA)>
<!ATTLIST filiere nom ID #REQUIRED>
<!ATTLIST filiere nbstag ID #REQUIRED>
D’autres structures DTD peuvent être envisageable :
2. XML
<?xml version ="1.0"?>
<etablissement>
<CDS>
<filiere nom="1" nbstag="23">
<employer>
<ste>GO 2000</sta>
<matricule> 7657655</matricule>
<datedebut>12/12/2010</datedebut>
</employer>
<employer>
<sta>SG tech</sta>
<matricule>877655</matricule>
<datedebut>01/12/2010</datedebut>
</employer>
<employer>
<ste>Grafs</sta>
<matricule> 765675</matricule>
<datedebut>12/01/2010</datedebut>
</employer>
</filiere >
</CDS>
<CDJ>
<filiere nom="IA" nbstag="23">
<stagiaire>
<nom>Alaoui</nom>
<prenom>Brahim</prenom>
<nins>I54/2011</nins>
<age>20</age>
</stagiaire>
<stagiaire/>
</filiere>
</CDJ>
<FQ>
<formation id="01" nom="Bureautique">
<Participant>
<Nom>HAMRACHI FOUAD</NOm>
<Tel>055555555</Tel>
</Participant>
</formation>
<formation/>
</FQ>
</etablissement>
3- XSD
xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="etablissement">
<xs:complexType>
<xs:sequence>
<xs:element name="CDS">
<xs:complexType>
<xs:sequence>
<xs:element name="filiere">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="employer">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="sta" type="xs:string" />
<xs:element minOccurs="0" name="ste" type="xs:string" />
<xs:element name="matricule" type="xs:unsignedInt" />
<xs:element name="datedebut" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nom" type="xs:unsignedByte" use="required" />
<xs:attribute name="nbstag" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CDJ">
<xs:complexType>
<xs:sequence>
<xs:element name="filiere">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="stagiaire">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="nom" type="xs:string" />
<xs:element name="prenom" type="xs:string" />
<xs:element name="nins" type="xs:string" />
<xs:element name="age" type="xs:unsignedByte" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nom" type="xs:string" use="required" />
<xs:attribute name="nbstag" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FQ">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="formation">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element maxOccurs="unbounded" name="Participant">
<xs:complexType>
<xs:sequence>
<xs:element name="Nom" type="xs:string" />
<xs:element name="Tel" type="xs:unsignedInt" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="optional" />
<xs:attribute name="nom" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Exercice 2
<html><head><script language="JavaScript">
function vider(){
id1.innerHTML="";
id2.innerHTML="";
id3.innerHTML="";
id4.innerHTML="";
id5.innerHTML="";
id6.innerHTML="";
id7.innerHTML="";
f.tnp.value="";
f.tsb.value="";
}
function valider(){
var E1 =new RegExp("^[0-9]*$","g");
if (E1.test (f.tnp.value)==false){
id1.innerHTML="<font color=red>Erreur!!</font>";}
}
function Calculer(){
var salannu="ok";
f.tsb.value=f.tnp.value*4.83;
f.tpr.value=f.tsb.value*0.13;
var somme=parseFloat(f.tpr.value)+parseFloat(f.tsb.value);
f.trr.value=somme*0.06;
f.trm.value=somme*0.025;
salannu=(parseFloat(somme)-parseFloat(f.trr.value)-parseFloat(f.trm.value))*parseFloat(12);
if(parseFloat(salannu)<=28000.00) salannu=salannu;
else{
if(parseFloat(salannu)<=40000.00) salannu=salannu-3360;
else{
if(parseFloat(salannu)<=50000.00) salannu=salannu-8160-(salannu-40000)*0.24;
else{
if(parseFloat(salannu)<=60000.00) salannu=salannu-13160-(salannu-50000)*0.34;
else{
if(parseFloat(salannu)<=150000.00) salannu=salannu-15160-(salannu-60000)*0.38;
else
salannu=parseFloat(salannu-18560)-(salannu-1500000)*0.4;
}
}
}
}
f.tsn.value=Math.round(salannu/12,2);
f.tir.value=Math.round(somme-parseFloat(f.tsn.value),2);
}
</script></head>
<body><form name=f>
<table width=600 border=1>
<tr><td colspan=3><font size=4>Simulateur pour le calcule de salaire net</font></td></tr>
<tr>
<td width=200>Nombre de points</td>
<td width=200><input type=text name=tnp></td>
<td width=200 id=id1> </td>
</tr>
<tr>
<td width=200>Salaire brut</td>
<td width=200><input type=text name=tsb></td>
<td width=200 id=id2> </td>
</tr>
<tr>
<td width=200>Prime de résidence 13%:</td>
<td width=200><input type=text name=tpr></td>
<td width=200 id=id3> </td>
</tr>
<tr>
<td width=200>Retune de retraite de 6,00% :</td>
<td width=200><input type=text name=trr></td>
<td width=200 id=id4> </td>
</tr>
<tr>
<td width=200>Retune metuelle de 2,5%</td>
<td width=200><input type=text name=trm></td>
<td width=200 id=id5> </td>
</tr>
<tr>
<td width=200>Retenue Impôt sur le revenu(IR)</td>
<td width=200><input type=text name=tir></td>
<td width=200 id=id6> </td>
</tr>
<tr>
<td width=200>Salaire NET</td>
<td width=200><input type=text name=tsn></td>
<td width=200 id=id7> </td>
</tr>
<tr>
<td colspan=3>
<input type=button value=Calculer onclick="valider();Calculer();">
<input type=button value=fermer onclick="window.close()">
<input type=button value=imprimer onclick="window.print()">
<input type=reset value=vider></td>
</tr>
</table>
</body></html>
Exercice 03 :
Voir cours// pour les équipements vous choisissez la version convenable selon la compréhension du stagiaire
Annexe 2
Réseau | Caractéristiques | Equipements version 1 | Equipements version2 | ||||||||||||||||||||||||||||||||||||
LAN |
Tableau 1 (liste équipements) |
Tableau 1 (liste équipements) | |||||||||||||||||||||||||||||||||||||
MAN |
Tableau 2 (liste équipements) |
Tableau 2 (liste équipements) | |||||||||||||||||||||||||||||||||||||
WAN |
Tableau 3 (liste équipements) |
Tableau 3 (liste équipements) | |||||||||||||||||||||||||||||||||||||
WIFI |
Tableau 4 (liste équipements) |
Tableau 4 (liste équipements) |