Fonctions

Analyses de fonctions

Fonctions sans argument

Que renvoient les fonctions suivantes ?

(donner une réponse avant de tester avec un interpréteur Python)

Lesquelles de ces déclarations de fonctions provoquent une erreur ? et pourquoi ?

 

Fonctions à un seul argument

Que s'affiche-t-il lors de l’exécution des scripts suivants ?

(donner une réponse avant de tester avec un interpréteur Python)

 

Fonctions à plusieurs arguments

Que s'affiche-t-il lors de l’exécution des scripts suivants ?

(donner une réponse avant de tester avec un interpréteur Python)

 

 

 


Fonctions mathématiques

Fonctions simples

Implémenter en Python les fonctions mathématiques suivantes :

  • \(aire:r \rightarrow \pi r^2\)
  • \(f:x \rightarrow e^{-x}\)
  • \(dB:g \rightarrow 20 \log{(g)}\)

Tester ces fonctions :

  • aire(16)  : 804.247719318987
  • f(54)  : 3.532628572200807e-24
  • dB(21)  : 26.444385894678387

Rappel : les opérateurs en Python
module math

Correction

 

Fonctions avec paramètres

Implémenter en Python les fonctions mathématiques suivantes :

  • \(p2:x \rightarrow ax^2+bx+c\)
  • \(eln:x \rightarrow e^{i -j\ln{x}}\)

Tester ces fonctions :

  • p2(-1.5, 1, 2, -4)  : -4.75
  • eln(8.1, 2, -1)  : 59.85135440133828

Correction

 

Généralisation

Connaissances supplémentaires requises : dictionnaires

  • Écrire en Python une fonction \(g_1:x \rightarrow g_1(x)\) , quelle que soit l'expression de \(g_1(x)\).

par exemple : g1(3, "3*x+2/x")  doit renvoyer 9.666666666666666

  • En déduire une fonction g2()  admettant en plus des paramètres.

par exemple : g2(3, "a*x+b/x", 3, 2)  doit également renvoyer 9.666666666666666

Cette fonction n'est pas encore universelle ! Les noms des paramètres doivent parfaitement coïncider avec ceux de l'expression, et il doit y en avoir autant.

  • Écrire une fonction qui en guise de paramètres d'une expression mathématique, accepte un dictionnaire :

Les **  ici permettent de déclarer à la fonction les couples clef:valeur  d'un dictionnaire comme une série d'arguments avec mot clef (keyword argument) (voir les fonctions). Ces deux déclarations sont équivalentes :

la fonction locals()  renvoie toutes les variables locales de la fonction sous forme d'un dictionnaire

par exemple : g3(-2, "i*x-sqrt(k*x)/(h-x**2)", i = 1, k = -8, h = 5)  doit renvoyer -6

Correction


Tables de multiplication

Connaissances supplémentaires requises : boucles

  • Écrire une fonction table(n)  qui affiche la table de multiplication par n , sous la forme "i x n = j" .

par exemple, table(7)  doit afficher :

 

  • Écrire une fonction table2(n, debut, fin, pas)  qui affiche la table de multiplication par n  depuis dedut  ( "n x debut" ) jusqu'à fin  ( "n x fin" ) en incrémentant de la valeur pas .

par exemple, table2(7, 2, 13, 2)  doit afficher :

Correction


Une fonction comme argument

Connaissances supplémentaires requises : boucles

  • Écrire une fonction evaluer(fct, b_inf, b_sup, n_eval)  qui afficher n_eval  résultats de la fonction fct(x)  pour x  variant de b_inf  à b_sup .

par exemple, soit la fonction :

dans ce cas, evaluer(f, 3, 7, 10)  doit afficher :

  • Modifier la fonction en evaluer2()  pour qu'elle retourne une liste de tuple (x, fct(x)) .

dans ce cas, evaluer2(f, 3, 7, 10)  doit retourner : [(3, 143), (3.4, 205.72), (3.8, 284.76), (4.2, 382.04), (4.6, 499.48), (5.0, 639.0), (5.4, 802.52), (5.8, 991.96), (6.2, 1209.24), (6.6, 1456.28)] 

Correction


Racines

Connaissances supplémentaires requises : structures conditionnelles

  • Écrire une fonction racines(a, b, c)  qui renvoie les racines (si elles existent !) du polynôme de la forme : \(ax^2+bx+c\).

 


e (constante de Néper)

Connaissances supplémentaires requises : boucles

Écrire une fonction e(n)  qui estime la valeur de la constante mathématique \(e\) en utilisant la formule :
\(e=\lim\limits_{n \to \inf}\sum_{i=0}^{n}{\frac{1}{i!}}\)
avec n  le nombre d'itérations de calcul.

Rappel : la fonction Python pour \(x \rightarrow x!\) est factorial()  (module math )

Correction

 


 Lancé de dés

  • Écrire une fonction qui permet de lancer des dès. On souhaite pouvoir définir :

    • le nombre de dès à lancer
    • le nombre de faces des dès (par défaut on lance des dès à 6 faces)

Le résultat du lancé devra être affiché sous la forme "5 4 1"

  •  Écrire une autre fonction permettant d'afficher la valeur de la face d'un dés faces sous la forme :

Ou encore :

 


Nombres romains

  • Écrire une fonction romains(n)  qui convertit un entier n  en écriture romaine.

par exemple  romains(1515)  doit renvoyer la chaîne de caractères : "MDXV"

 

Correction

 



Widget not in any sidebars

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code