From 1f5184fc59140a3c3814b3aa61f2cf93c0177d1f Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Sat, 6 Mar 2021 09:36:07 +0100 Subject: [PATCH] Feat: TST somme suite programmation --- .../1I_boucle_accumulateurs.html | 14600 ++++++++++++++++ .../1I_boucle_accumulateurs.ipynb | 261 + TST/09_Somme_suites/index.rst | 3 +- 3 files changed, 14862 insertions(+), 2 deletions(-) create mode 100644 TST/09_Somme_suites/1I_boucle_accumulateurs.html create mode 100644 TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb diff --git a/TST/09_Somme_suites/1I_boucle_accumulateurs.html b/TST/09_Somme_suites/1I_boucle_accumulateurs.html new file mode 100644 index 0000000..a2e0fd2 --- /dev/null +++ b/TST/09_Somme_suites/1I_boucle_accumulateurs.html @@ -0,0 +1,14600 @@ + + + + + +1I_boucle_accumulateurs + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + + + + diff --git a/TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb b/TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb new file mode 100644 index 0000000..ffdd910 --- /dev/null +++ b/TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Boucles et accumulateurs\n", + "\n", + "\n", + "Dans ce TP, nous allons travailler la boucle `for` puis nous allons voir comment les utiliser pour faire des **accumulateurs**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## La boucle `for`\n", + "\n", + "Nous les avons déjà rencontré. Voici l'exemple le plus simple que l'on puisse imaginer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(10):\n", + " print(i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Lancer le programme pour expliquer ce qu'il fait. Que représente `i`? Que fait la commande `range(10)`?\n", + "\n", + "2. Ci-dessous, vous trouverez un nouveau programme. Avant de l'exécuter, faire le tableau des variables pour deviner ce qu'il fait." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "a = 0\n", + "for i in range(4):\n", + " print(i**2)\n", + " a = a + i\n", + "print(a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Même question pour le programme ci-dessous." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "u = 10\n", + "for i in range(3):\n", + " print(u)\n", + " u = u * 1.2\n", + "print(u)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pour un affichage plus pratique, on peut le réécrire." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "u = 10\n", + "for i in range(3):\n", + " print(\"u\", i, \" = \", u)\n", + " u = u * 1.2\n", + "print(\"u\", i, \" = \", u)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Soit $u_n$ une suite géométrique de raison $q=2$ et de premier terme $u_0=1$. Écrire une programme qui calcule $u_{100}$ en utilisant une boucle `for`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "5. Soit $u_n$ une suite définie par la relation de récurence $u_{n+1} = 0.9u_n + 10$ et de premier terme $u_0 = 200$. Écrire un programme qui calcule $u_{50}$ en utilisant une boucle `for`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accumulateur\n", + "\n", + "Il arrive que l'on ne s'intéresse non pas à une valeur particulière mais à l'accumulation de toutes les valeurs précédentes. Pour programmer cela, on utilise un accumulateur comme présenter dans le programme suivant." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "u = 10\n", + "S = u\n", + "for i in range(4):\n", + " u = u * 0.5\n", + " S = S + u\n", + "print(S)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "1. Faire le tableau des valeurs pour le programme précédent et vérifier que vous obtenez bien le même résultat.\n", + "2. Soit $u_n$ une suite géométrique de raison $q=2$ et de premier terme $u_0=1$. Écrire une programme qui ajoute toutes les valeurs de $u_n$ jusqu'à $u_{10}$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Écrire une programme qui ajoute le carré des nombres de 1 à 100." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. Écrire un programme qui ajoute l'inverse des nombres entre 1 et 500." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dossier en groupe\n", + "\n", + "Les cellules ci-dessous sont libres. Vous pouvez les utiliser pour écrire des programmes qui vous semblent pertinents pour le sénario choisi.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.9.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/TST/09_Somme_suites/index.rst b/TST/09_Somme_suites/index.rst index 3d5657c..a04112e 100644 --- a/TST/09_Somme_suites/index.rst +++ b/TST/09_Somme_suites/index.rst @@ -2,7 +2,7 @@ Somme suites ############ :date: 2021-02-07 -:modified: 2021-03-04 +:modified: 2021-03-06 :authors: Benjamin Bertrand :tags: Suites, Analyse, Tableur, Python :category: TST @@ -22,7 +22,6 @@ Comparaison de deux situations (arithmétique et géométrique) où il faudra no Séance de programmation où l'on va travailler sur les boucles et les accumulateurs pour calculer des sommes. On invitera les élèves à utiliser une feuille de papier pour vérifier les calculs faits par l'ordinateur. -Les élèves retrouveront les scénarios de l'étape 1 pour faire les calculs avec l'outil de programmation. Bilan: algorithme d'accumulations et symbole somme