Activités pratiques 1
Durée1h15Présentation & objectifs
Voici une première liste d’exercices pour comprendre les bases de la construction d’un programme. Ils portent sur la déclaration de variables, les types de données, les structures de contrôle, et les fonctions.
L’objectif de cette activité est de vous familiariser avec les concepts fondamentaux de la programmation, en vous concentrant sur la construction d’algorithmes simples.
Certains exercices demandent de concevoir un algorithme pour résoudre un problème spécifique, puis de le coder en Python pour le tester. L’étape de conception est cruciale pour comprendre comment aborder un problème de programmation. Elle impose de réfléchir à la logique de l’algorithme avant de se lancer dans le codage.
Chaque programme Python conçu doit être évalué pour s’assurer qu’il fonctionne correctement et qu’il répond aux exigences de l’exercice.
Le but de cette séance est de vous aider à maîtriser des notions importantes en informatique. Un assistant de programmation intelligent tel que GitHub Copilot sera capable de vous fournir une solution à ces exercices uniquement à partir d’un nom de fichier judicieusement choisi.
Pour comprendre et apprendre, vous ne devez pas utiliser ces outils pour l’instant.
Prendre le temps de réfléchir, de concevoir des algorithmes et de les coder vous-même est essentiel pour acquérir les compétences nécessaires.
Contenu de l’activité
1 — Conversion
Complétez le code Python ci-dessous qui étant donné un entier exprimant un temps en secondes supposé correct :
- le convertit en heures, minutes, secondes ;
- l’affiche sous la forme …H, …MN, …SEC.
🏁 Avant de commencer à programmer, réfléchissez à la manière dont vous pourriez aborder ce problème.
Vous pouvez copier le code présenté ci-après en cliquant sur l’icône située en haut à droite de la fenêtre de code.
# Affichage de la demande de saisie
print("Entrez une durée en secondes :")
# Lecture de la durée en secondes
duree_en_secondes = int(input())
# A vous de programmer la conversion
2 — Calcul du grade
Complétez le code Python ci-dessous pour qu’il puisse :
- lire trois notes entières
- vérifier leur validité (entre 0 et 20)
- afficher leur moyenne et la mention correspondante (insuffisant, passable, bien, très bien, excellent), ou un message d’erreur.
Les seuils correspondant aux mentions possibles doivent être déclarés comme des constantes entières (valeurs de votre choix).
🏁 Avant de commencer à programmer, réfléchissez à la manière dont vous pourriez aborder ce problème.
# Constantes de seuils pour les mentions
PASSABLE = 8
BIEN = 14
TRES_BIEN = 16
EXCELLENT = 18
# lecture, vérification des notes et affichage
print("Saisissez 3 notes entières entre 0 et 20 (une à la fois)");
note1 = int(input())
note2 = int(input())
note3 = int(input())
# A vous de programmer le calcul de la moyenne et l'affichage de la mention
3 — Calcul de salaire
Complétez le code Python pour calculer le salaire hebdomadaire d’un employé, sachant que :
- celui-ci a effectué
n
heures dans la semaine, - le taux horaire
TAUX_HORAIRE
est applicable aux heures normales – jusqu’àHORAIRE_LEGAL
(35 heures) –, et que ce taux est majoré deMAJORATION_TAUX
(par exemple 50%) pour les heures supplémentaires.
Le nombre d’heures sera lu au clavier (cf. exercice 1).
# Constantes
HORAIRE_LEGAL = 35
TAUX_HORAIRE = 12.5
MAJORATION_TAUX = 0.5
# A vous de compléter le code
4 — Équation du second degré
Écrivez le code Python lisant les coefficients d’une équation du second degré dans $\mathbb{R}$ $(ax^2 + bx + c = 0)$ et affichant les solutions éventuelles.
- Pour calculer la racine carrée de
nb
:math.sqrt(nb)
. Cela nécessite d’importer la bibliothèque mathématique (cf. exemple ci-dessous). - D’autre part, de même que
int(x)
traitex
comme un entier, vous pouvez utiliserfloat(x)
pour obtenir un nombre à virgule flottante.
Pour résoudre l'équation du second degré, vous pouvez utiliser la formule du discriminant : $$\Delta = b^2 - 4ac$$ - Si $\Delta > 0$, l'équation a deux solutions réelles distinctes. Les solutions sont données par : $$x_1 = \frac{-b - \sqrt{\Delta}}{2a}$$ $$x_2 = \frac{-b + \sqrt{\Delta}}{2a}$$ - Si $\Delta = 0$, l'équation a une solution réelle double. La solution est donnée par : $$x = \frac{-b}{2a}$$ - Si $\Delta < 0$, l'équation n'a pas de solution réelle.
# Importation de la bibliothèque mathématique
import math
# A vous de compléter le code
5 — Nombre parfait
Un nombre est dit parfait s’il est égal à la somme de tous ses diviseurs, lui-même non compris ; par exemple $6 = 1 + 2 + 3$ et $28 = 1 + 2 + 4 + 7 + 14$ sont tous les deux parfaits.
Écrivez le code Python qui, étant donné un entier positif saisi au clavier, vérifie s’il est parfait.
Avant de révéler les étapes de l’algorithme, essayez de réfléchir à la manière dont vous pourriez aborder ce problème. Une feuille et un stylo peuvent être utiles pour concevoir un algorithme avant de le coder.
# A vous de compléter le code
6 — Numérologie
Écrivez le code qui calcule le chiffre de numérologie correspondant à une année ; on l’obtient en calculant la somme des chiffres composant l’année, jusqu’à obtenir un chiffre (nombre compris entre 1 et 9 inclus).
Ex: pour l’année 1971 : 1 + 9 + 7 + 1 = 18 ; 1 + 8 = 9.
Pour cela, vous devez déclarer une fonction chiffre_de_numerologie(n)
qui prend un entier n
en argument et retourne le chiffre de numérologie correspondant.
Assurez-vous que votre programme peut aussi calculer le chiffre de numérologie d’un entier positif quelconque.
7 — Matrice
Etant donnée une matrice carrée de taille n
(entier positif), vous devez écrire un programme Python qui effectue les opérations suivantes :
- Initialiser une matrice
n x n
avec des zéros. - Remplir la matrice triangulaire supérieure avec les chiffres de 1 à
k
, diagonale exclue. - Afficher la matrice.
Vous devez déclarer trois fonctions, chacune effectuant l’une des opérations ci-dessus.
La première fonction prend un entier n
en argument et retourne une matrice n x n
initialisée avec des zéros.
La deuxième fonction prend une matrice carrée, détermine son ordre (nombre de lignes ou de colonnes) n
puis remplit la matrice triangulaire supérieure avec tous les nombres distincts de 1 à k
(k
à calculer en fonction de n
).
La troisième fonction prend une matrice en argument et l’affiche.
En Python, vous pouvez utiliser des listes imbriquées pour représenter une matrice.