{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Boucles : Exercices en Python" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 1\n", "\n", "Voici un petit programme:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n=5\n", "while n>0 :\n", " print(n)\n", " n=n-1\n", "print(\"Feu !\")\n", "print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'utilisation de la structure `while` vous semble-t-elle pertinente ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Réponse :**Non, l'utilisation n'est pas pertinente car on sait à l'avance combien de fois on veut répéter le programme. Il est donc préférable d'utiliser une boucle `for`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 2\n", "\n", "Écrire ci-dessous un programme qui permet d'afficher **Bonjour** 20 fois." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "for i in range(20):\n", " print(\"Bonjour\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 3\n", "\n", "Écrire un script qui affiche les $n$ premiers nombres entiers les uns en dessous des autres." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n=int(input(\"donnez la valeur de n\"))\n", "\n", "for i in range(n):\n", " print(i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 4\n", "Écrire un script qui affiche les nombres impairs inférieurs ou égaux à $n$ les uns en dessous des autres." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n=int(input(\"donnez la valeur de n\"))\n", "\n", "for i in range((n-1)//2+1):\n", " print(2*i+1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 5\n", "\n", "Écrire un script qui dessine un triangle comme ci-dessous à $n$ lignes. \n", "\n", "**Rappel**\n", "\n", "\"a\"+\"b\"=\"ab\" et \"a\"*3=\"aaa\".\n", "\n", "**Figure attendue**\n", "\n", "```\n", "*\n", "**\n", "***\n", "****\n", "*****\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n=5\n", "\n", "for i in range(n):\n", " print((i+1)*\"*\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 6\n", "\n", "Écrire un script qui dessine un triangle comme ci-dessous à $n$ lignes et qui affiche en dessous le nombre total d'étoiles.\n", "\n", "```\n", "*****\n", "****\n", "***\n", "**\n", "*\n", "\n", "Il y a 15 étoiles\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "n=5\n", "S=0\n", "for i in range(n):\n", " print((n-i)*\"*\")\n", " S=S+(n-i)\n", "\n", "print(\"Il y a\",S,\"étoiles\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 7 : Baballe\n", "\n", "Une balle chute de 400 pixels. A chaque rebond , la hauteur de la balle diminue de 10%.\n", "Réalisez un programme qui affiche la hauteur de chaque rebond tant qu'ils sont supérieurs à 5 pixels. Afficher le nombre de rebonds nécessaires pour avoir une hauteur inférieure à 5 pixels." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "h=400\n", "n=0\n", "while h>=5:\n", " h=0.9*h\n", " n=n+1\n", " \n", "print(n,\"rebonds\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 8 Une histoire de prix...\n", "\n", "Au premier janvier 2020, le prix d'une voiture est de 18 960 euros.\n", "Chaque année, la valeur de cette voiture diminue de 20%.\n", "On souhaite écrire un programme qui calcule le nombre d'années au bout duquel la valeur de cette voiture passe sous le seuil de 2 000 euros." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "P=18960\n", "A=0\n", "while P>=2000:\n", " P=P*0.8\n", " A=A+1\n", "print(\"Au bout de\",A,\"années\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 9\n", "\n", "Écrire un programme qui affiche un joli sapin de Noël, dont la taille est donnée par l’utilisateur.\n", "\n", "**Figure attendue** pour une taille de 12 lignes\n", "\n", "```\n", " ^\n", " ^^^\n", " ^^^^^\n", " ^^^^^^^\n", " ^^^^^^^^^\n", " ^^^^^^^^^^^\n", " ^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^^^^^\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tout d'abord, on peut remarquer que le nombre de caractères par ligne est toujours un nombre impair. On peut donc écrire un programme qui affiche les lignes de 1 à 23 caractères impairs, puis on pourra adapter ce programme pour qu'il s'arrête à la taille souhaitée.\n", "\n", "Il faut aussi prendre en compte que le sapin est centré. On doit donc ajouter des espaces avant les caractères \"^\" pour que le sapin soit bien centré." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ^\n", " ^^^\n", " ^^^^^\n", " ^^^^^^^\n", " ^^^^^^^^^\n", " ^^^^^^^^^^^\n", " ^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^^^\n", " ^^^^^^^^^^^^^^^^^^^^^^^\n" ] } ], "source": [ "n=int(input(\"donnez le nombre de lignes\"))\n", "for i in range(n):\n", " print((n-i)*\" \"+(2*i+1)*\"^\")\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.13.5" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }