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)

    a- Une fonction qui ne fait rien

    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.

    b - Variable locale vs variable globale

    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.

    Coller le code ici

    Quel est le type de donnée de resu ?

    Est-ce utile de retourner a et b ?

    c- Utiliser les valeurs retournées

    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 pour afficher, en deuxième ligne, l'opération de soustraction en se basant sur l'exemple de l'addition.

    Coller le code ici

    d- Créer une fonction CalcTVA()

    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 le 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€"

    Coller le code ici

    e- Créer une fonction Rect()

    Partie Fonction :

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

    Partie Programme principal :

    Tant que la largeur et la longueur sont positives :

    • 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

    Coller le code ici

    f- Créer une fonction SconvHMS()

    Partie Fonction :

    Créer une fonction SconvHMS(t) qui convertit la durée t exprimée en secondes en une durée heure, minutes et secondes.
    La fonction retournera ces trois valeurs.

    Partie Programme principal :

    Tant que t est positif :

    • demander à l’utilisateur la durée t,
    • afficher “La durée ... secondes fait ... h - ... mn - ... s"

    Coller le code ici