Les corrigés sont visibles sur
http://github.com/alexandreMesle/U22_Python/.
Exercice 1 - Nombres impairs
Nous nous intéressons ici à la somme des n premiers
nombres impairs.
Question 1(Exemple)
Quelle est la somme des 4 premiers nombres impairs ?
Question 2(Pseudo-code)
Écrire une fonction sommeImpairs(n : entier) : entier
retournant la somme des n premiers nombres impairs.
Question 3(Programmation)
Programmer cet algorithme.
Question 4(Test)
Testez-le avec tous les n de 1 à 20.
Question 5(Conclusion)
Qu’observez-vous ?
Exercice 2 - Interpolation
Étant donnés deux points A(xA, yA) et B(xB, yB),
comment calculer l’équation y = ax + b de la droite Δ
passant par les points A et B ?
Question 1(Exemple)
Quelle est l’équation de la droite passant par les points
A(0, 1) et B(1, 2) ?
Question 2(Coefficient directeur)
Exprimer a en fonction des coordonnées xA, xB, yA et yB
de A et B.
Question 3(Intersection de Δ avec les ordonnées)
Exprimer b en fonction de a et des coordonnées de A.
Question 4(Pseudo-code)
Écrire deux fonctions interpoleA(xA, yA, xB, yB : réel) : réel
et interpoleB(a, xA, yA : réel) : réel retournant
les valeurs de a et de b.
Question 5(Programmation)
Construire un programme demandant la saisie de xA, xB, yA et yB, et
affichant les valeurs de a et b.
Question 6(Test)
Testez-le avec les points A(0, 1) et B(1, 2).
Question 7(Cas particuliers)
Quels cas particuliers peuvent mettre cet algorithme en échec ? Corrigez
le programme pour les prendre en compte.
Exercice 3 - Réglage d’horloge
Une horloge digitale se règle avec deux boutons : un pour
passer à l’heure suivante, et un pour passer à la minute
suivante. On règle donc l’horloge par pressions successives
sur ces deux boutons. Si par exemple l’horloge affiche
11:59 et que l’utilisateur presse le bouton des minutes,
alors l’horloge sera réglée sur 11:00.
Question 1(Exemple)
Si l’horloge affiche 11:22, combien de pressions doivent être
effectuées pour passer à 13:15 ?
Question 2(Pseudo-code)
Écrire un algorithme demandant à l’utilisateur la saisie des
heures et minutes de deux moments A et B de la journée. L’algorithme
devra par la suite déterminer le nombre de pressions pour régler sur l’heure B
une horloge initialement réglée sur l’heure A.
Question 3(Programmation)
Programmer cet algorithme.
Question 4(Distance)
Quels sont les cas dans lesquels le nombre de pressions sera maximal ?
Est-ce que l’un d’eux peut partir de 11:22 ?
Exercice 4 - Horloge et miroir
Si vous regardez une horloge à aguilles sans chiffres dans un miroir,
les positions des aiguilles sont disposées à l’envers.
Quel calcul faire pour savoir quelle heure il est sans se tromper ?
On supposera que l’aiguille des heures est toujours
positionnée de façon exacte sur un des 12 chiffres.
Question 1(Exemple)
Si l’horloge que vous observez indique 14:37, quelle heure est-il
réellement ?
Question 2(Pseudo-code)
Écrire une procédure prenant en paramètre les heures et minutes
d’un moment de la journée et affichant le reflet de cette heure
dans le miroir.
Question 3(Programmation)
Programmer cet algorithme.
Question 4(Test)
A quels moments de la journée l’horloge affiche-t-elle
une heure correcte à travers le miroir ?
Exercice 5 - Nombres amis
Deux nombres sont amis si chacun est égal à la somme des
diviseurs stricts de l’autre.
Question 1(Pseudo-code)
Écrire un algorithme demandant à l’utilisateur la saisie d’un
nombre, lui disant si celui-ci a un nombre ami, et si oui lequel.
Question 2(Programmation)
Programmer cet algorithme.
Question 3(Test)
Avec quel nombre 220 est-il ami ?
Question 4(Test)
Avec quel nombre 6 est-il ami ?
Question 5(Conclusion)
Affichez les 5 plus petits couples de nombres amis.
Exercice 6 - Clé RIB
La clé d’un RIB (Relevé d’identité bancaire) se calcule
de la façon suivante :
Un utilisateur possède dans son placard des pâtes en conserves,
chaque boîte est numérotée en fonction de la marque. Si par exemple
il y a 2 boîtes de Lustucru et 3 boîtes de Barilla, il est possible
que les boîtes soient numérotées, 1, 1, 2, 2 et 2. Les numéros
choisis sont arbitraires, ce qui importe est que les boîtes aient
le même numéro si et seulement si elles sont de la même marque.
Afin de varier les repas, l’utilisateur souhaite éviter de prendre
la même boîte de pâtes à deux repas consécutifs. Dans quel ordre consommer
les boîtes de pâtes pour ce faire ?
Les numéros des boîtes seront placées dans un tableau passé en paramètre
(par référence) à une fonction qui sera chargée d’en modifier l’ordre
de sorte que deux numéros identiques ne seront jamais côte à côte.
Nous appliquerons le principe suivant :
Déterminer la marque apparaissant le plus souvent dans le tableau.
La permuter avec le premier élément.
On appliquera le même principe à tous les autres éléments. Soit
i un indice du tableau :
Déterminer la marque apparaissant le plus souvent
dans le tableau parmi les éléments d’indice supérieur à
i, et dont le numéro est différent de celui d’indice
i−1.
Le permuter avec l’élément d’indice i.
Question 1(Exemple)
Appliquez ce principe au tableau suivant : [1, 3, 2, 3, 1, 1, 2, 3, 1]
Question 2(Pseudo-code)
Écrire en pseudo-code une procédure ordonne(t : tableau de n entiers)
appliquant ce principe au tableau t.
Question 3(Programmation)
Programmez cette procédure et testez-là.
Question 4(Limites)
Y a-t-il des cas dans lesquels cette procédure ne fonctionne pas ?
Question 5(Autre algorithme)
Existe-t-il un meilleur algorithme permettant de résoudre ce problème ?