{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "fF7gEP3AlO7D"
   },
   "source": [
    "**Cours:** 420-SN1-RK - Programmation en sciences<br/>\n",
    "**Session:** Automne 2026<br/>\n",
    "**Groupe:** 120XX<br/>\n",
    "**Pondération:** 3%<br/>\n",
    "\n",
    "# Laboratoire #2 - Opérateurs & Alternative\n",
    "\n",
    "## Objectifs\n",
    "\n",
    "- S'initier à l'algorithmique\n",
    "- S'initier au langage de programmation Python\n",
    "- Jouer à **Réfléchir™**\n",
    "\n",
    "Répondez à la série d'exercices suivante, en inscrivant votre code et vos réponses dans les blocs prévus à ces fins."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> ### 🔁 Retour sur le laboratoire : les erreurs les plus fréquentes\n",
    ">\n",
    "> **1. La borne 100 oubliée dans l'intervalle `[60, 100]`** (exercice 2, chez 8 personnes)\n",
    "> Les crochets incluent les deux bornes : 60 **et 100** sont des réussites, 101 est un échec.\n",
    "> Correct : `if 60 <= resultat <= 100:`\n",
    ">\n",
    "> **2. « Plus de 100 $ » codé `>= 100`** (exercice 5, chez 5 personnes)\n",
    "> « Plus de 100 » exclut 100 lui-même : un article à exactement 100 $ ne reçoit pas la remise.\n",
    "> Correct : `if prix > 100:`\n",
    ">\n",
    "> **3. Des `if` sans `else`, qui laissent un cas sans affichage**\n",
    "> Un `if` seul ne dit rien quand sa condition est fausse : le programme se tait.\n",
    "> Chaque cas de l'énoncé doit produire son message (`Réussite!` / `Échec!`, accès autorisé / refusé...).\n",
    "> Correct : `if ... :` suivi de `else:` pour l'autre cas."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "## 1. Évaluation d'expressions\n",
    "\n",
    "Ajouter des **commentaires** sur chacune des lignes du code Python ci-dessous, en indiquant quel est le **résultat booléen** de chaque opération.\n",
    "\n",
    "### Note\n",
    "\n",
    "Il est normal qu'un tel programme ne produit rien lors de son exécution, puisqu'aucune utilisation de `input()` ni de `print()` n'est demandée."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "variable_01 : bool = 2 < 5\n",
    "variable_02 : bool = True or (8 == 7)\n",
    "variable_03 : bool = 4 == (5 - 1) and not 10 >= 10\n",
    "variable_04 : bool = \"bonjour\" == \"salut\" or (1.2 + 3.4) > 5.6\n",
    "variable_05 : bool = (20 < (5 * 3) and True) or (not False or 5 <= (15 - 5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "J6T2ZJh-4Vz9"
   },
   "source": [
    "---\n",
    "\n",
    "## 2. Réussite d'un examen\n",
    "\n",
    "Créer un programme qui demande à l'utilisateur d'entrer un résultat à un examen. Si le résultat reçu se situe dans l'intervalle `[60, 100]` le système affiche `Réussite!`, sinon le système affiche `Échec!`.\n",
    "\n",
    "### Exemple de résultat\n",
    "\n",
    "```text\n",
    "Entrez le résultat à l'examen: 55\n",
    "Échec!\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "pAyVO-i64LYG"
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "LPjAdLa04xMC"
   },
   "source": [
    "---\n",
    "\n",
    "## 3. Comparaison de nombres\n",
    "\n",
    "Créer un programme qui demander à l'utilisateur de saisir deux nombres entiers, puis affiche un message indiquant lequel est le plus grand des deux.\n",
    "\n",
    "### Note\n",
    "\n",
    "Il n'est pas nécessaire de gérer le cas où l'utilisateur entre deux fois le même nombre. On peut assumer que ça n'arrivera jamais.\n",
    "\n",
    "### Exemples de résultats\n",
    "\n",
    "```text\n",
    "Entrez le premier nombre entier: 22\n",
    "Entrez le deuxième nombre entier: 33\n",
    "33 est plus grand que 22\n",
    "```\n",
    "```text\n",
    "Entrez le premier nombre entier: 33\n",
    "Entrez le deuxième nombre entier: 22\n",
    "33 est plus grand que 22\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "69IX_u1L4dp7"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25 est plus grand que 22\n"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "5YgSaSWc5TEG"
   },
   "source": [
    "---\n",
    "\n",
    "## 4. Vérification d'identité\n",
    "\n",
    "Créer un programme qui vérifie si un utilisateur peut accéder à un système. L'utilisateur doit fournir son identifiant et son mot de passe. Le programme vérifie si l'identifiant est \"admin\" et le mot de passe est \"1234\" pour lui accorder un accès. Autrement, son accès est refusé.\n",
    "\n",
    "#### Exemples de résultats\n",
    "```text\n",
    "Entrez votre identifiant: admin\n",
    "Entrez votre mot de passe: 1234\n",
    "✅ Accès autorisé.\n",
    "```\n",
    "```text\n",
    "Entrez votre identifiant: admin\n",
    "Entrez votre mot de passe: 5678\n",
    "⚠️ Accès refusé.\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "id": "hT5Emhpv5eyL"
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "fo4laIOn8OwN"
   },
   "source": [
    "---\n",
    "\n",
    "## 5. Remise sur un achat\n",
    "\n",
    "Créer un programme qui demande à l'utilisateur d'entrer le prix d'un article, et qui affiche ensuite le prix final de cet article suite aux remises. Pour l'instant, une seule remise est disponible: si un article coûte plus de 100$, on lui applique une réduction de 10%.\n",
    "\n",
    "Il n'est pas nécessaire de prendre compte des taxes pour cet exercice.\n",
    "\n",
    "### Astuce\n",
    "\n",
    "Pour arrondir un nombre à virgule flottante lors de son affichage, il est possible d'utiliser une chaîne formattée avec l'addition de `:.Xf` suite à l'intégration de la valeur, où `X` est le nombre de décimales désirés. Par exemple:\n",
    "```python\n",
    "montant : float = 1.23456789f\n",
    "print(f\"Nombre: {montant}\")     # Ceci affiche 1.23456789\n",
    "print(f\"Nombre: {montant:.2f}\") # Ceci affiche 1.23\n",
    "```\n",
    "\n",
    "### Exemples de résultats\n",
    "```text\n",
    "Entrez le prix d'un article: 75\n",
    "Prix final de l'article: 75 $\n",
    "```\n",
    "```text\n",
    "Entrez le prix d'un article: 115\n",
    "Prix final de l'article: 103.5 $\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
