Vous êtes sur la page 1sur 19

Architecture Logicielle

TD

TypeScript & JavaScript

Année universitaire 2019/2020

1
Q1- Donnez la liste des étudiants de departement
informatique classée par une date entrée décroissante

EtudiantsList.filter(x=> x.departemnt==(D
epartementList.find(y=>y.Nomdepartement="
informatique").Numdepartement)).sort(sort
By('-Date_entrée'))

2
Q2- Donner les noms des étudiants qui contiennent les
Lettres a et s

EtudiantsList.filter
(x=>(x.NomE.toLowerCase()).
indexOf("a") !==-1).
filter(x=>(x.NomE.toLowerCase()).
indexOf("s") !==-1)

3
Utilisation de union (ou)

let Etudiant1:Etudiants[]
let Etudiant2:Etudiants[]
Etudiant1= EtudiantsList.
filter(x=>(x.NomE.toLowerCase()).
indexOf("n") !==-1);
Etudiant2= EtudiantsList.
filter(x=>(x.NomE.toLowerCase()).
indexOf("f") !==-1);
let union = new Set([Etudiant1,Etudiant2]
)

4
Q3- Donner le département qui a l’étudiant le
plus ancien

let Date1=new Array ();

EtudiantsList.forEach(x=>{
Date1.push(x.Date_entrée)
}

EtudiantsList.filter(x=>x.Date_entrée.
toDateString() ==new Date
(Math.min.apply(null,Date1)).
toDateString())

5
Q31- Donner le département qui a
l’étudiant le plus ancien

EtudiantsList.filter(x=>x.Date_entrée.
toDateString()
==new Date(Math.min.apply(null,EtudiantsList
.map(x=>x.Date_entrée))).toDateString()))

6
Q4- Donner la moyenne des Moyennes
des étudiants

const Moyenne = (EtudiantsList.reduce((T,x)=>


T + x.Moyenne,0))/ EtudiantsList.length

7
Q5- Donner les étudiants ayant les meilleurs moyens
dans chaque département

DepartementList.forEach(x=>{
EtudiantsList.filter(z=>z.Moyenne ==
(EtudiantsList.find(y=>y.departemnt==
x.Numdepartement).
reduce((T,x)=>Math.max(T,x.Moyenne),0)))

})

8
Q6- Donner le ou les étudiant(s) ayant la
meilleure moyenne

EtudiantsList.filter(x=>x.Moyenne==
(EtudiantsList.reduce((T,x)=>Math.ma
x(T,x.Moyenne),0)))

9
Q7- Donner le nombre des étudiants de chaque
département

DepartementList.forEach(x=>{
console.log("Departement",x.Nomdepartem
ent,":", EtudiantsList.filter(y=>y.depart
emnt==x.Numdepartement).length)
})

10
Q8- Donner le département qui
possède le moins des étudiants
var List9:number[]=new Array();
DepartementList.forEach(x=>{
List9.push(EtudiantsList.
filter(y=>y.departemnt==x.Numdepartement)
.length)

})
let d:number=Math.min.apply(Math,List9);
let Dept:Departement;

11
Q8- Donner le nombre des étudiants de chaque
département

DepartementList.forEach(x=>{
if (d>EtudiantsList.filter(y=>y.depar
temnt==x.Numdepartement).length)
{d=EtudiantsList.filter(y=>y.departemnt==
x.Numdepartement).length;
Dept=x;
}
})

12
Q9- Donner les niveaux de chaque
spécialité

SpecialiteList.forEach(x=>{
console.log(x.libellesepcialite)
console.log( EtudiantsList.filter(y=>y.Spécialité==x.
Numspecialite).reduce((g : any, Etudiant : Etudiants)
=> {g[Etudiant.Niveau] = g[Etudiant.Niveau] || []; //Ch
eck the value exists, if not assign a new array
g[Etudiant.Niveau].push(Etudiant.Niveau); //Push the n
ew value to the array
return g;

}, {}));
})

13
Q10- Donner la spécialité ayant le plus
d’étudiants
var List10:{nom:String, nbr:number}[]=new Array();

SpecialiteList.forEach(s=>{
List10[s.Numspecialite-1]
={nom:s.libellesepcialite, nbr:EtudiantsList.filter(
x=>x.Spécialité==s.Numspecialite).length}

})

console.log(List10.filter(y=>y.nbr==List10.reduce((T,
x)=>Math.max(T,x.nbr),0)));

14
Q11- Donner le département qui possède
le plus grand nombre d’étudiants

var list11:{id:number, nbE:number}[]=new Array();


DepartementList.forEach(D=>{

list11[D.Numdepartement-1] =
{id:D.Numdepartement, nbE:EtudiantsList.filter(y=>y.de
partemnt==D.Numdepartement).length}

})

console.log(DepartementList.filter(d=>d.Numdepartement
==(list11.find(y=>y.nbE==list11.reduce((T,x)=>Math.max
(T,x.nbE),0)).id)))

15
Q12- Donner le département qui ne
contient aucun étudiant

console.log(list11.find(y=>y.nbE==0))

16
Q13-Donner le département qui possède
le meilleur étudiant

var list13:{id:number, Moyenne:number}[]=new Array();


DepartementList.forEach(x=>{

list13[x.Numdepartement-1]
={id:x.Numdepartement, Moyenne:EtudiantsList.filter(
y=>y.departemnt==x.Numdepartement).reduce((T,x)=>Math.
max(T,x.Moyenne),0)}

})
console.log(DepartementList.filter(d=>d.Numdepartement=
=(list13.find(y=>y.Moyenne==list13.reduce((T,x)=>Math.m
ax(T,x.Moyenne),0)).id)))

17
Q14- Donner le département qui a la meilleure
moyenne des Moyennes des étudiants

var list14:{id:number, Moyenne:number}[]=new Array()


;
DepartementList.forEach(x=>{

list14[x.Numdepartement-1] =
{id:x.Numdepartement, Moyenne:(EtudiantsList.filter(
y=>y.departemnt==x.Numdepartement).reduce((T,x)=>T+x
.Moyenne,0))/EtudiantsList.filter(y=>y.departemnt==x
.Numdepartement).length}

})
console.log(DepartementList.filter(d=>d.Numdeparteme
nt==(list14.find(y=>y.Moyenne==list14.reduce((T,x)=>
Math.max(T,x.Moyenne),0)).id)))
18
Q15- Donner les départements dont la moyenne de
tous les étudiants est supérieur a 10

console.log(DepartementList.filter(d=>d.Numdeparte
ment==(list14.filter(y=>y.Moyenne>10).id)))

19

Vous aimerez peut-être aussi