diff --git a/2nd/13_Programmation/1E_tour_d_horizon.ipynb b/2nd/13_Programmation/1E_tour_d_horizon.ipynb index ff17ea6..376a057 100644 --- a/2nd/13_Programmation/1E_tour_d_horizon.ipynb +++ b/2nd/13_Programmation/1E_tour_d_horizon.ipynb @@ -1 +1,275 @@ -{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Étape 1: Tour d'horizon\n\n"},{"metadata":{},"cell_type":"markdown","source":"## Decrire un programme\n\nCi-dessous, vous retrouverez des programmes. Vous devez les executer. Puis écrire une phrase par ligne de programme pour décrire ce qu'elle fait."},{"metadata":{},"cell_type":"markdown","source":"### Programme 1"},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"Hello les 2nd\")\na = 2\nprint(a + a)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### Programme 2"},{"metadata":{"trusted":false},"cell_type":"code","source":"age = int(input(\"Quel age as-tu?\"))\nif age >= 18:\n print(\"Tu es majeur, tu peux passer ton permis\")\nelse:\n print(\"Tu es mineur\")\n \n print(\"Il te reste \", 18 - age, \"ans avant de pouvoir passer le permis\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### Programme 3\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"def f(x):\n resultat = x^2 + 2\n return resultat\nprint(f(0))\nprint(f(10))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Description"},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"## Modifier le programme de la momie\n\n\nOuvrez le programme édupython \n\nCi-dessous, vous avez un programme qui code un jeu de hazard. \n\n**Copier puis coller tout le programme dans édupython** puis lancer quelques parties pour comprendre ce que faire ce jeux.\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"# Programme de la momie - tiré du livre les maths ensembles et pour chacun\nfrom random import randint\n\ndef choisir_porte(nombre_portes):\n print(\"Il y a \" + str(nombre_portes) + \" portes devant toi.\")\n porte_choisie = int(input( \"Laquelle ouvres-tu?\"))\n return porte_choisie\n \n \nnombre_portes = 3\npoints_de_vie = 5\nscore = 0\ndegat_momie = 3\n\nwhile points_de_vie > 0:\n print(\"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\")\n porte_momie = randint(0, nombre_portes)\n porte_choisie = choisir_porte(nombre_portes)\n if porte_choisie == porte_momie:\n print(\"Une momie attaque!\")\n for i in range(degat_momie):\n print(\"Elle te touche une fois\")\n points_de_vie = points_de_vie - 1\n else:\n print(\"Rien! Tu as survécu à une porte en plus.\")\n score = score + 1\n\nprint(\"T'es mort. Tu n'as plus de points de vie.\")\nprint(\"Le jeu est fini, ton score est de \", score)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Maintenant que vous avez un peu joué à ce jeu. Vous allez créer des variantes de ce jeu. \n\nVous devez faire dans l'ordre les variantes 1, 2 et 3. Les autres peuvent être fait dans l'ordre que vous souhaitez en fonction de ce qui vous inspire.\n\n\n**Pour chaque variante, vous copirez puis collerez le programme précédent dans un nouveau fichier dans édupython avant de le modifier.**"},{"metadata":{},"cell_type":"markdown","source":"*Variante 1* Modifier le programme pour que chaque ouverture de porte sans momie rapporte 10 points"},{"metadata":{},"cell_type":"markdown","source":"*Variante 2* Modifier le programme pour que l'on commence avec 5 points de vie mais qu'il n'y ait que deux portes à chaque fois."},{"metadata":{},"cell_type":"markdown","source":"*Variante 3* On part fixe le nombre de porte à 3. Quelle est la probabilité de tomber sur un momie? Transformer le programme pour la probabilité de tomber sur un momie soit de 3/2."},{"metadata":{},"cell_type":"markdown","source":"---\nLes variantes suivantes peuvent être faites dans l'ordre que vous souhaitez."},{"metadata":{},"cell_type":"markdown","source":"*Variante 4* Le programme comporte un gros bug. Il est possible de ne jamais être dévoré par la momie. Proposer une façon de corriger ce bug."},{"metadata":{},"cell_type":"markdown","source":"*Variante 5* Modifier le programme pour qu'à chaque fois que l'on tombe sur une momie. On ait une chance sur deux de perdre 1 point de vie et une chance sur 2 de ne perdre 2 points de vie."},{"metadata":{},"cell_type":"markdown","source":"*Variante 6* Ajouter d'autres monstres cachés derière d'autres portes qui enlèves plus ou moins de points."},{"metadata":{},"cell_type":"markdown","source":"Variante 7 Étonnez nous avec une variante bien à vous!"},{"metadata":{},"cell_type":"markdown","source":"## Bilan\n\nNoter les mots écris en vert dans différents programmes manipulés et décrire l'action de chacun d'eux."},{"metadata":{},"cell_type":"raw","source":"\n"}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","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.10.2"}},"nbformat":4,"nbformat_minor":2} \ No newline at end of file +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Étape 1: Tour d'horizon\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Decrire un programme\n", + "\n", + "Ci-dessous, vous retrouverez des programmes. Vous devez les executer. Puis écrire une phrase par ligne de programme pour décrire ce qu'elle fait." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Programme 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Hello les 2nd\")\n", + "a = 2\n", + "print(a + a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Description" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Programme 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "age = int(input(\"Quel age as-tu?\"))\n", + "if age >= 18:\n", + " print(\"Tu es majeur, tu peux passer ton permis\")\n", + "else:\n", + " print(\"Tu es mineur\")\n", + " \n", + " print(\"Il te reste \", 18 - age, \"ans avant de pouvoir passer le permis\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Description" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Programme 3\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def f(x):\n", + " resultat = x**2 + 2\n", + " return resultat\n", + "\n", + "print(f(0))\n", + "print(f(10))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Description" + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modifier le programme de la momie\n", + "\n", + "\n", + "Ouvrez le programme édupython \n", + "\n", + "Ci-dessous, vous avez un programme qui code un jeu de hazard. \n", + "\n", + "**Copier puis coller tout le programme dans édupython** puis lancer quelques parties pour comprendre ce que faire ce jeux.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Programme de la momie - tiré du livre les maths ensembles et pour chacun\n", + "from random import randint\n", + "\n", + "def choisir_porte(nombre_portes):\n", + " print(\"Il y a \" + str(nombre_portes) + \" portes devant toi.\")\n", + " porte_choisie = int(input( \"Laquelle ouvres-tu?\"))\n", + " return porte_choisie\n", + " \n", + " \n", + "nombre_portes = 3\n", + "points_de_vie = 5\n", + "score = 0\n", + "degat_momie = 3\n", + "\n", + "while points_de_vie > 0:\n", + " print(\"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\")\n", + " porte_momie = randint(0, nombre_portes)\n", + " porte_choisie = choisir_porte(nombre_portes)\n", + " if porte_choisie == porte_momie:\n", + " print(\"Une momie attaque!\")\n", + " for i in range(degat_momie):\n", + " print(\"Elle te touche une fois\")\n", + " points_de_vie = points_de_vie - 1\n", + " else:\n", + " print(\"Rien! Tu as survécu à une porte en plus.\")\n", + " score = score + 1\n", + "\n", + "print(\"T'es mort. Tu n'as plus de points de vie.\")\n", + "print(\"Le jeu est fini, ton score est de \", score)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Maintenant que vous avez un peu joué à ce jeu. Vous allez créer des variantes de ce jeu. \n", + "\n", + "Vous devez faire dans l'ordre les variantes 1, 2 et 3. Les autres peuvent être fait dans l'ordre que vous souhaitez en fonction de ce qui vous inspire.\n", + "\n", + "\n", + "**Pour chaque variante, vous copirez puis collerez le programme précédent dans un nouveau fichier dans édupython avant de le modifier.**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 1* Modifier le programme pour que chaque ouverture de porte sans momie rapporte 10 points" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 2* Modifier le programme pour que l'on commence avec 5 points de vie mais qu'il n'y ait que deux portes à chaque fois." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 3* On part fixe le nombre de porte à 3. Quelle est la probabilité de tomber sur un momie? Transformer le programme pour la probabilité de tomber sur un momie soit de 2/3." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "Les variantes suivantes peuvent être faites dans l'ordre que vous souhaitez." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 4* Le programme comporte un gros bug. Il est possible de ne jamais être dévoré par la momie. Proposer une façon de corriger ce bug." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 5* Modifier le programme pour qu'à chaque fois que l'on tombe sur une momie. On ait une chance sur deux de perdre 1 point de vie et une chance sur 2 de ne perdre 2 points de vie." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "*Variante 6* Ajouter d'autres monstres cachés derière d'autres portes qui enlèves plus ou moins de points." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Variante 7 Étonnez nous avec une variante bien à vous!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bilan\n", + "\n", + "Noter les mots écris en vert dans différents programmes manipulés et décrire l'action de chacun d'eux." + ] + }, + { + "cell_type": "raw", + "metadata": {}, + "source": [ + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "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.10.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/2nd/13_Programmation/4E_boucle_for.ipynb b/2nd/13_Programmation/4E_boucle_for.ipynb index 84be269..c69762b 100644 --- a/2nd/13_Programmation/4E_boucle_for.ipynb +++ b/2nd/13_Programmation/4E_boucle_for.ipynb @@ -7,7 +7,7 @@ "source": [ "# Étape 4: boucle for\n", "\n", - "Ce TP commence par l'étape 1. Ensuite les autres étapes peuvent se faire dans l'ordre que vous voulez." + "Ce TP commence par la partie 1. Ensuite les autres parties peuvent se faire dans l'ordre que vous voulez." ] }, { @@ -17,7 +17,7 @@ "source": [ "## 1- Faire la même chose plusieurs fois, une belle punition\n", "\n", - "Bob n'a pas été sage, il a encore essayer de scotcher son voisin de classe sur sa chaise. Son professeur a une idée très originale pour le punir: lui faire recopier 100 fois \"je ne dois pas scotcher mon voisin sur sa chaise\". Alors Bob commence" + "Bob n'a pas été sage, il a encore essayer de scotcher son voisin de classe sur sa chaise. Son professeur a une idée très originale pour le punir : lui faire recopier 100 fois \"je ne dois pas scotcher mon voisin sur sa chaise\". Alors Bob commence" ] }, { @@ -132,10 +132,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "f853763e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "####\n", + "----------\n", + "___ -----\n" + ] + } + ], "source": [ "print(\"#\"*4)\n", "print(\"-\"*10)\n", diff --git a/2nd/13_Programmation/5E_boucles_while.ipynb b/2nd/13_Programmation/5E_boucles_while.ipynb index 1df21aa..b53e89e 100644 --- a/2nd/13_Programmation/5E_boucles_while.ipynb +++ b/2nd/13_Programmation/5E_boucles_while.ipynb @@ -7,7 +7,9 @@ "source": [ "# Étape 5: boucle while\n", "\n", - "`While` signifie `tant que` en anglais. Cette instruction va répéter **tant que** quelque chose est vrai." + "`While` signifie `tant que` en anglais. Cette instruction va répéter **tant que** quelque chose est vrai.\n", + "\n", + "1. Exécuter puis décrire le programme suivant" ] }, { @@ -42,10 +44,89 @@ "print(\"i vaut \", i, \". C'est plus grand que 10. Je suis sorti de la boucle\")" ] }, + { + "cell_type": "raw", + "id": "1f129756", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "de655c11", + "metadata": {}, + "source": [ + "2. Proposer un variante où l'on répète jusqu'à ce que `i` depasse 20 et où `i` augmente de 2 en 2." + ] + }, { "cell_type": "code", "execution_count": null, - "id": "23aabfac", + "id": "832e7f8c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "66641818", + "metadata": {}, + "source": [ + "Dès que l'on veut faire quelque chose **jusqu'à ce que**, on utilisera un boucle `while`. \n", + "\n", + "3. Exécuter le programme et essayer de trouver mon mot de passe." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "53d5932c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Quel est mon mot de passe?les maths c bon\n", + "Arf bien joué, tu l'as trouvé. J'ai plus qu'à le changer...\n" + ] + } + ], + "source": [ + "mdp = input(\"Quel est mon mot de passe?\")\n", + "while mdp != \"les maths c bon\":\n", + " mdp = input(\"Raté! Tu ne trouveras jamais. Quel est mon mot de passe?\")\n", + "print(\"Arf bien joué, tu l'as trouvé. J'ai plus qu'à le changer...\")" + ] + }, + { + "cell_type": "markdown", + "id": "e69e925f", + "metadata": {}, + "source": [ + "4. Écrire une programme qui pose la même question tant que la bonne réponse n'est pas trouvée (vous devez inventer la question et la réponse)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae7497cb", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9748b12c", + "metadata": {}, + "source": [ + "## 1- Jeux de devinette\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1a3baf72", "metadata": {}, "outputs": [], "source": [] @@ -55,10 +136,34 @@ "id": "9ef8751b", "metadata": {}, "source": [ - "## - A trouvé?\n", + "## 1- Simulation aléatoire\n", "\n", - "On veut programmer " + "La boucle `while` peut être utile pour simuler des phénomènes aléatoires et les arreter " ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6e20c46c", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "594596d0", + "metadata": {}, + "source": [ + "## 2- Investissement" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff906802", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {