Mathématiques1ère

Fonctions définies par programmes
Exercices corrigés

Maîtrisez les fonctions définies par programmes : définition, appel, paramètres, valeur de retour grâce à ces 5 exercices détaillés.

Concepts & Exercices
\(\text{Fonction}(x) \xrightarrow[\text{Paramètres}]{\text{Entrée}} \text{Traitement} \xrightarrow[\text{Valeur de retour}]{\text{Sortie}} \text{Résultat}\)
Structure d'une fonction
⚙️
Paramètres : Variables d'entrée de la fonction.
📤
Valeur de retour : Résultat renvoyé par la fonction.
🔄
Appel : Exécution de la fonction avec des arguments.
📦
Portée : Visibilité des variables dans la fonction.
Exercice 1
Écrire une fonction qui calcule le carré d'un nombre. Tester la fonction avec plusieurs valeurs.
Exercice 2
Écrire une fonction qui calcule la distance entre deux points dans le plan. Utiliser la formule : √[(x₂-x₁)² + (y₂-y₁)²].
Exercice 3
Écrire une fonction qui détermine si un nombre est premier. Tester avec plusieurs valeurs.
Exercice 4
Écrire une fonction qui calcule le PGCD de deux nombres en utilisant l'algorithme d'Euclide.
Exercice 5
Écrire une fonction qui calcule la factorielle d'un nombre. Gérer le cas n = 0.
Corrigé : Exercices 1 à 3
1 Fonction carré
Définition :

Fonction carré : \(f(x) = x^2\), transforme un nombre en son carré.

Structure d'une fonction :
  1. Déclaration du nom de la fonction
  2. Spécification des paramètres d'entrée
  3. Corps de la fonction (instructions)
  4. Valeur de retour
Définition de la fonction
Fonction Carré(x)
  Variables resultat : réel
  Début
    resultat ← x * x
    Retourner resultat
  FinFonction
Étape 1 : Paramètres

La fonction prend un seul paramètre x de type réel

Étape 2 : Traitement

Calcul : resultat ← x * x

Étape 3 : Valeur de retour

Retourner resultat

Étape 4 : Appel de la fonction
Variables a, b, c : réels
Début
  a ← Carré(5)      // a = 25
  b ← Carré(-3)     // b = 9
  c ← Carré(2.5)    // c = 6.25
Fin
Étape 5 : Tableau de tests
Entrée Résultat
00
11
24
39
-24
2.56.25
Réponse finale :

La fonction Carré calcule le carré d'un nombre et retourne le résultat.

Règles appliquées :

Paramètres : Variables d'entrée de la fonction

Valeur de retour : Résultat fourni par la fonction

Appel : Utilisation de la fonction avec des arguments

Point clé 1

La fonction encapsule un traitement réutilisable

Point clé 2

Les paramètres permettent de passer des données à la fonction

2 Distance entre deux points
Définition :

Distance euclidienne : \(d = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}\).

Définition de la fonction
Fonction Distance(x1, y1, x2, y2)
  Variables dx, dy, resultat : réels
  Début
    dx ← x2 - x1
    dy ← y2 - y1
    resultat ← racine_carree(dx*dx + dy*dy)
    Retourner resultat
  FinFonction
Étape 1 : Paramètres

La fonction prend 4 paramètres : x1, y1, x2, y2 (coordonnées des points)

Étape 2 : Calcul des différences

dx ← x2 - x1 (différence des abscisses)

dy ← y2 - y1 (différence des ordonnées)

Étape 3 : Calcul de la distance

resultat ← √(dx² + dy²)

Étape 4 : Appel de la fonction
Variables dist : réel
Début
  dist ← Distance(0, 0, 3, 4)  // Distance entre (0,0) et (3,4)
  // dist = √(9 + 16) = √25 = 5
Fin
Étape 5 : Tableau de tests
Point 1 Point 2 Distance
(0,0)(3,4)5
(1,1)(4,5)5
(0,0)(1,1)√2 ≈ 1.414
(2,3)(2,3)0
Réponse finale :

La fonction Distance calcule la distance euclidienne entre deux points du plan.

Règles appliquées :

Plusieurs paramètres : La fonction peut prendre plusieurs entrées

Calcul intermédiaire : Variables locales pour les calculs

Retour : La fonction renvoie une seule valeur

Point clé 1

Les variables locales à la fonction n'existent que pendant l'exécution

Point clé 2

Les paramètres permettent de rendre la fonction générique

3 Test de primalité
Définition :

Nombre premier : Nombre supérieur à 1 qui n'est divisible que par 1 et lui-même.

Définition de la fonction
Fonction EstPremier(n)
  Variables i, estPremier : entiers
  Début
    Si n <= 1 Alors
      Retourner 0  // Non premier
    FinSi
    
    estPremier ← 1  // Supposé premier
    
    Pour i de 2 à racine_carree(n) Faire
      Si n MOD i = 0 Alors
        estPremier ← 0  // Trouvé diviseur
        Retourner estPremier
      FinSi
    FinPour
    
    Retourner estPremier
  FinFonction
Étape 1 : Cas particuliers

Si n ≤ 1, n n'est pas premier

Étape 2 : Initialisation

estPremier ← 1 (supposé premier)

Étape 3 : Test de divisibilité

On teste les diviseurs de 2 à √n

Si n MOD i = 0, alors i divise n, donc n n'est pas premier

Étape 4 : Optimisation

On n'a besoin de tester que jusqu'à √n

Car si n a un diviseur > √n, il en a un < √n

Étape 5 : Appel de la fonction
Variables resultat : entier
Début
  resultat ← EstPremier(17)  // Retourne 1 (vrai)
  resultat ← EstPremier(15)  // Retourne 0 (faux)
Fin
Étape 6 : Tableau de tests
Entrée Résultat Commentaire
21Premier
31Premier
404 = 2×2
171Premier
25025 = 5×5
291Premier
Réponse finale :

La fonction EstPremier teste si un nombre est premier en cherchant des diviseurs.

Règles appliquées :

Booléen simulé : Utilisation de 0/1 pour représenter vrai/faux

Optimisation : Test jusqu'à √n seulement

Retour anticipé : Quitter dès qu'un diviseur est trouvé

Point clé 1

Le test s'arrête dès qu'un diviseur est trouvé pour optimiser

Point clé 2

Tester jusqu'à la racine carrée réduit considérablement le nombre d'opérations

Corrigé : Exercices 4 à 5
4 Algorithme d'Euclide
Définition :

PGCD : Plus Grand Commun Diviseur de deux nombres.

Algorithme d'Euclide : PGCD(a,b) = PGCD(b, a MOD b) jusqu'à b = 0.

Définition de la fonction
Fonction PGCD(a, b)
  Variables temp : entiers
  Début
    TantQue b ≠ 0 Faire
      temp ← b
      b ← a MOD b
      a ← temp
    FinTantQue
    Retourner a
  FinFonction
Étape 1 : Principe de l'algorithme

PGCD(a,b) = PGCD(b, a MOD b)

On répète jusqu'à ce que b = 0

Lorsque b = 0, PGCD = a

Étape 2 : Boucle d'itération

On remplace a par b et b par a MOD b

On continue tant que b ≠ 0

Étape 3 : Trace de l'exécution (a=48, b=18)

Itération 1: a=48, b=18 → a=18, b=48 MOD 18=12

Itération 2: a=18, b=12 → a=12, b=18 MOD 12=6

Itération 3: a=12, b=6 → a=6, b=12 MOD 6=0

Itération 4: a=6, b=0 → Sortie de la boucle, retourne a=6

Étape 4 : Appel de la fonction
Variables resultat : entier
Début
  resultat ← PGCD(48, 18)  // Retourne 6
  resultat ← PGCD(17, 13)  // Retourne 1
Fin
Étape 5 : Tableau de tests
a b PGCD(a,b)
48186
17131
1002525
731
243612
Réponse finale :

La fonction PGCD implémente l'algorithme d'Euclide pour calculer le plus grand commun diviseur.

Règles appliquées :

Algorithme d'Euclide : Méthode itérative pour le PGCD

Division euclidienne : Utilisation de l'opérateur MOD

Itération : Répétition jusqu'à l'obtention d'un reste nul

Point clé 1

L'algorithme d'Euclide est très efficace et converge rapidement

Point clé 2

Le PGCD est le dernier reste non nul dans la suite des divisions

5 Calcul de factorielle
Définition :

Factorielle : \(n! = 1 \times 2 \times 3 \times ... \times n\), avec \(0! = 1\).

Définition de la fonction
Fonction Factorielle(n)
  Variables i, resultat : entiers
  Début
    Si n = 0 Alors
      Retourner 1  // Convention : 0! = 1
    FinSi
    
    resultat ← 1  // Initialisation pour la multiplication
    
    Pour i de 1 à n Faire
      resultat ← resultat * i
    FinPour
    
    Retourner resultat
  FinFonction
Étape 1 : Cas particulier

Par convention mathématique : 0! = 1

Étape 2 : Initialisation

resultat ← 1 (initialisation pour la multiplication)

Étape 3 : Calcul itératif

Pour i de 1 à n : resultat ← resultat * i

On multiplie successivement tous les entiers de 1 à n

Étape 4 : Trace de l'exécution (n=5)

i=1: resultat=1×1=1

i=2: resultat=1×2=2

i=3: resultat=2×3=6

i=4: resultat=6×4=24

i=5: resultat=24×5=120

Étape 5 : Appel de la fonction
Variables resultat : entier
Début
  resultat ← Factorielle(5)  // Retourne 120
  resultat ← Factorielle(0)  // Retourne 1
Fin
Étape 6 : Tableau de tests
n n!
01
11
22
36
424
5120
6720
Réponse finale :

La fonction Factorielle calcule la factorielle d'un nombre en multipliant tous les entiers de 1 à n.

Règles appliquées :

Convention : 0! = 1 par définition mathématique

Accumulation : Multiplication cumulative des entiers

Initialisation : Valeur initiale de 1 pour la multiplication

Point clé 1

La factorielle croît très rapidement avec n

Point clé 2

Le cas n=0 doit être traité spécifiquement selon la convention

Cours bien détaillé
\(\text{Fonction}(paramètres) \rightarrow \text{traitement} \rightarrow \text{retour}(résultat)\)
Structure d'une fonction
⚙️
Paramètres : Variables d'entrée de la fonction.
📤
Valeur de retour : Résultat fourni par la fonction.
🔄
Appel : Exécution de la fonction avec des arguments.
📦
Portée : Visibilité des variables dans la fonction.
💡
Conseil : Donner des noms explicites aux fonctions et paramètres
🔍
Attention : Vérifier les cas limites dans les fonctions
Astuce : Réutiliser des fonctions existantes pour créer des fonctions plus complexes
📋
Méthode : Documenter les fonctions avec leur objectif et paramètres
Vérification : Tester les fonctions avec divers jeux de données
Méthodologie de création de fonctions :
  1. Analyser le problème : Identifier les entrées et sorties attendues
  2. Choisir le nom : Donner un nom explicite à la fonction
  3. Définir les paramètres : Spécifier les variables d'entrée
  4. Écrire le corps : Implémenter le traitement
  5. Spécifier la sortie : Déterminer la valeur de retour
Règles fondamentales :
  • Une fonction a un nom unique dans le programme
  • Les paramètres sont les variables d'entrée de la fonction
  • Une fonction retourne une seule valeur
  • Les variables locales à la fonction n'existent que pendant son exécution
  • Une fonction peut appeler d'autres fonctions
\(\text{Fonction nomFonction}(param1, param2, ...) \text{ Retourne valeur}\)
Syntaxe générale
Fonctions définies par programmes Applications de programmation