MPSI /2018 Programmation des fonctions Rédigée par Pascal Delahaye

Documents pareils
Présentation du langage et premières fonctions

STAGE IREM 0- Premiers pas en Python

Initiation à la programmation en Python

Cours Informatique Master STEP

TP 1. Prise en main du langage Python

Corrigé des TD 1 à 5

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Initiation à l algorithmique

Chapitre 2. Eléments pour comprendre un énoncé

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Algorithmique et Programmation, IMA

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)

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Cours 7 : Utilisation de modules sous python

Cours d Analyse. Fonctions de plusieurs variables

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

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

Maple: premiers calculs et premières applications

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

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

INF 321 : mémento de la syntaxe de Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Calcul Formel et Numérique, Partie I

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

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

LA REGLE SEMI-CIRCULAIRE

Simulation de variables aléatoires

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

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

Procédure de sauvegarde pour AB Magique

Chapitre 2 Le problème de l unicité des solutions

Correction du Baccalauréat S Amérique du Nord mai 2007

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

Utilisez Toucan portable pour vos sauvegardes

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Java Licence Professionnelle CISII,

Licence Sciences et Technologies Examen janvier 2010

Algorithmique et programmation : les bases (VBA) Corrigé

Découverte de Python

I. Introduction aux fonctions : les fonctions standards

Commun à tous les candidats

Tutoriel Mathematica Les graphiques

Cours d algorithmique pour la classe de 2nde

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Autres solutions de contrôle à distance d utilisation gratuite

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Notes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables

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

Algorithmique & programmation

MANUEL UTILISATEUR SOPISAFE V 3.5

Poker. A rendre pour le 25 avril

TP1 : Initiation à Java et Eclipse

Résolution d équations non linéaires

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

MIS 102 Initiation à l Informatique

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Polynômes à plusieurs variables. Résultant

Les deux points les plus proches

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

Algorithmique, Structures de données et langage C

Mathématiques I Section Architecture, EPFL

L informatique en BCPST

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

TP1 : Initiation à Java et Eclipse

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Initiation à la programmation OEF pour Wims (exercices).

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

TRIGONOMETRIE Algorithme : mesure principale

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

Récupération de données perdues

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

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

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Les classes en Python

Chapitre 2 Devine mon nombre!

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Réaliser un ing avec Global Système

1 Lecture de fichiers

Continuité d une fonction de plusieurs variables

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

NOM : Prénom : Date de naissance : Ecole : CM2 Palier 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Logique. Plan du chapitre

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Introduction au langage C

as Architecture des Systèmes d Information

I00 Éléments d architecture

Optimisation des fonctions de plusieurs variables


Examen Médian - 1 heure 30

Guide de l utilisateur Faronics System Profiler Standard

Transcription:

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ Fiche n 03 : Programmation des fonctions et procédures Rédigée par Pascal Delahaye Cette fiche contient des élèments de cours à assimiler pour le cours de la semaine suivante Vous devez impérativement : Travailler avec un ordinateur afin de vérifier une à une les différentes instructions qui sont présentées Vérifier et confirmer votre assimilation en effectuant tous les exercices d entrainement proposés à la fin du poly Prévoir environ 1h30 de travail personnel Une évaluation de 10mn sera effectuée au prochain cours pour vérifier la qualité de votre travail d autoapprentissage I] Introduction Nous pouvons distinguer 3 types de programmes : 1) Les séries d instructions On demande simplement à l ordinateur d effectuer un certain nombre d opérations que l on appelle aussi des instructions instruction 1 instruction 2 instruction n Exemple 1 Test de la parité d un nombre a = eval(input("choisissez un nombre entier")) # Le programme demande de choisir un entier if a % 2 == 0 : print(a," est une nombre pair") # Le programme affiche si l entier choisi else : print(a," est une nombre impair") # est pair ou impair 1

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ 2) Les procédures Une procédure est une série d instructions : qui porte un nom qui effectue un travail dont le résultat dépend de variables (appelées arguments) qui ne renvoie pas de résultat Pour définir une procédure, on utilise la commande def def nom_de_la_procedure(var1, var2 ): # les variables sont juste des noms from *** import ***, *** # importation des fonctions utilisées instruction 1 # une indentation de 4 espaces est obligatoire instruction 2 # une indentation de 4 espaces est obligatoire # une indentation de 4 espaces est obligatoire # une indentation de 4 espaces est obligatoire instruction n # une procédure ne renvoie rien Exemple 2 Une procédure ajout taille() qui ajoute la taille d une liste au niveau de sa dernière composante : def ajout_taille(l): n = len(l) Lappend("taille = " + str(n)) # n prend pour valeur la taille de la liste L # on ajoute une phrase à la fin de la liste L On remarque que ce programme ne renvoie rien, mais modifie le contenu de la donnée L qui se trouve en argument Exemple 3 Une procédure intéractive somme() pour calculer la somme de deux nombres : def somme(): print("nous allons calculer la somme de deux nombres") a = eval(input("entrer une premiere valeur : ")) # l odinateur interroge l utilisateur b = eval(input("entrer une deuxieme valeur : ")) # l odinateur interroge l utilisateur print("la somme des deux valeurs est : ", a+b) # l odinateur affiche à l écran le résultat On remarque que ce programme ne renvoie rien, mais se contente d afficher un résultat à l écran 3) Les fonctions Une fonction est une série d instructions : qui porte un nom qui effectue un travail dont le résultat dépend de variables (appelées arguments) qui renvoie une valeur que l on peut stocker, si on le souhaite, dans une variable Pour définir une fonction, on utilise la commande def et on renvoie une valeur grâce à la commande return def nom_de_la_procedure(var1, var2 ): from *** import ***, *** instruction 1 instruction 2 instruction n return valeur # var1, var2 sont des arguments (juste des noms) # importation des fonctions utilisées # Bien respecter le décallage de 4 espaces # Une fonction renvoie une valeur 2

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ Remarque 1 Les fonctions mathématiques vérifient les mêmes caractéristiques Ainsi par exemple, la fonction mathématique ϕ définie par ϕ(f,a,b) = Porte le nom ϕ f une fonction continue sur R Dépend de 3 variables : a un réel b un réel Renvoie une valeur ϕ(f,a,b) qui est l intégrale de f entre a et b b a f(t) dt : Exemple 4 Une fonction booléenne pair() qui teste la parité d un entier : def pair(a) : if a%2 == 0 : return True else : return False L instruuction pair(4) renvoie True tandis que pair(5) renvoie False Exemple 5 Une fonction booléenne implique(p,q) qui renvoie True si P Q : Rappel : la proposition A B est vraie lorsque A est fausse ou lorsque A et B sont simultanément vraies def implique(p,q) : return (not P) or (P & Q) L instruction implique(2 == 3, True) renvoie True tandis que implique(3 > 2, 1==2 ) renvoie False Exemple 6 Comme en mathématiques, il est possible de composer des fonctions entre elles Programmation des fonctions somme(), produit() et calcul() ##### 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): produit(somme(x,y),2) # Renvoie le double de la somme de 2 nombres ##### Utilisation de la fonction calcul() calcul(2,3) # On appelle la fonction avec les arguments 2 et 3 L instruction calcul(2,3) renvoie 10 II] Les fonctions Lambda Pour les fonctions ou les procédures ne contenant qu une seule instruction, propose la syntaxe suivante 3

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ ## DEFINITION de la fonction : f = lambda var1, var2 : instruction # f est une fonction d arguments var1, var2 # Ici on n utilise pas la commande "return" ## UTILISATION de la fonction f(val1, val2) # val1 et val2 sont des valeurs particulières de var1 # et var2 1 La fonction f définie par f(x) = x 2 1 : f = lambda x : x**2-1 f(3) # Cela renvoie 8 2 La fonction f définie par f(x,y) = x y : f = lambda x, y : x**y f(3,2) # Cela renvoie 9 3 La fonction inverse qui inverse l ordre des composantes d une liste : inverse = lambda L : Lreverse() L = [1,2,3] inverse(l) L # L ordre des composantes de L a été inversé 4 La fonction compose qui renvoie f g(x) : compose = lambda f, g, x : f(g(x)) compose(lambda x : x**2, lambda x : 1/x, 3) 5 La fonction integr qui renvoie b a f(t) dt : from sympy import var, integrate var( x ) # importation depuis sympy # x devient ainsi une variable formelle integr = lambda a,b,f : integrate(f(x),(x,a,b)) integr(0,4,lambda x : x**2) III] La programmation en De façon générale sous SPIDER, les programmes en se tapent dans la fenêtre Editeur et s utilisent dans la fenêtre console Structure d un programme : 4

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ ## REDACTION des PROGRAMMES : (dans l éditeur) def nom_fonction1(var_1, var_2, ): from *** import ***, *** instruction1 instruction2 def nom_fonction2(var_1, var_2, ): from *** import ***, *** instruction1 instruction2 # les arguments sont juste des noms de variables # importation des fonctions utilisées # les arguments sont juste des noms de variables # importation des fonctions utilisées ## UTILISATION du PROGRAMME : (dans la console) nom_fonction(valeur_1, valeur_2, ) # Les valeurs sont des données explicites 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 Après avoir appuyé sur la touche F5, la fonction que l on vient éventuellement de créer dans l éditeur peut être utilisée depuis la console dédiée à celui-ci On appelle alors la fonction de la façon suivante : IV] Exercices Exercice : 1 Construire les fonctions lambda : nom programme(valeur 1, valeur 2, ) 1 d arguments deux flottants x et y et qui renvoie xcosy 2 d arguments deux listes L1 et L2 et qui renvoie true si les premiers éléments sont égaux 3 d arguments x et un entier n et qui renvoie la liste contenant n fois la valeur x 4 d argument un entier n et qui renvoie true si n est un carré (importer sqrt et floor) 5 d arguments une fonction f et un flottant x et qui renvoie f f(x) Exercice : 2 Construire les procédures : 1 sans argument qui demande à l utilisateur son nom, puis son prénom et qui affiche : tu t appelles 2 d argument une liste et qui échange les deux premières composantes 3 d arguments deux listes de 2 flottants représentant des vecteurs et qui dit si les vecteurs sont colinéaires 4 d argument une liste a trois composantes et qui effectue une permutation circulaire de celles-ci Exercice : 3 Construire les fonctions : 1 d arguments deux listes à deux composantes et qui renvoie la liste obtenue par différence des deux listes précédentes 5

MPSI - 2017/2018 Programmation des fonctions http://pascaldelahaye1freefr/ 2 sans argument qui choisit deux entiers au hasard entre 1 et 3 et qui renvoie True si ces entiers sont égaux et False sinon 3 d arguments f, x et y et qui demande à l utilisateur de choisir un entier a puis renvoie a f(x y) 4 d arguments deux propositions booléennes et renvoie True si ces propositions sont équivalentes (c est à dire si elles ont même valeur de vérité) Exercice : 4 Programmation : 1 Quels sont les 3 types de programmes que l on peut distinguer? 2 Quelle est la différence entre une fonction et une procédure? 3 Quelle est la différence entre une fonction et une fonction lambda? 4 Dans quelle fenêtre de SPIDER : (a) rédige-t-on les programmes? (b) utilise-t-on les fonctions ou les procédures programmées? 6