Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:bdle:annales [21/11/2018 22:15] amine |
site:enseignement:master:bdle:annales [20/11/2019 07:57] (Version actuelle) amine |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Recueil d'examens ====== | ====== Recueil d'examens ====== | ||
===== Partie MR et Spark ===== | ===== Partie MR et Spark ===== | ||
+ | ==== Novembre 2019 ==== | ||
+ | {{ :site:enseignement:master:bdle:exam_bdle_nov2018.pdf |Sujet}} | ||
+ | ==== Septembre 2018 ==== | ||
+ | {{ :site:enseignement:master:bdle:ratt_bdle_sep2018.pdf |Sujet }} | ||
==== Novembre 2017 ==== | ==== Novembre 2017 ==== | ||
=== Exercice 1 === | === Exercice 1 === | ||
Ligne 27: | Ligne 31: | ||
parsed.collect.foreach(println) | parsed.collect.foreach(println) | ||
- | /***/ /***/ | ||
case class attribut(cle:String,pres:Boolean) | case class attribut(cle:String,pres:Boolean) | ||
- | |||
- | |||
- | |||
def parseElem(in: String): attribut = { | def parseElem(in: String): attribut = { | ||
Ligne 40: | Ligne 40: | ||
def parseTuple(in:List[String]): List[attribut] = in.map(x=>parseElem(x)) | def parseTuple(in:List[String]): List[attribut] = in.map(x=>parseElem(x)) | ||
- | def parseTuple(in:List[String]): List[attribut] = { | + | |
- | in match { | + | |
- | case List() => List() | + | |
- | case elem::suite => parseElem(elem) :: parseTuple(suite) | + | |
- | } | + | |
- | } | + | |
val parsed = data.map(x=>x.split(",").toList).map(x=>parseTuple(x).sortBy(f=>f.cle)) | val parsed = data.map(x=>x.split(",").toList).map(x=>parseTuple(x).sortBy(f=>f.cle)) | ||
+ | /*non posée*/ | ||
def mergeListAttributes(lat1: List[attribut], lat2: List[attribut]): List[attribut] ={ | def mergeListAttributes(lat1: List[attribut], lat2: List[attribut]): List[attribut] ={ | ||
- | (lat1,lat2) match { | + | ... |
- | case(List(),_)=>lat2 | + | |
- | case(_,List())=>lat1 | + | |
- | case(att1::slat1, att2::slat2)=> | + | |
- | if(att1.cle==att2.cle) att1::mergeListAttributes(slat1, slat2) | + | |
- | else if(att1.cle< att2.cle) att1 :: mergeListAttributes(slat1, lat2) | + | |
- | else att2 :: mergeListAttributes(lat1, slat2) | + | |
- | } | + | |
} | } | ||