Les fonctions

Intérêt des fonctions
 
Les fonctions sont très utiles pour organiser et optimiser le codage.
Un programme peut en effet être décomposé en plusieurs parties :
chaque partie peut faire l'objet d'une fonction comme le montre le schéma suivant.
structurerCodePrincipe
Le schéma montre aussi qu'une même fonction peut être utilisée plusieurs fois : cela évite d'avoir plusieurs fois le même code dans un même programme.
Vous noterez aussi l'importance de mettre des commentaires : cela améliore la lisibilité du programme.
 
L'organisation en fonction et les commentaires contribuent à faciliter la mise au point des programmes en décomposant le travail en différentes parties.

Certains langage de programmation utilise le terme de procédure comme équivalent des fonctions.

Une fonction se caractérise comme suit :

fonctionPrincipe

Une fonction peut utiliser des paramètres pour réaliser un traitement donné. Ce n'est pas une obligation, mais généralement il y a un ou plusieurs paramètres donnés à la fonction.

La fonction peut retourner des valeurs, c'est à dire que le résultat du traitement en renvoyé. Ce n'est pas non plus une obligation de retourner des valeurs !

Plusieurs langages de programmation utilise le mot clef return suivi des variables à retourner pour renvoyer celles-ci.

Fonction en python
 

Faire les exercices de David Roche sur les fonctions. (A faire vous-même 16 à 21)

Exercice a

Tester le code suivant :

def ditBonjour(nom, age):
	phrase = f"Bonjour {nom}, vous avez {age} ans."
ditBonjour('Baptiste',14)
ditBonjour('Ninon',11)
ditBonjour('Titouan',7)

Pourquoi cela n’affiche rien ?

Corriger le code de la fonction pour que cela affiche les 3 phrases.

Exercice b

Tester le code suivant :

def add(a,b):
    c=a+b
    return (a,b,c)
resu = add(5,8)
print(f"{a} + {b} = {c}")

Pourquoi y a t-il une erreur ?

Corriger le code pour que cela affiche le résultat tout en conservant la ligne 3 telle quelle.

Quel est le type de donnée de resu ?

Est-ce utile de retourner a et b ?

Exercice c

Tester le code suivant afin de comprendre l'écriture de ope(nb1,nb2)[0] :

def ope(a,b):
    c=a+b
    d=a-b
    return (c,d)
nb1=int(input("Premier nombre ?"))
nb2=int(input("Deuxième nombre ?"))
print(f"{nb1} + {nb2} = {ope(nb1,nb2)[0]}")

Compléter le code afin d'afficher en deuxième ligne l'opération de soustraction en se basant sur l'exemple de l'addition.

Exercice d

Partie Fonction :

Créer une fonction CalcTVA qui calcule la TVA à partir des paramètres du prix hors taxe et du montant du taux de TVA.
Cette fonction doit retourner le montant de la taxe et le prix total

Partie Programme principal :

Tant que le prix est positif :

  • demander le prix hors taxe
  • demander la taux de TVA
  • appeler la fonction CalcTVA
  • Afficher les résultats en respectant la présentation : "Prix hors Taxe: 100€ --- Taux TVA: 20% --- Prix TTC: 120€"

Exercice e

Partie Fonction :

Créer une fonction Rect qui calcule le périmètre et l’aire d'un rectangle à partir de ses arguments que sont la longueur et la largeur.
La fonction retournera le périmètre et l'aire.

Partie Programme principal :

Tant que la largeur et la longueur sont positifs :

  • demander à l’utilisateur la longueur et la largeur du rectangle,
  • afficher “le périmètre est de” suivi de la valeur retournée par la fonction
  • afficher “l’air est de” suivi de la valeur retournée par la fonction