Compare commits

..

No commits in common. "411b7c6022ff66c75d9447e29c323b508930fe72" and "83ffd646d35361e86dcda33c12090aedf89cb472" have entirely different histories.

21 changed files with 75 additions and 1139 deletions

View File

@ -0,0 +1,14 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\author{Benjamin Bertrand}
\title{Programmation - Cours}
\date{2022-02-07}
\pagestyle{empty}
\begin{document}
\maketitle
\end{document}

View File

@ -0,0 +1,17 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\author{Benjamin Bertrand}
\title{Programmation - Exercices}
\date{2022-02-07}
\DeclareExerciseCollection[step=1]{banque}
\xsimsetup{collect}
\begin{document}
\input{exercises.tex}
\printcollection{banque}
\end{document}

View File

@ -1,388 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "a895ccc3",
"metadata": {},
"source": [
"# Étape 1: Tour d'horizon\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "74bf75e9",
"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",
"id": "473bc947",
"metadata": {},
"source": [
"### Programme 1"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "00e17aa0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello les 2nd\n",
"4\n"
]
}
],
"source": [
"print(\"Hello les 2nd\")\n",
"a = 2\n",
"print(a + a)"
]
},
{
"cell_type": "markdown",
"id": "114e94e6",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "5542b9fd",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "2261d0a8",
"metadata": {},
"source": [
"### Programme 2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "55d73535",
"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",
"id": "4bf64258",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "e289dc8c",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "248c968b",
"metadata": {},
"source": [
"### Programme 3\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b7a54d74",
"metadata": {},
"outputs": [],
"source": [
"def f(x):\n",
" resultat = x^2 + 2\n",
" return resultat\n",
"print(f(0))\n",
"print(f(10))"
]
},
{
"cell_type": "markdown",
"id": "11c8e906",
"metadata": {},
"source": [
"Description"
]
},
{
"cell_type": "raw",
"id": "d86c1c23",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"id": "0387ca4c",
"metadata": {},
"source": [
"## Modifier le programme de la momie\n",
"\n",
"Ci-dessous, vous avez un programme qui code un jeu de hazard. Faites quelques parties pour essayer de comprendre ce qu'il s'y passe.\n",
"\n",
"**Ne modifier pas ce programme**\n",
"\n",
"Si plus rien ne se passe sans message rouge, un `input` est bloqué. Cliquer sur `Noyau` puis sur `Redémmarer & effacer les sorties`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "946e7e2b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi. Laquelle ouvres-tu?2\n",
"Une momie attaque!\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi. Laquelle ouvres-tu?2\n",
"Rien! Tu as survécu à une porte en plus.\n",
"Tu arrives dans un long couloir et tu avances. Jusqu'à ce que...\n",
"Il y a 3 portes devant toi. Laquelle ouvres-tu?2\n",
"Une momie attaque!\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"Elle te touche une fois\n",
"T'es mort. Tu n'as plus de points de vie.\n",
"Le jeu est fini, ton score est de 1\n"
]
}
],
"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",
" porte_choisie = int(input(\"Il y a \" + str(nombre_portes) + \" portes devant toi. 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)\n",
" "
]
},
{
"cell_type": "markdown",
"id": "89a3387e",
"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",
"**Pour chaque variante, vous copirez puis collerez le programme précédent avant de le modifier.**"
]
},
{
"cell_type": "markdown",
"id": "8d30a8f4",
"metadata": {},
"source": [
"*Variante 1* Modifier le programme pour que chaque ouverture de porte sans momie rapporte 10 points"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c1b6fc56",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "59ca0f04",
"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": "code",
"execution_count": null,
"id": "c8756d74",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "524c50c7",
"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 3/2."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "83ca9834",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "3c1d61e9",
"metadata": {},
"source": [
"---\n",
"Les variantes suivantes peuvent être faites dans l'ordre que vous souhaitez."
]
},
{
"cell_type": "markdown",
"id": "e89d33f2",
"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": "code",
"execution_count": null,
"id": "22fc7fcf",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "2857505d",
"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": "code",
"execution_count": null,
"id": "778a6605",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "993bc79b",
"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": "code",
"execution_count": null,
"id": "7d4b48e6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "3a1cc9d1",
"metadata": {},
"source": [
"Variante 7 Étonnez nous avec une variante bien à vous!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5df00726",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "f7aff6d5",
"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",
"id": "e1605a82",
"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": 5
}

View File

@ -1,182 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "431d820f",
"metadata": {},
"source": [
"# Étape 2: Variables, affectation et type"
]
},
{
"cell_type": "markdown",
"id": "68735bc5",
"metadata": {},
"source": [
"Trois types de variables"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bb073084",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "a8e5dc45",
"metadata": {},
"source": [
"`input` donne une chaine de caractère. Comment la transformer en int ou float"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "549afdb8",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ef52a1e0",
"metadata": {},
"source": [
"Opérations entre les types"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0fa1ffb7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "679b714c",
"metadata": {},
"source": [
"## Exercices\n",
"\n",
"Dans les éxercices suivants vous devrez coder un programme qui fait ce qu'il est décrit. Vous pouvez les faire dans l'ordre que vous souhaitez."
]
},
{
"cell_type": "markdown",
"id": "39db342d",
"metadata": {},
"source": [
"### Variation d'une grandeur\n",
"\n",
"Écrire un programme qui\n",
"\n",
" demande la valeur initiale\n",
" demande le taux d'évolution\n",
" affiche la valeur finale"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "142f5abd",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "35b73400",
"metadata": {},
"source": [
"## Taux de variation\n",
"\n",
"Écrire un programme qui\n",
"\n",
" demande la valeur initiale\n",
" demande la valeur finale\n",
" affiche le taux d'évolution\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e7fb7e8e",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "16e4cab9",
"metadata": {},
"source": [
"### Coordonnées du milieu\n",
"\n",
"Écrire un programme qui\n",
"\n",
" demande l'abscisse du point A\n",
" demande l'ordonnée du point A\n",
" demande l'abscisse du point B\n",
" demande l'ordonnée du point B\n",
" stock l'abscisse du milieu du segment [AB]\n",
" stock l'ordonnée du milieu du segment [AB]\n",
" affiche les coordonnées du milieu du segment [AB]\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e3766249",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "00c3137a",
"metadata": {},
"source": [
"### Distance entre deux points\n",
"\n",
"Écrire un programme qui\n",
"\n",
" demande l'abscisse du point A\n",
" demande l'ordonnée du point A\n",
" demande l'abscisse du point B\n",
" demande l'ordonnée du point B\n",
" affiche la distance AB\n",
" \n",
"Pour calculer la racine carré, vous aurez besoin d'importer la fonction `sqrt`. Pour cela, votre programme devra commencer par la ligne suivante\n",
"\n",
" from math import sqrt"
]
}
],
"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": 5
}

View File

@ -1,161 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "59986333",
"metadata": {},
"source": [
"# Conditions\n",
"\n",
"Quand on veut gérer des situations différentes, on utiliser une structure `if`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "90f79825",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Choisir un nombre (a): 2\n",
"Choisir un autre nombre(b): 4\n",
"a est plus petit que b\n"
]
}
],
"source": [
"a = str(input(\"Choisir un nombre (a): \"))\n",
"b = str(input(\"Choisir un autre nombre(b): \"))\n",
"\n",
"if a > b: # Si\n",
" print(\"a plus grand que b\")\n",
"elif a == b: # Sinon si\n",
" print(\"a est égal à b\")\n",
"else: # Sinon\n",
" print(\"a est plus petit que b\")"
]
},
{
"cell_type": "markdown",
"id": "6e39d9d8",
"metadata": {},
"source": [
"## Exercices"
]
},
{
"cell_type": "markdown",
"id": "21e86bf8",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "f719d9ac",
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "56711adc",
"metadata": {},
"source": [
"2. **Questions flashs et correction automatique**\n",
"\n",
"Préparer une série de 4 questions flashs simples où la réponse est un nombre ou un mot. Écrire un programme qui demande une réponse aux questions flashs et qui dit si oui ou non la réponse est juste."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "01e13ca3",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "7e24624a",
"metadata": {},
"source": [
"# Comparaison et logique"
]
},
{
"cell_type": "markdown",
"id": "a140ea9c",
"metadata": {},
"source": [
"==, !=, <, >, <= et >="
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b60a11dd",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "a4a0f415",
"metadata": {},
"source": [
"not, and et or"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3f3512da",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "4f4b6948",
"metadata": {},
"source": [
"## Exercices"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2aad72c0",
"metadata": {},
"outputs": [],
"source": []
}
],
"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": 5
}

View File

@ -2,80 +2,11 @@ Programmation
#############
:date: 2022-02-07
:modified: 2022-02-17
:modified: 2022-02-07
:authors: Benjamin Bertrand
:tags: Python
:category: 2nd
:summary: TDs de programmation python à faire en salle informatique en demi-groupe.
Le programme
============
Contenus
- Variables informatiques de type entier, booléen, flottant, chaîne de caractères.
- Affectation.
- Séquence dinstructions.
- Instruction conditionnelle.
- Boucle bornée (for), boucle non bornée (while).
Capacités attendues
- Choisir ou déterminer le type dune variable (entier, flottant ou chaîne de caractères).
- Concevoir et écrire une instruction daffectation, une séquence dinstructions, une instruction conditionnelle.
- Écrire une formule permettant un calcul combinant des variables.
- Programmer, dans des cas simples, une boucle bornée, une boucle non bornée.
- Dans des cas plus complexes: lire, comprendre, modifier ou compléter un algorithme
Présentation
============
Plan de travail sous forme de plusieurs notebooks. Les élèves doivent commencer pas l'étape 1 pour avoir un tour d'horizon. Puis vient l'étape 2 qui n'est à faire que pour les élèves qui ne sont pas du tout à l'aise avec la programmation. Les étapes suivantes peuvent être fait dans n'importe quelle ordre.
La séquence se conclue avec un projet de programmation mêlant plusieurs outils.
Assez rapidement, on pourra ajouter des questions "programmation" dans les questions flashs: des programmes, on anticipe quel sera le résultat. Cela permettre de présenter "le tableau des variables".
Plan de travail
===============
Étape 1: Tour d'horizon des briques de programmation
----------------------------------------------------
`Tour d'horizon des briques de programmation <./1E_tour_d_horizon.ipynb>`_
Les élèves commencent par décrire des programmes. Une phrase par ligne de code.
Le programme de la momie va les amener à créer plusieurs variantes d'un même programme. Les premières variantes sont justes des modifications de variables mais elles vont pousser les élèves à lire le programme et à chercher quel est le rôle de chaque morceau. Il sera intéressant de discuter de ces rôles en plénière. Le but est que les élèves arrivent à faire au moins ces 3 premières variantes. Les autres variantes seront réservées aux élèves les plus rapides.
Au moins 10 minutes avant la fin de l'heure, on forcera les élèves à faire la partie bilan.
Bilan: le programme de la momie avec les mots clé mis en valeur et décrit succinctement.
Étape 2: Variables, affectation et type
---------------------------------------
`Variables, affectation et type <./2E_variables.ipynb>`_
Types de données: int, float et string -> input donne un string qu'il est parfois nécessaire de modifier avec int ou float.
Opérations suivant les types de données
Traduction algo en français en programme en python
Étape 3: Conditions if
----------------------
`Conditions if <./3E_conditions.ipynb>`_
Étape 4: Boucle for
-------------------
Étape 5: Boucle While
---------------------
Étape 6: Fonctions
------------------
Étape 7: Projets
----------------
:summary: Demi groupe en programmation python
Étape 1:
========

View File

@ -0,0 +1,14 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\author{Benjamin Bertrand}
\title{Information Chiffrée 2 - Cours}
\date{2022-02-07}
\pagestyle{empty}
\begin{document}
\maketitle
\end{document}

View File

@ -0,0 +1,17 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\author{Benjamin Bertrand}
\title{Information Chiffrée 2 - Exercices}
\date{2022-02-07}
\DeclareExerciseCollection[step=1]{banque}
\xsimsetup{collect}
\begin{document}
\input{exercises.tex}
\printcollection{banque}
\end{document}

View File

@ -1,85 +1,4 @@
% ----
% 1E: Intuitions et contre-intuitions
\begin{exercise}[subtitle={Parole de presse}, step={1}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{search}}]
<++>
\end{exercise}
\begin{solution}
<++>
\end{solution}
% ----
% 2E: Taux d'évolution et coefficient multiplicateur
\begin{exercise}[subtitle={Taux d'évolution et coefficient multiplicateur}, step={2}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{search}}]
<++>
\end{exercise}
\begin{solution}
<++>
\end{solution}
\begin{exercise}[subtitle={Questions divers}, step={2}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{tools}}]
<++>
\end{exercise}
\begin{solution}
<++>
\end{solution}
% ----
% 3E: Évolutions successives
\begin{exercise}[subtitle={Évolutions successives}, step={3}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{search}}]
Le but de cet exercice est de déterminer une méthode pour calculer le taux d'évolution global de multiples évolutions successives.
Une entreprise a une croissance moyenne de 2\% \textbf{par mois}. Au début de l'année 2010, son chiffre d'affaire était de \np{5000}\euro.
\begin{enumerate}
\item
\begin{enumerate}
\item Calculer le chiffre d'affaire de cette entre prise fin janvier, fin février et fin mars.
\item Quel a été le taux d'évolution global sur le premier trimestre de 2010.
\end{enumerate}
\item
\begin{enumerate}
\item Calculer le chiffre d'affaire fin 2010.
\item Quel a été d'évolution global sur l'année 2010?
\end{enumerate}
\item
\begin{enumerate}
\item Calculer le chiffre d'affaire fin 2020.
\item Quel a été d'évolution global entre 2010 et 2020?
\end{enumerate}
\item On suppose que cette croissance se poursuit jusqu'en 2050. Quel sera alors sont chiffre d'affaire?
\end{enumerate}
\end{exercise}
\begin{exercise}[subtitle={Évolutions successives - bilan}, step={3}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{users}}]
Expliquer votre/vos méthode(s) pour calculer la taux d'évolution d'une transformation composé de plusieurs évolution. Vous illustrerez votre méthode en calculant le taux d'évolution global composé de
\begin{enumerate}
\item 5 augmentation de 4\%.
\item 100 diminution de 5\%.
\item Une augmentation de 10\% puis une augmentation de 20\% puis une diminution de 30\%.
\end{enumerate}
\end{exercise}
\begin{solution}
\section*{Taux d'évolution successifs}
\end{solution}
\begin{exercise}[subtitle={Techniques}, step={3}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{tools}}]
\end{exercise}
\begin{solution}
\end{solution}
\begin{exercise}[subtitle={Mise en situation}, step={3}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{tools}}]
\end{exercise}
\begin{solution}
\end{solution}
% ----
% 4E: Évolutions réciproques
\begin{exercise}[subtitle={Évolutions réciproques}, step={4}, origin={Création}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }, mode={\faIcon{search}}]
\begin{exercise}[subtitle={<++>}, step={1}, origin={<++>}, topics={ Information Chiffrée 2 }, tags={ Information chiffrée }]
<++>
\end{exercise}

View File

@ -2,58 +2,13 @@ Information Chiffrée 2
######################
:date: 2022-02-07
:modified: 2022-02-16
:modified: 2022-02-07
:authors: Benjamin Bertrand
:tags: Information chiffrée
:category: 2nd
:summary: Taux d'évolution réciproque et successif.
Programme
=========
Contenus
--------
- Évolution : variation absolue, variation relative.
- Évolutions successives, évolution réciproque : relation sur les coefficients
Capacité attendues
------------------
- (révision) Exploiter la relation entre deux valeurs successives et leur taux dévolution.
- (découverte) Calculer le taux dévolution global à partir des taux dévolution successifs. Calculer un taux dévolution réciproque.
Plan de travail
===============
Les étapes 1 puis 2 sont à faire en premier. Ensuite les étapes 3 et 4 peuvent être faites dans l'ordre que l'on veut.
Étape 1: Intuitions et contre-intuitions
----------------------------------------
Trouver des annonces du genre "On a augmenté deux fois de 20%, on a donc augmenté de 40%" (idem pour le retour arrière). On teste avec des valeurs pour vérifier s'il est possible ce que genre de propos soient vrais.
Bilan: On ne peut pas ajouter, soustraire ou prendre l'opposé quand il s'agit de taux d'évolution.
Étape 2: Taux d'évolution et coefficient multiplicateur
-------------------------------------------------------
La transformation du le taux d'évolution en coefficient multiplicateur n'est pas encore très clair pour les élèves. Il s'agira de la rendre naturelle.
On travaillera aussi cette transformation en sens inverse c'est à dire du coefficient multiplicateur vers le taux d'évolution en (pourquoi pas) réutilisant la formule qui permet de calculer le taux d'évolution.
Bilan: Passage de l'un à l'autre (on l'a déjà fait dans le premier chapitre mais on le refait ici!)
Étape 3: Évolutions successives
-------------------------------
On a vu que l'on ne pouvait pas ajouter des taux d'évolutions. La répétition de l'application du taux d'évolution peut amener à l'émergence d'une formule (qui a pousser sur 100 répétitions).
Bilan: Taux d'évolution successif
Étape 4: Évolutions réciproques
-------------------------------
Calcul du taux d'évolution réciproque avec la formule du taux d'évolution. Recherche d'un lien (pas facile à voir!) puis calcul du coefficient multiplicateur lié aux deux taux d'évolutions et le lien peut être plus simple.
Étape 1:
========

View File

@ -1,74 +0,0 @@
\documentclass[a4paper,12pt]{article}
\usepackage{myXsim}
\author{Benjamin Bertrand}
\title{Information chiffrée (2) - Plan de travail}
\tribe{2nd}
\date{Février 2022}
\pagestyle{empty}
\DeclareExerciseCollection{banque}
\xsimsetup{
}
\begin{document}
\maketitle
\bigskip
\begin{multicols}{2}
Savoir-faire de la séquence
\begin{itemize}
\item Exploiter la relation entre deux valeurs successives et leur taux dévolution.
\item Calculer le taux dévolution global à partir des taux dévolution successifs. Calculer un taux dévolution réciproque.
\end{itemize}
Ordre des étapes à respecter
\begin{center}
\Ovalbox{
\begin{tikzpicture}
\node (E1) {1};
\node (E2) [right of=E1] {2};
\node (E3) [above right of=E2] {3};
\node (E4) [below right of=E2] {4};
\path[->] (E1) edge (E2);
\path[->] (E2) edge (E3);
\path[->] (E2) edge (E4);
\end{tikzpicture}
}
\end{center}
\end{multicols}
\section{Intuitions et contre-intuitions}
\listsectionexercises
\section{Taux d'évolution et coefficient multiplicateur}
\listsectionexercises
\section{Évolutions successives}
\listsectionexercises
\section{Évolutions réciproques}
\listsectionexercises
\bigskip
\pagebreak
\input{exercises.tex}
\printcollection{banque}
\end{document}

View File

@ -1,28 +0,0 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usetikzlibrary{shapes.geometric}
\author{Benjamin Bertrand}
\title{Géométrie repérée - Solutions}
\tribe{2nd}
\date{Janvier 2022}
\DeclareExerciseCollection{banque}
\xsimsetup{
exercise/print=false,
solution/print=true,
}
\pagestyle{empty}
\begin{document}
\maketitle
\input{exercises.tex}
%\printcollection{banque}
%\printsolutions{exercises}
\end{document}

View File

@ -68,27 +68,6 @@ tags=$(dialog \
2>&1 1>&3)
exec 3>&-
## Plan de travail ou classique
exec 3>&1
selection=$(dialog \
--backtitle "Création d'une nouvelle séquence: Type" \
--title "Menu" \
--clear \
--cancel-label "Exit" \
--menu "Type de séquence:" 0 0 4 \
"1" "Classique" \
"2" "Plan de travail" \
2>&1 1>&3)
exec 3>&-
case $selection in
1 )
sequence_type="classique"
;;
2 )
sequence_type="plan_de_travail"
;;
esac
sequence_path=$tribe/$(printf "%02d" $next_seq_number)_${title// /_}/
mkdir -p $sequence_path
@ -96,17 +75,12 @@ mkdir -p $sequence_path
export title=$title
export title_under=${title//?/#}
export author='Benjamin Bertrand'
export date=`date --date="$date 00:00" "+%B %Y"`
export date=$date
export tribe=$tribe
export tags=$tags
export summary=$summary
SKELETONPATH=./tools/skeleton/sequence
for i in `ls $SKELETONPATH/common/`
do
envsubst < $SKELETONPATH/common/$i > $sequence_path/$i
done
for i in `ls $SKELETONPATH/$sequence_type`
do
envsubst < $SKELETONPATH/$sequence_type/$i > $sequence_path/$i
done
envsubst < ./tools/skeleton/sequence/index.rst > $sequence_path/index.rst
envsubst < ./tools/skeleton/sequence/exercises.tex > $sequence_path/exercises.tex
envsubst < ./tools/skeleton/sequence/1E.tex > $sequence_path/1E.tex
envsubst < ./tools/skeleton/sequence/1B.tex > $sequence_path/1B.tex

View File

@ -1,44 +0,0 @@
\documentclass[a4paper,12pt]{article}
\usepackage{myXsim}
\author{${author}}
\title{${title} - Plan de travail}
\tribe{${tribe}}
\date{${date}}
\pagestyle{empty}
\DeclareExerciseCollection{banque}
\xsimsetup{
}
\begin{document}
\maketitle
% Résumé
\bigskip
Savoir-faire de la séquence
\begin{itemize}
\item
\end{itemize}
\bigskip
Ordre des étapes à respecter
\section{}
\listsectionexercises
\pagebreak
\input{exercises.tex}
\printcollection{banque}
\end{document}

View File

@ -1,28 +0,0 @@
\documentclass[a4paper,10pt]{article}
\usepackage{myXsim}
\usetikzlibrary{shapes.geometric}
\author{${author}}
\title{${title} - Solutions}
\tribe{${tribe}}
\date{${date}}
\DeclareExerciseCollection{banque}
\xsimsetup{
exercise/print=false,
solution/print=true,
}
\pagestyle{empty}
\begin{document}
\maketitle
\input{exercises.tex}
%\printcollection{banque}
%\printsolutions{exercises}
\end{document}