Feat: TST somme suite programmation
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
29071effd8
commit
1f5184fc59
14600
TST/09_Somme_suites/1I_boucle_accumulateurs.html
Normal file
14600
TST/09_Somme_suites/1I_boucle_accumulateurs.html
Normal file
File diff suppressed because one or more lines are too long
261
TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb
Normal file
261
TST/09_Somme_suites/1I_boucle_accumulateurs.ipynb
Normal file
@ -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
|
||||
}
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user