CPGE OUJDA

DS 2 (MP2)

 

 

PROBLEME1

 

Soit le schéma relationnel suivant :

ETUDIANT(N°Etudiant, Nom, Prénom) 
MATIERE(CodeMat, LibelléMat, CoeffMat) 
EVALUER(N°Etudiant*, CodeMat*, Date, Note)

Les réponses doivent etre données en SQL

Q1 - Quel est le nombre total d'étudiants ?

Q2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus basse ?

Q3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières ?

Q4 - Quelles sont les moyennes par matière ?

Q5 - Quelle est la moyenne générale de chaque étudiant ?

Q6 - Quelle est la moyenne générale de la promotion ?

Q7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à la moyenne générale de la promotion ?

 

 PROBLEME2

 

 1.  Écrire une fonction insertion_sort qui trie de manière croissante une liste donnée en pa- ramètre avec l’algorithme du tri par insertion.Compexité ?

 

 2.  Écrire une fonction in_list qui détermine si, oui ou non, une valeur donnée existe dans une liste triée. Utiliser la recherche dichotomique.Complexité ?

 

 3.  Écrire une fonction poly_sort qui reçoit une liste de polynômes, et une valeur x et qui trie cette liste en se basant sur l’ordre défini par la valeur des polynômes en x(Les polynômes sont représentés  par les coefficients de leurs monômes). Par exemple :

 

p1  =  [4,  2,  3]   ‘’’p1=4+2x+3x2  ’’’

p2  =  [2,  1]

p3  =  [2,  -3,  4,  1]

p4  =  [-1,  2]

ls  =  [p1,  p2,  p3,  p4]

poly_sort(ls,  2)

print(ls) # ->[[-1, 2],  [2,  1],  [2,  -3,  4,  1],  [4,  2,  3]]

 

Vous utiliserez le tri par sélection.

Pour ce faire on décomposera la question en plusieurs fonctions :

 

 

a)Ecrire une fonction  swap(ls, i1, i2): qui permute les éléments d’indices i1 et i2 de la liste ls

b)Ecrire une fonction min_pos_from(ls, i, x): qui retourne La position du min de ls en   commençant en i.

 

c) Écrire une fonction p_eval qui évalue un polynôme en un x donné.

 

>>>  polynomial  =  [4,2,7,1] 

>>>  x  =  2

>>>  print(p_eval(polynomial,x))

44  ‘’’ .4*1+2*2+7*4+1*8=44’’’

d) Ecrire la fonction poly_sort(ls, x):