Vous êtes sur la page 1sur 2

‫المعهد التحضيري للدراسات الهندسية بالمنار‬

Institut Préparatoire aux Etudes d’Ingénieurs – El Manar


Département : Mathématiques et Informatique
Devoir 2
Année Universitaire : 2019/2020
Matière : Informatique (1ère Année MP, PC, PT) Date : 13/03/2020
Nombre des pages : 1 Durée : 1 heure

NB : Le correcteur tiendra compte de la clarté de la présentation et l’indentation des programmes.


Exercice :
Le calcul de la racine carré X d’un nombre réel positif A est fait par approximations
successives en utilisant la relation de récurrence suivantes :
𝐴 𝑠𝑖 𝑗 = 1
𝑋𝑗 = {1 𝐴
2
(𝑋𝑗−1 + 𝑋 ) 𝑠𝑖 𝑗 > 1
𝑗−1

Lorsque j augmente la valeur de 𝑋𝑗 sera plus proche de √𝐴.


Ecrire une fonction récursive racine qui permet de calculer la racine carrée d’un réel A à un
ordre j. A et j sont passés en paramètre.
Exemple : racine (5, 200) =

Problème :
Dans ce problème on va gérer des rendez-vous, qui forment l’agenda d’une personne.
Un rendez-vous est indiqué par sa date, l’heure du rendez-vous, durée du rendez-vous et la
personne avec qui est pris le rendez-vous.
L’agenda sera représenté par un dictionnaire python où :
— la date du rendez-vous, représentée par une chaîne de caractères (sous la forme
’jj/mm/aaaa’), sera la clé du dictionnaire.
— La valeur d’un élément du dictionnaire sera la liste de tuples, où chaque tuple indique
l’heure, la durée et le nom de la personne avec qui est pris le rendez-vous.

 L’heure, est représentée par un entier (on suppose que tous les rendez-vous ont lieu à une
heure pile, par exemple 10h sera représenté par l’entier 10)

 Durée du rendez-vous est représentée par un entier (nombre d’heure max du rendez-
vous)

 Le nom de la personne avec qui on a rendez-vous est représenté par une chaîne de
caractères.

Exemple :

R=(‘17/11/19’,10,1,’zeineb’)

A = { ’17/11/2019’ : [(10, 1,‘Ali’) , (11,2, ’Nour’)] , ’18/11/2019’ : [ (10,2, ’Paul’)] ,


’19/11/2019’ : [(10,1, ‘fatma’) , (14,3, ‘Ali’)] }
[(’17/11/2019’ ,10, 1),( ’19/11/2019’ , 14,3)]

D={‘11/2019’ :2 , ’18/11/2019’ : 1 , ’19/11/2019’ : 2}

1
Question 1 : Ecrire la fonction python saisie_rdv( ), qui permet de saisir un rendez-vous
d’une personne (date, heure, durée, nom de personne) et retourner le tuple qui correspond à
ce rendez-vous.
def saisie_rdv() :

-----------------------------
------------------------------
---------------------------
---------------------------
.
.
.

return rdv
NB :On suppose avoir une fonction DateValide(date) qui permet de retourner un booléen
indiquant si la date passée en paramètre est valide ou non.
Le contrôle de saisie est obligatoire avec la gestion des exceptions.

Question 2 : Ecrire une fonction python Conflit_rdv(r,A) qui, étant donné un rendez-vous
r et une Agenda A , retourne True si le rendez-vous est en conflit avec un autre rendez-vous
de l’agenda et False sinon. ( chevauchement entre les temps des deux rendez-vous ).

Question 3 : Ecrire une fonction python Saisie_agenda( ), qui permet de saisir plusieurs
rendez-vous d’une personne et de retourner le dictionnaire A correspondant sans conflit
entre ses rendez-vous.

Question 4 : Ecrire une fonction python rdv_personne(n , A) qui, étant donnés un agenda
A et une chaîne n représentant le nom d’une personne, renvoie l’ensemble des rendez-vous
avec cette personne.

Question 5 : Ecrire une fonction python nb_rdv (A) qui, étant donné un agenda de rendez-
vous A, renvoie un dictionnaire associant à chaque date de A le nombre de rendez-vous
ayant lieu à cette date.

Vous aimerez peut-être aussi