Atelier 3 - If
Si vous êtes pressé, voici une sélection couvrant la moitié des numéros: 1, 3, 4, 7 et 10.
Compréhension
Numéro 1
Lisez le code suivant sans l'exécuter:
age: int = 13
if age < 13:
print("\t- trop jeune pour créer un compte Facebook")
if age < 70:
print("\t- trop jeune pour être le président des USA")
else:
print("\t- assez vieux pour être le président des USA")
if age < 16:
print("\t- pas de permis de conduire")
elif age < 18:
print("\t- permis de conduire avec accompagnateur")
if age < 13:
print("\t- enfant")
elif age < 18:
print("\t- adolescent")
elif age < 65:
print("\t- adulte")
else:
print("\t- aîné")
- Déterminez quelles lignes seraient affichées pour chacune des valeurs de
agesuivantes: 12, 13, 15, 17, 20, 65, 70. - Exécutez ensuite le code avec chaque valeur pour vérifier vos réponses.
Numéro 2
Lisez le code suivant sans l'exécuter:
heure: int = 14
if heure >= 6 and heure < 12:
print("Bonjour")
elif heure >= 12 and heure < 18:
print("Bon après-midi")
elif heure >= 18 and heure < 22:
print("Bonsoir")
else:
print("Bonne nuit")
if not (heure >= 9 and heure < 17):
print("Le bureau est fermé")
- Déterminez ce qui serait affiché avec
heure = 9,heure = 17,heure = 6etheure = 21. Portez attention aux valeurs limites (>=et<): le bureau est-il ouvert ou fermé à exactement 9h et à exactement 17h? - Exécutez ensuite le code avec chaque valeur pour vérifier vos réponses.
- DÉFI: Pourquoi le code utilise
not (heure >= 9 and heure < 17)plutôt queheure < 9 and heure >= 17? Essayez cette deuxième version, qu'arrive-t-il et pourquoi?
Écriture
Numéro 3
Écrire un algorithme qui vérifie si un entier est positif, négatif ou égal à zéro.
Tests:
Avec nombre = -1 :
-1
est négatif
Avec nombre = 50 :
50
est positif
Avec nombre = 0 :
0
est égal à zéro
Numéro 4
Écrire un algorithme qui selon un nombre (1-7) donne le jour correspondant.
Tests:
Avec nombre = 1 :
1
dimanche
Avec nombre = 3 :
3
mardi
Avec nombre = 7 :
7
samedi
Avec nombre = 50 :
50
-
Numéro 5
Écrire un algorithme qui, selon le titre désiré (M,m,F,f,N,n), le prénom et le nom, affiche un message approprié. M pour monsieur, F pour madame, N si la personne ne souhaite pas utiliser de titre.
Tests:
Avec titre = "f", prenom = "France", nom = "Beaudoin" :
Bonjour madame
France
Beaudoin
Avec titre = "M", prenom = "Jean", nom = "Bon" :
Bonjour monsieur
Jean
Bon
Avec titre = "N", prenom = "Fred", nom = "Groleau" :
Bonjour
Fred
Groleau
Numéro 6
Écrire un algorithme qui calcul le prix final en fonction du montant initial. Les taxes sont ajoutés après le calcul du rabais. Les montants de 100$ et plus ont droit à un rabais de 10%, les montants entre 50$ et 100$ ont droit à un rabais de 5$ et les montants de moins de 50$ n'ont droit à aucun rabais.
Tests:
Avec montant = 19.99 :
22.9835025
Avec montant = 72.41 :
77.5046475
Avec montant = 99.99 :
109.2147525
Avec montant = 100 :
103.4775
Numéro 7
Écrire un algorithme pour un jeu de roche-papier-ciseaux. Selon le choix du joueur 1 et du joueur 2 (r, p ou c), affichez qui gagne, ou s'il y a égalité. Rappel: roche bat ciseaux, ciseaux bat papier, papier bat roche.
Tests:
Avec joueur1 = "r", joueur2 = "c" :
Joueur 1 gagne
Avec joueur1 = "p", joueur2 = "r" :
Joueur 1 gagne
Avec joueur1 = "c", joueur2 = "c" :
Égalité
Avec joueur1 = "r", joueur2 = "p" :
Joueur 2 gagne
Numéro 8 - Défi
Les droits utilisateurs sont saisis sous forme d'un nombre binaire sur 4 bits. Chaque droit est encode en binaire, ils donnent accès à un module spécifique:
- 1- RH
- 2- Inventaire
- 4- Comptabilité
- 8- Informatique
Indice: Comme un utilise un nombre binaire, vous aurez besoin des opérateurs binaires.
Tests:
Avec 0b1011:
- Accès au module RH
- Accès au module Inventaire
- Accès au module Informatique
Avec 0b0000:
- Accès à aucun module
Avec 0b0100:
- Accès au module Comptabilité
Analyse
Voici 3 problèmes accompagnés d'une solution déjà écrite (générée par une IA). Certaines contiennent une erreur, d'autres fonctionnent mais pourraient être améliorées. Analysez chaque solution et expliquez ce qui pourrait être corrigé ou amélioré.
Numéro 9
Affichez le prix d'un billet de cinéma. Le prix régulier est de 12$. S'il y a un rabais étudiant, on soustrait 3$ du prix.
etudiant: bool = True
prix: float = 12
if etudiant:
prix = prix - 3
print("Voici votre billet:")
print(prix)
else:
print("Voici votre billet:")
print(prix)
Numéro 10
Déterminez la catégorie sportive d'un jeune selon son âge: Moustique (6-7 ans), Atome (9-10 ans), Pee-Wee (12-13 ans), sinon aucune catégorie.
age: int = 9
if age > 5 and age < 8:
print("Moustique")
elif age > 10 and age < 9:
print("Atome")
elif age > 11 and age < 14:
print("Pee-Wee")
else:
print("Aucune catégorie")
Numéro 11
Vérifiez si 3 longueurs peuvent former un triangle valide. C'est valide seulement si la somme de n'importe quelles 2 longueurs est plus grande que la 3e.
a: int = 10
b: int = 3
c: int = 4
if a + b > c:
print("Triangle valide")
else:
print("Triangle invalide")
Besoin de plus de pratique?
Si vous avez de la difficulté et voulez pratiquer davantage, il y a un prompt différent par section, car le type d'exercice change (tracer du code, écrire un algorithme, analyser du code existant). Ouvrez l'accordéon correspondant à la section où vous bloquez, copiez-collez le prompt dans une IA, puis collez à la toute fin le Numéro qui vous donne de la difficulté au complet, aucune autre modification n'est nécessaire.
Vous bloquez plutôt sur un numéro précis et voulez seulement un indice? Utilisez le dernier accordéon.
Compréhension
Collez le prompt suivant (après Voici l'extrait de référence:), suivi du Numéro au complet:
Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier sur l'instruction if. Génère 3 nouveaux extraits de code à tracer, avec le même niveau de difficulté.
Contraintes:
- N'utilise que les concepts déjà vus: if, if-else, if-elif, opérateurs de comparaison (== != > < <= >=) et logiques (and, or, not).
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles ou de fonctions: ce ne sont pas encore vus.
- Pour chaque extrait, propose plusieurs valeurs à tester et demande-moi de prédire ce qui sera affiché avant d'exécuter le code.
- Ne me donne PAS les réponses tout de suite, seulement les extraits et les valeurs à tester, pour que je puisse essayer par moi-même.
- Si je te le redemande, donne-moi ensuite les réponses avec une explication pour chaque cas.
Voici l'extrait de référence:
Écriture
Collez le prompt suivant (après Voici l'exercice de référence:), suivi du Numéro au complet:
Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier sur l'instruction if. Génère 3 nouveaux exercices avec le même niveau de difficulté.
Contraintes:
- N'utilise que les concepts déjà vus: if, if-else, if-elif, opérateurs de comparaison et logiques.
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles, de fonctions ou de input(): ce ne sont pas encore vus.
- Pour chaque exercice, donne un énoncé et des tests (valeurs et résultats attendus), comme dans l'atelier.
- Ne me donne PAS les réponses tout de suite, seulement les exercices, pour que je puisse essayer par moi-même.
- Si je te le redemande, donne-moi ensuite le corrigé avec une explication.
Voici l'exercice de référence:
Analyse
Collez le prompt suivant (après Voici l'exemple de référence:), suivi du Numéro au complet:
Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Voici un extrait d'un atelier qui présente du code Python avec une solution déjà écrite. Génère 3 nouveaux exemples avec le même niveau de difficulté.
Contraintes:
- N'utilise que les concepts déjà vus: if, if-else, if-elif, opérateurs de comparaison et logiques.
- N'utilise pas de structures de données (list, dict, tuple, set), de boucles ou de fonctions: ce ne sont pas encore vus.
- Pour chaque exemple, donne un énoncé et une solution en Python. Certaines solutions doivent contenir une erreur de logique plausible, d'autres doivent fonctionner mais contenir de la répétition ou une amélioration possible.
- Ne me dis PAS ce qui est erroné ou améliorable tout de suite, seulement les exemples, pour que je puisse les analyser par moi-même.
- Si je te le redemande, donne-moi ensuite l'explication pour chaque exemple.
Voici l'exemple de référence:
Besoin d'un indice plutôt que d'un nouvel exercice?
Collez le prompt suivant (après Voici l'énoncé:), suivi du Numéro au complet:
Tu es un tuteur pour un cours d'introduction à la programmation Python (1re session de cégep).
Je bloque sur l'exercice suivant. Ne me donne PAS la solution complète.
Donne-moi seulement un indice ou la première étape pour m'aider à démarrer, sans écrire le code complet. Si je te le redemande, donne-moi l'étape suivante, une seule à la fois.
Voici l'énoncé: