IPT : cours 5. Les instructions de base en Python



Documents pareils
Initiation à la programmation en Python

Découverte de Python

Présentation du langage et premières fonctions

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

L informatique en BCPST

Algorithmique et Programmation, IMA

STAGE IREM 0- Premiers pas en Python

TP 1. Prise en main du langage Python

Cours d algorithmique pour la classe de 2nde

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Programmation C++ (débutant)/instructions for, while et do...while

ACTIVITÉ DE PROGRAMMATION

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Chapitre 2 Devine mon nombre!

Organigramme / Algorigramme Dossier élève 1 SI

Programmation avec Xcas ou Python

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

1 Recherche en table par balayage


Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

I00 Éléments d architecture

I. Introduction aux fonctions : les fonctions standards

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

DM 1 : Montre Autoquartz ETA

Suites numériques 3. 1 Convergence et limite d une suite

La mémoire. Un ordinateur. L'octet. Le bit

Représentation d un entier en base b

CORRECTION EXERCICES ALGORITHME 1

Programmation C. Apprendre à développer des programmes simples dans le langage C

Licence Sciences et Technologies Examen janvier 2010

Initiation. àl algorithmique et à la programmation. en C

TP, première séquence d exercices.

Algorithme. Table des matières

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Probabilités Loi binomiale Exercices corrigés

Corrigé des TD 1 à 5

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

Les structures. Chapitre 3

Quatrième partie IV. Test. Test 15 février / 71

Université Paris-Dauphine DUMI2E 1ère année, Applications

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

AWS avancé. Surveiller votre utilisation d EC2

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Cours 7 : Utilisation de modules sous python

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

V- Manipulations de nombres en binaire

TD3: tableaux avancées, première classe et chaînes

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MIS 102 Initiation à l Informatique

Correction TD algorithmique

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Langage Éric Guérin 5 octobre 2010

Développement décimal d un réel

Algorithmique et structures de données I

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

La boucle for La boucle while L utilisation du if else. while (condition) { instruction(s) }

Utiliser sa boîte mail pour trouver un emploi

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

ALGORITHMIQUE ET PROGRAMMATION En C

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Rappels sur les suites - Algorithme

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

2 Comment fonctionne un ordinateur, dans les grandes lignes

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Découverte du tableur CellSheet

INF 321 : mémento de la syntaxe de Java

Utilisation d objets : String et ArrayList

Algorithmique et programmation : les bases (VBA) Corrigé

Introduction au langage C

Examen Médian - 1 heure 30

Langage Java. Classe de première SI

Enseignement secondaire technique

Introduction à l informatique en BCPST

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Simulation de variables aléatoires

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Algorithmique avec Algobox

Initiation à Excel. Frédéric Gava (MCF)


Aide - mémoire gnuplot 4.0

Programmation Classique en langage C

La persistance des nombres

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours d Algorithmique et de Langage C v 3.0

Auto-Entreprise : Activités : Eric SOTY - Siret n Formation Bureautique, continue d'adultes. Tél : Fax :

Le langage C. Séance n 4

Qu est-ce qu une probabilité?

COMMUNICATION PC/MINITEL

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Présentation du cours de mathématiques de D.A.E.U. B, remise à niveau

Notions fondamentales du langage C# Version 1.0

Calcul Formel et Numérique, Partie I

Cours 3 : Python, les conditions

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Transcription:

IPT : cours 5 Les instructions de base en MPSI : Prytanée National Militaire Pascal Delahaye 3 novembre 2015 1 Structure d un programme Les programmes en se tapent dans la fenêtre Editeur de Spyder Structure d un programme : (Rédaction du programme) ##### Importation des fonctions utiles from module1 import f1, f2 from module2 import g1, g2 ##### Définition du programme def nom_programme(var_1, var_2, ): instruction1 instruction2 CONSOLE : (utilisation du programme) ##### Utilisation du programme nom_programme(valeur_1, valeur_2, ) 1

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ Remarque 1 Avant d exécuter un programme, il faut commencer par l enregistrer Vous pouvez le faire dans un répertoire personnel sur le disque dur de l ordinateur ou sur une clé USB On peut alors le lancer en tapant sur la touche F5 Remarque 2 Après avoir appuyé sur la touche F5, la fonction que l on vient de créer dans l éditeur peut être utilisée depuis la console dédiée à celui-ci On utilise la même commande : nom programme(valeur 1, valeur 2, ) Exemple 1 Taper dans l éditeur le programme suivant : ##### Importation des fonctions utiles (aucune ici!) ##### Définition de la fonction "somme" CONSOLE : def somme(a,b): c = a+b print("a + b =", c) ##### Utilisation de la fonction "somme" somme(2,-3) La construction d un programme doit respecter certaines règles de syntaxe Analysons la façon dont le programme précédent a été rédigé : Dans le programme ci-dessus, nous : 1 Définissons une fonction de deux variables appelée somme qui comprend deux instructions : la première instruction crée une variable c qui contient la valeur a+b la deuxième instruction demande d afficher le résultat obtenu précédemment 2 Appelons cette fonction pour les valeurs a = 2 et b = -3 Remarque 3 Voici une version interactive du programme précédent : def somme(): print("nous allons calculer la somme de deux nombres") a = eval(input("entrer une premiere vale ur : ")) b = eval(input("entrer une deuxieme valeur : ")) print("la somme des deux valeurs est : ", a+b) 2

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ Même si l objectif reste l addition de deux nombres, nous notons ici plusieurs différences avec le programme précédent: 1 La fonction somme() n a plus de variable C est lors de l exécution du programme que les valeurs de a et b sont demandées à l utilisateur grâce à la commande eval(input()) 2 La fonction input() utilisée sans le eval() donne automatiquement la structure de chaîne de caractères aux valeurs entrées au clavier 2 Les principales instructions! 21 L affectation L affectation consiste à attribuer une valeur à une variable L instruction se présente sous la forme suivante : Affectation d une variable A = a On affecte la valeur a à la variable A 1 A repésente le nom de la variable 2 a représente la valeur que l on attribue à cette variable Remarque 4 Si A n a pas encore été créée, l affectation engendre en même temps la création de la variable A 22 L impression à l écran Impression à l écran print("texte que l on souhaite imprimer") print(a) print("texte",a) Le texte entre guillemets s imprime à l écran Le contenu de la variable A s imprime à l écran Le texte et le contenu de A s impriment à l écran 23 Le renvoi d une valeur Un programme doit renvoyer un résultat à l utilisateur, en général sous la forme d une impression à l écran Cependant, certains programmes destinés à construire des programmes plus complexes (appelé des sous-programmes), génèrent un résultat qui n est pas destiné à être affiché à l écran mais qui doit être utilisé dans un traitement ultérieurement Dans ce cas, le résultat est renvoyé par la commande return Renvoi d une valeur return A La valeur de la variable A est renvoyée La structure dans l éditeur est alors la suivante : 3

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ ##### Définition des sous-programmes def sous_prog1(): instructions return A def sous_prog2(): instructions return A ##### Définition du programme principal def prog_principal(): instructions utilisant les sous programmes précédents print() Exemple 2 Un exemple : ##### Définition des sous-fonctions def somme(x,y): return x+y def produit(x,y): return x*y **** Renvoie la somme de 2 nombres **** Renvoie le produit de 2 nombres ##### Définition de la fonction principale def calcul(x,y): **** Renvoie le double de la somme de 2 nombres print(produit(somme(x,y),2)) CONSOLE : ##### Utilisation de la fonction principale calcul(2,3) 24 Les structures de contrôle On utilise une structure de contrôle lorsque la série d instructions à effectuer par l ordinateur dépend de la valeur d une condition booléenne La structure de contrôle utilisée par doit respecter la syntaxe suivante : Structure de contrôle Simple : if condition : instruction 1 else : instruction a Si la condition est vérifiée, faire alors la première série d instructions, sinon, faire la seconde 4

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ Exemple 3 Les solutions réelles d une équation du second degré dépendent de la valeur du discriminant Ce qui donne le programme suivant : def solution (a,b,c) : Delta = b**2-4*a*c if Delta < 0 : print("il n y a pas de solutions réelles") else : print("il y a une ou deux solutions réelles") Dans l exemple précédent, on aimerait bien utiliser une structure de contrôle faisant apparaître 3 conditions Cela est possible grâce à la structure : Structure de contrôle Multiple : if condition 1 : instruction a elif condition 2 : instruction a else instruction a Si la condition 1 est vérifiée, faire alors la première série d instructions, sinon, si la condition 2 est vérifiée faire la seconde série d instructions et sinon, faire la dernière Exemple 4 Le programme précédent se transforme alors de la façon suivante : from math import sqrt def solution (a,b,c) : Delta = b**2-4*a*c if Delta < 0 : print("il n y a pas de solutions réelles") elif Delta == 0 : print("il y a une unique solution réelle : ", -b/(2*a)) else : print("il y a deux solutions réelles distinctes : ", (-b+sqrt(delta))/(2*a), " et ",(-b-sqrt(delta))/(2*a)) 25 Les boucles for On emploit une boucle for lorsque l on souhaite effectuer les mêmes instructions un nombre de fois déterminé 5

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ Définition 1 : Itérable Les 3 structures de données liste, chaine de caractères et tuple, vues en début d année sont des itérables Nous verrons plus tard qu elles partagent un certain nombre de fonction communes dont len() Elles sont caractérisées par le fait qu elles correspondent à une séries de composantes 1 la liste [1,2,3,4] a pour composantes les valeurs 1, 2, 3 et 4 2 la chaine bahut a pour composantes les lettres b, a, h, u et t 3 le tuple (a,b,c,d) a pour composante les valeurs a, b, c et d Une boucle for a la structure suivante : Structure d une boucle for : for i in iterable : instruction_1 instruction_2 instruction_n Pour i parcourant tour à tour toutes les composantes de l itérable, effectuer la série d instructions Remarque 5 La variable courante i variant souvant de p à q par pas de 1, l itérable choisi sera la liste donnée par : range(p,q+1) Exemple 5 1 Affichages multiples : Si l on souhaite afficher tous les nombres pairs de 0 à 20 : for i in range(1,11) : print(2*i) 2 Si l on souhaite calculer la somme S 100 = 100 k=1 1 k : S = 0 for i in range(1,101) : S = S + 1/i Exemple 6 Contruire les programmes permettant de calculer : 1 n! 2 a b Exercice : 1 ( ) Construire un programme de codage d un texte dont le principe est de décomposer le texte en deux textes regroupant pour le premier les lettres de rang paire et pour le deuxième les lettres de rang impaire Construire ensuite la procédure de décodage associée 6

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ 26 Les boucles while Lorsque l on souhaite effectuer une série d instructions un nombre de fois difficile à déterminer par avance, on utilise une boucle while Les boucles while se structurent de la façon suivante : Structure des boucles while while "condition booléenne" : instruction 1 instruction 2 Tant que la condition est vérifiée, on effectue les instructions qui suivent Remarque 6 1 Il est possible de remplacer une boucle for par une boucle while mais cela n a pas grand intérêt 2 Les boucle while présente un risque de boucle infinie Pour éviter cela, il faut s assurer que la condition est bien modifiée par les instructions Exemple 7 Deux exemples de boucles infinies : # Exemple 1 # Exemple 2 S = 0 L = [] while S == 0 : while 0 == 0 : print("je suis une boucle infinie!") Lappend(1) Dans l exemple 1, le programme ne se termine jamais, seule une action de l utilisateur peut l interrompre Dans l exemple 2, le programme s arrête avec un message d erreur car la liste L atteind une taille maximale u 0 = A Exemple 8 La suite de Syracus est définie de la façon suivante : u k+1 = u k /2 si u k est pair u k+1 = 3u k +1 si u k est impair Que pensez-vous du programme suivant? def syracus(a) : U=A while U!= 1 : if U\%2 = 0 : U = U/2 else : U = 3U + 1 Exemple 9 Programme de jeu où il s agit de deviner un entier compris entre 0 et 9 from math import floor from random import random def jeu() : inconnu = int(10*random()) guess = -1 while guess!= inconnu : guess = eval(input("devinez un entier compris entre 0 et 9 : ")) print("enfin gagné!") 7

MPSI - 2015/2016 Premiers programmes en http://pascaldelahaye1freefr/ Améliorer ce programme afin : 1 qu il renvoie le nombre d essais qu il vous a fallu pour trouver le nombre inconnu 2 qu il indique à l utilisateur si le nombre proposé est trop grand ou trop petit Quelques situations usuelles à connaître : 1 Suites divergeant vers + : Ecrire en prseudo-langage, un programme permettant de savoir à partir de quelle valeur de n le terme général u n de la suite dépasse une valeur A Application : (u n ) définie par u n = 2 Suites adjacentes : n k=1 1 k Ecrire en pseudo-langage, un programme qui donne une approximation de la limite commune de deux suites adjacentes (u n ) et (v n ) à ε près Application : On considère les deux suites suivantes : (u n ) : u n = n k=1 1 k! (v n ) : v n = u n + 1 n! Nous verrons en cours de math que les suites (u n ) et (v n ) sont adjacentes et convergent vers e Concevez un programme donnant la valeur de e à une erreur ε près Exercice : 2 ( ) Concevez un programme permettant de tester si un entier naturel est un nombre premier 8