Lycée Louis-Le-Grand, Paris 2019/2020 MPSI 4 – Informatique pour tous N. Carré,
Lycée Louis-Le-Grand, Paris 2019/2020 MPSI 4 – Informatique pour tous N. Carré, A. Troesch TP no 1 : Les bases de la programmation Lancez Python en cliquant sur l’icône « Pyzo » situé sur le Bureau. La fenêtre du haut est une console (ou terminal, ou shell Python) que nous dénommerons « Interpréteur Python ». Dans cet interpréteur, vous pouvez taper directement des opérations ou des instructions, qui seront effectuées immédiatement. La fenêtre du bas vous permet d’écrire des programmes complets mémorisés dans des fichiers. Exercice 1 – À la découverte des Variables (à faire dans la console) Une variable est la donnée d’une place en mémoire, destinée à stocker une valeur, et d’un nom permettant l’accès à cette place en mémoire. La valeur d’une variable peut changer au cours du temps. L’action de donner une valeur à une variable s’appelle « l’affectation », et s’effectue avec le signe =. 1. Créer une variable x de valeur 3. Peut-on écrire l’égalité d’affectation dans le sens qu’on veut ? 2. Créer une variable y égale à 7 ∗x, et afficher sa valeur. Modifier la valeur de x. Quel est l’effet de cette modification sur la valeur de y ? 3. Comprendre l’effet sur x des opérations +=, -=, *=, /=. 4. Échanger le contenu de deux variables x et y. On proposera 2 méthodes, l’une introduisant une variable auxi- liaire, l’autre effectuant les deux affectations de façon simultanée. Exercice 2 – Premiers programmes Nous quittons maintenant la console, pour écrire notre premier programme. Il s’agit donc d’écrire dans un fichier une succession d’instructions qui ne seront effectuées que lorsque nous lancerons l’exécution du programme. 1. Écrire un programme affichant Bonjour. Pour lancer l’exécution de votre programme, utiliser le menu Run. 2. Définir une fonction f : x 7→ 1 1+x2 . Faire calculer f(1) soit directement dans le programme, soit en lançant l’exécution dans la console. Exercice 3 – Structures conditionnelles simples Il est fréquent de devoir différencier l’action à effectuer suivant les cas. On utilise pour cette situation la structure conditionnelle if... else... dont voici un exemple d’utilisation : if x>0: print(’Bonjour’) else: print(’Au␣revoir’) Si la discussion porte sur plus de deux termes, on peut ajouter des tests intermédiaires grâce à elif (abréviation de else if). Écrire dans un programme une fonction prenant en paramètre une année, renvoyant un booléen, égal à True si et seulement si l’année est bissextile. On rappelle que depuis octobre 1582, une année n est bissextile si et seulement si n est divisible par 4, sauf si n est divisible par 100, mais pas par 400. On rappelle également qu’avant 1582, les années bissextiles étaient exactement les années multiples de 4. Exercice 4 – Structures itératives conditionnelles Les structures itératives (boucles) permettent de répéter un bloc d’instructions un grand nombre de fois. Nous n’étudions pour le moment que les boucles dont l’arrêt est conditionné par une condition, ou plutôt dont l’arrêt est conditionné par la non réalisation d’une certaine condition. Il s’agit de la boucle : while condition: instructions 1 1. Soit pour tout n ∈N∗, Sn = n X k=1 1 k. Écrire une fonction, prenant A en paramètre et déterminant la plus petite valeur de n pour laquelle Sn > A, A étant un réel entré par l’utilisateur. N’essayez pas votre fonction avec des valeurs de A supérieures à 20. 2. On rappelle que si a et b sont deux entiers strictement positifs et r le reste de la division euclidienne de a par b, alors, si r ̸= 0, le pgcd de a et b est égal au pgcd de b et r. En répétant cette opération jusqu’à obtenir un reste nul, on peut donc calculer le pgcd (c’est l’algorithme d’Euclide). Écrire une fonction prenant deux entiers a et b en paramètres, et calculant le pgcd de a et b. Exercice 5 – Calculs de suites récurrentes, et de sommes Les questions sont indépendantes. 1. Soit la suite définie par u0 = 0, et pour tout n ∈N, un+1 = √3un + 4. (a) Écrire un programme demandant à l’utilisateur un entier n et affichant tous les termes de la suite jusqu’à un. Que peut-on conjecturer quant à la convergence de cette suite ? (b) Écrire une fonction retournant le plus petit entier n pour lequel un > 4 −ε, où ε > 0. Que trouve-t-on pour ε = 10−8 ? 2. Calculer 1000 X n=0 un où u0 = 1 et ∀n ⩾0, un+1 = 1 un + 1. 3. Écrire un programme affichant les n premiers termes de la suite définie par u0 = 0, u1 = 2, pour tout k ∈N, uk+2 = sin uk + 2 cosuk+1 (la valeur de n étant demandée à l’utilisateur). La suite (un)n∈N semble-t-elle convergente ? 4. Soit f(x, y) = x cos y + y cos x. On définit une suite un par u0 = 0, u1 = 1, un+2 = f(un+1, un) si n est pair, et un+2 = f(un+1, un−1) si n est impair. Afficher les premières valeurs de (un), jusqu’à l’indice N, l’entier N étant entré par l’utilisateur. Exercice 6 – On définit la suite de Syracuse par u0 ∈N∗, et un+1 = ( un 2 si un est pair 3un + 1 si un est impair On veut vérifier la propriété suivante : il existe un rang N tel que uN = 1 (et à partir de ce rang, la suite boucle sur la séquence 4, 2, 1, 4, 2, 1, etc.). Écrire un programme demandant à l’utilisateur une valeur initiale u0, calculant les différents termes de la suite tant qu’ils ne sont pas égaux à 1, et affichant pour terminer la première valeur de N pour laquelle uN = 1, ainsi que la plus grande valeur obtenue pour un. Exercice 7 – En admettant l’existence de cette limite, calculer une valeur approchée à 10−8 près de lim n→+∞ n X k=2 (−1)k k ln(k). On pourra remarquer que cette limite est toujours comprise entre deux sommes partielles successives. Exercice 8 – L’entier n ⩽20 étant donné par l’utilisateur, afficher les n premières lignes du triangle de Pascal. On veillera à aligner (suivant leurs unités) les valeurs situées sur une même colonne. 2 Lycée Louis-Le-Grand, Paris 2019/2020 MPSI 4 – Informatique pour tous N. Carré, A. Troesch TP no 2 : Manipulations de listes Le premier exercice est une révision du TP précédent, sans rapport avec le thème du TP actuel. À faire avant de passer aux exercices sur les listes. Exercice 1 – Calculer F2019, où (Fn) est la suite de Fibonacci définie par F0 = 0, F1 = 1 et pour tout n ⩾0, Fn+2 = Fn+1 + Fn. Exercice 2 – Mutabilité et copies On vérifie dans cet exercice les comportements relatifs à la mutabilité des listes étudiés en cours. 1. Créer une liste liste1, la copier dans liste2. Comparez les identifiants de liste1 et liste2. 2. Modifiez un attribut de liste1. Quel est l’effet sur liste2 ? 3. Effectuez une copie liste3 de liste1 par saucissonnage. Quel est l’effet sur les adresses ? Modifier un attribut de liste1. Quel est l’effet sur liste3 ? 4. Créer une liste liste4, dont l’attribut liste4[0] est elle-même une liste. Créer une copie liste5 de liste4 par saucissonnage. 5. Comparez les adresses de liste4 et liste5. Comparer les adresses des attributs liste4[0] et liste5[0]. Modifier un des attributs de la liste liste4[0], et vérifier l’effet de cette modification sur liste5. 6. Créer le tuple couple=([1,2],3). Peut-on modifier l’attribut d’indice 1 de couple ? Modifier un des attributs de couple[0], et voir l’effet sur couple. Ce n’est pas parce que le contenu de couple ne peut pas être modifié en place que les contenus des attributs ne peuvent pas être modifiés, si ces attributs sont mutables. Exercice 3 – 1. Dans le module numpy.random se trouve une fonction nommée randint. Utilisez-la pour créer une liste de 100 entiers tirés au hasard entre 0 et 99. 2. Calculer le nombre d’éléments de [ [0, 99] ] qui n’appartiennent pas à cette liste. 3. Recommencer cette expérience un grand nombre de fois et calculer la moyenne du nombre d’absents. 4. Comparer à la valeur théorique. Exercice 4 – In and Out Shuffle Une méthode traditionnelle pour mélanger un paquet de cartes consiste à couper le paquet en deux puis à entrelacer ces deux parties. Lorsque les deux parties sont égales et que l’entrelacement se fait carte par carte, le mélange est dit parfait. Il y a deux types de mélanges parfaits : • le out shuffle lorsqu’on reconstitue le jeu en commençant par la première carte de la première moitié ; • le in shuffle lorsqu’on reconstitue le jeu en commençant par la première carte de la seconde moitié. On rappelle que li[a:b:p] extrait les termes d’une liste de p en p, à partir de l’indice a jusqu’à l’indice b −1. 1. Écrire une fonction out_shuffle effectuant le mélange out shuffle d’une liste contenant un nombre pair d’élé- ments. Pour un uploads/Geographie/ feuilles-de-tp-et-corriges-mpsi-4-informatique-pour-tous-alain-troesch.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 11, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 1.3908MB