2022-2023/2nd/06_Programmation/4E_boucles_for.ipynb

2 lines
9.0 KiB
Plaintext

{"cells":[{"metadata":{},"cell_type":"markdown","source":"# Étape 4: boucle for\n\nCe TP commence par la partie 1. Ensuite les autres parties peuvent se faire dans l'ordre que vous voulez."},{"metadata":{},"cell_type":"markdown","source":"## 1- Faire la même chose plusieurs fois, une belle punition\n\nBob 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"},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")\nprint(\"je ne dois pas scotcher mon voisin sur sa chaise\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Mais il en marre. Alors il se rappelle qu'il peut sans effort utiliser une boucle `for` pour cela."},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(10):\n print(\"je ne dois pas scotcher mon voisin sur sa chaise\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Modifier le programme précédent pour qu'il réalise la punition de Bob."},{"metadata":{},"cell_type":"markdown","source":"Bien sûr l'enseignant est fou de rage. Il lui demande de réécrire 100 fois \"Moi Bob, je suis un gros malin et j'utiliser la programmation\" mais cette fois ci entre 2 lignes il doit y avoir une ligne de tirés (\"---------\").\n\n2. Réaliser la punition de Bob"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Encore raté, l'enseignant ne sait plus comment construire une vraie bonne punition pour ce plaisantin. Mais il a une idée, il va lui demander de numéroter ses lignes de punition. Il veut des phrases du genre \"C'est la phrase numéro 10, il me reste encore 90 lignes à faire\".\n\nBob se rappelle alors qu'il peut utiliser la variable `i` pour compter le nombre de répétition. Il écrire alors"},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(4):\n print(\"Je repète \", i, \" fois\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Recopier et modifier le programme de Bob pour réaliser sa punition."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 2- Dessins ASCII\n\nLe but de cette partie est de réaliser des dessins avec des chaines de caractères.\n\nQuand on multiplie une chaine de caractères (par exemple \"#\") par un entier (par exemple 4), python va répéter la chaine de caractères.\n\nQuelques exemples:"},{"metadata":{"trusted":false},"cell_type":"code","source":"print(\"#\"*4)\nprint(\"-\"*10)\nprint(\"_\"*3, \" \"*2, \"-\"*5)","execution_count":1,"outputs":[{"name":"stdout","output_type":"stream","text":"####\n----------\n___ -----\n"}]},{"metadata":{},"cell_type":"markdown","source":"On peut utiliser des boucles pour faire ensuite des motifs"},{"metadata":{"trusted":false},"cell_type":"code","source":"for i in range(5):\n print(\"-\", \"#\"*i)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Réaliser le motif suivant:\n\n\n -\n --\n ---\n ----\n -----\n ------\n -------\n --------\n --------- "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Réaliser le motif suivant\n\n \n ##\n ####\n ######\n ########"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Réaliser le motif suivant\n\n ######\n #####\n ####\n ###\n ##\n #"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. Réaliser le motif suivant\n\n\n #\n ##\n ###\n ####\n #####\n ######\n #####\n ####\n ###\n ##\n #"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"5. Réaliser le motif suivant\n\n # \n ### \n ##### \n ####### "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 3- Calculer des images à pelle\n\nOn définit la fonction \n$$ f(x) = 2x - 1$$\nOn veut calculer les valeurs de $f(0)$, $f(1)$ jusqu'à $f(10)$. C'est une tache répétitive,on va pouvoir utiliser une boucle `for`"},{"metadata":{"trusted":false},"cell_type":"code","source":"for x in range(11):\n print(\"f(\", x, \")=\", 2*x-1)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Calculer les images pour $x$ allant de 0 à 20 par la fonctin $g(x) = 4x^2 - 5x - 1$ (en python la puissance s'écrit avec `**`)."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Calculer les images pour $x$ allant de -10 à 0 par la fonctin $h(x) = -x^2 + x - 1$ "},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Pour x allant de -100 à 100, quelles sont les valeurs de $x$ qui ont une image positive par la fonction $i(x) = -x^2 + 600$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 4- Accumulateurs\n\nDans le programme suivant, on veut ajouter tous les nombres de 0 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"somme = 0\nfor i in range(101):\n somme = somme + i\nprint(somme)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Adapter le programme pour qu'il fasse la somme des nombres de 50 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Adapter le programme pour qu'il fasse le produit des tous les nombres de 0 à 100."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. On veut ajouter tous les nombres de 0 à 100 qui sont paires. Écrire le programme qui correspond."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. Écrire un programme qui fait la somme de tous les multiples de 5 de 0 à 1000."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## 5- Plusieurs boucles\n\nOn veut énumérer les points du plan qui ont des coordonnées entières comprises entre -5 et 5. Pour cela il va falloir faire une boucles pour les abscisses (x), une boucle pour les ordonnées (y) et les imbriquer."},{"metadata":{"trusted":false},"cell_type":"code","source":"for x in range(-5, 6):\n for y in range(-5, 6):\n print(\"(\", x, \",\", y,\")\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"1. Lister tous les points à coordonnées entières qui ont une ordonnée égal à 2 (on note $y = 2$)."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Lister tous les points à coordonnées entières qui sont sur $x = -2$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"3. Lister tous les points à coordonnées entières qui sont sur $x = 2y$."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"4. En informatique, on peut coder une couleur en RGB (rouge, vert, bleu). Ce sont 3 nombres compris entre 0 et 255 mis sous forme de coordonnée.\n\nÉcrire un programme qui liste toutes les couleurs RGB possibles."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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}