Les fonctions en algorithmique

Paramètres et valeur retournée


SPOPI / DSIIR

Lycée Robert Schuman, Metz

Une fonction pour réutiliser un calcul

Clara Commit prépare un calcul de commande pour la DSIIR.

Le même calcul doit fonctionner pour plusieurs prix et plusieurs quantités.

Mission : écrire une fonction de calcul, utiliser son résultat et vérifier plusieurs commandes.

Prérequis : variables, affectation et conditions.

Production attendue : un court pseudo-code et sa trace d’exécution.

Le rôle d’une fonction

Une fonction regroupe des instructions sous un nom.

Elle peut recevoir des données dans des paramètres.

Dans ce cours, nos fonctions retournent une valeur au programme appelant.

La définition décrit le traitement. Un appel déclenche son exécution.

Exemple : double reçoit 4 et retourne 8.

Une définition et un appel

Fonction double(nombre)
    Retourner nombre × 2
FinFonction

resultat ← double(4)
Afficher resultat

double : nom de la fonction.

nombre : paramètre.

4 : argument, la valeur transmise lors de l’appel.

resultat reçoit 8. Afficher resultat présente 8 à l’écran.

La flèche ← signifie « reçoit ».

La trace d’un appel

Pour resultat ← double(4) :

Le programme appelle double avec la valeur 4.

Le paramètre nombre reçoit 4.

La fonction calcule 4 × 2.

Retourner transmet 8 et termine cet appel.

Le programme reprend et affecte 8 à resultat.

Définir la fonction seule ne lance aucun calcul.

À toi : deux appels

Fonction triple(nombre)
    Retourner nombre × 3
FinFonction

a ← triple(2)
b ← triple(5)
Afficher a
Afficher b

Indique la valeur du paramètre et le résultat de chaque appel.

Quels nombres apparaissent, dans quel ordre ?

Écris un appel pour conserver le triple de 7 dans c.

Correction : deux appels

Premier appel : nombre vaut 2, triple retourne 6, a reçoit 6.

Second appel : nombre vaut 5, triple retourne 15, b reçoit 15.

Affichages : 6 puis 15.

c ← triple(7)

c reçoit 21.

Chaque appel utilise la valeur qu’on lui transmet.

Deux paramètres

Fonction montant(prixUnitaire, quantite)
    Retourner prixUnitaire × quantite
FinFonction

total ← montant(25, 3)

prixUnitaire reçoit 25. quantite reçoit 3.

La fonction retourne 75, que total conserve.

Les arguments suivent l’ordre des paramètres.

Pour cinq articles à 8 € : montant(8, 5) retourne 40.

Les données de cet exemple sont supposées valides, sans réduction.

Les paramètres sont locaux

Fonction double(nombre)
    Retourner nombre × 2
FinFonction

saisie ← 4
resultat ← double(saisie)

Dans l’appel, nombre vaut 4.

Dans le programme principal, saisie reste à 4 et resultat vaut 8.

Le paramètre nombre appartient à la fonction.

Le programme principal récupère la valeur retournée dans resultat.

Ici, nous manipulons uniquement des valeurs numériques.

Afficher et Retourner

Afficher présente une information à l’écran.

Retourner transmet une valeur au programme appelant et termine l’appel.

x ← double(3)

x vaut 6. Rien ne s’affiche.

Afficher x

L’écran affiche maintenant 6.

Un simple affichage dans la fonction ne fournit pas un résultat réutilisable dans un calcul.

À toi : un résultat à réutiliser

Taux de TVA fixé à 20 % pour cet exercice.

Fonction prixTTC(prixHT)
    Afficher prixHT × 1.20
FinFonction

total ← prixTTC(10) + 5
Afficher total

Une instruction dans la fonction doit changer.

Corrige-la pour permettre le calcul.

Donne la valeur retournée et la valeur finale de total.

Correction : retourner le montant

Fonction prixTTC(prixHT)
    Retourner prixHT × 1.20
FinFonction

total ← prixTTC(10) + 5
Afficher total

prixTTC(10) retourne 12.

total reçoit 12 + 5, soit 17.

Le seul affichage est 17.

Sans la dernière ligne, total vaut toujours 17 et rien ne s’affiche.

Une condition dans une fonction

Livraison : 5 € sous 50 €, offerte à partir de 50 €.

Fonction frais(montantCommande)
    Si montantCommande ≥ 50 Alors
        Retourner 0
    Sinon
        Retourner 5
    FinSi
FinFonction

Chaque branche fournit un résultat.

Retourner termine l’appel en cours. Le programme principal continue.

Deux fonctions dans un programme

Avec les fonctions montant et frais définies précédemment :

sousTotal ← montant(10, 3)
livraison ← frais(sousTotal)
total ← sousTotal + livraison
Afficher total

montant retourne 30.

frais reçoit 30 et retourne 5.

total vaut 35. L’écran affiche 35.

frais utilise le montant déjà calculé : elle n’a pas besoin du prix unitaire et de la quantité.

À toi : vérifier le seuil

Conserve un prix unitaire de 10 €.

Reprends le programme précédent pour les quantités 3, 5 et 6.

Pour chaque essai, note sousTotal, livraison et total.

Quel essai vérifie exactement le seuil de gratuité ?

Critères de réussite :

  • transmettre sousTotal à frais ;
  • inclure 50 € dans la gratuité ;
  • ajouter les frais au sous-total ;
  • distinguer calcul et affichage.

Correction et trace à retenir

L’essai avec 5 articles vérifie exactement le seuil de 50 €.

À retenir : la définition décrit le traitement, l’appel l’exécute, les paramètres reçoivent les données et Retourner transmet le résultat.

Entraînement associé : exercices Algo 13 à 16 du parcours, avec indices et corrigés.