Université de Sherbrooke Département d`informatique CQP112

publicité
Université de Sherbrooke Département d’informatique CQP112 Initiation à la programmation Hiver 2017 Examen final formatif Professeure : Le jeudi 13 avril Aïda Ouangraoua de 14h30 à 16h20 Toute documentation est permise. Cet examen comporte 4 questions. Question 1: points Question 2: points Question 3: points Question 4: points -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ Total: points NOM : . PRÉNOM : . MATRICULE : . SIGNATURE : . 1
Question
1 : Listes Lire attentivement le programme Python suivant. #!/usr/bin/env python # -­‐*-­‐ coding: utf-­‐8 -­‐*-­‐ def ordre_total(tab1,tab2): i = j = 0 while(i < len(tab1) and j < len(tab2)): if(tab1[i] <= tab2[j]): print “tab1”, i, tab1[i] i += 1 else: print “tab2”, j, tab2[j] j += 1 while(i < len(tab1)) : print “tab1”, i, tab1[i] i += 1 while(j < len(tab2)) : print “tab2”, j, tab2[j] j += 1 tab1 = [1,2,3,4,4] tab2 = [0,2,2,5,6] ordre_total(tab1,tab2) Écrire ce que le programme affiche à l’écran. 2
Question 2 : Fichiers Écrire en Python une fonction nommée compte_ligne qui prend en paramètre un nom de fichier nom_fichier, puis compte le nombre de lignes débutant par le caractère ‘A’ dans le fichier et retourne ce nombre de lignes. 3
Question 3 : Classes
(a) Écrire en Python la définition d’une classe nommée Employe ayant les attributs et méthodes suivants : -­‐ numero : numéro de matricule de l’employé -­‐ nom : nom de l’employé -­‐ type : type d’emploi (2 valeurs possibles ‘’soutien’’, ‘’cadre’’) -­‐ taux : le taux horaire du salaire de l’employé -­‐ nombre_heures : le nombre d’heures travaillées de l’employé
-­‐ __init__(numero,nom,type,taux) : méthode permettant d’initialiser un nouvel employé et d’initialiser son nombre d’heures travaillées à 0
-­‐ ajouter_heures(nb_heures) : méthode permettant d’ajouter à un employé des heures travaillées (nombre_heures = nombre_heures + nb_heures).
-­‐ calculer_salairebrut() : méthode calculant et retournant le salaire brut d’un employé (salairebrut = taux_horaire x nombre_heures_travaillees)
4
(b) Écrire ensuite la définition d’une classe Entreprise contenant les attributs et méthodes suivants : -­‐ numero : le numéro de l’entreprise -­‐ nombre_employes : le nombre d’employés de l’entreprise -­‐ liste_employes : tableau d’Employes -­‐ ajouter_employe(numero,nom,type,taux) : méthode permettant d’ajouter un nouvel employé à l’entreprise. -­‐ calculer_nb_employes() : méthode calculant et retournant le nombre d’employés de soutien et le nombre d’employés cadre de l’entreprise. -­‐ calculer_salairetotal() : méthode calculant et retournant la somme de tous les salaires des employés de l’entreprise. 5
Question 4 : Récursivité
(a) Lire attentivement le programme Python suivant. #!/usr/bin/env python # -­‐*-­‐ coding: utf-­‐8 -­‐*-­‐ def fonction(n,m): resultat = -­‐1 if (m == 0): resultat = 0 else: resultat = n + fonction(n,m-­‐1) print resultat return resultat print fonction(4,6) Écrire ce que le programme affiche à l’écran. 6
(b) Écrire en Python la définition d’une fonction récursive nommée somme prenant en paramètre deux entiers positifs ou nuls n et m et retournant le nombre Un,m défini n−1 m−1
récursivement comme suit : Un,m = 0 si n = 0 ou m = 0, et Un,m = ∑∑Ui, j si n > 1 et m > 1. i=0 j=0
FIN DE L’EXAMEN 7
Téléchargement