CoursNumérique et sciences informatiques · tle
Comment écrire des programmes plus puissants et mieux organisés ? La spécialité NSI de terminale approfondit la programmation avec deux notions clés : la récursivité et la programmation orientée objet.
Le cours
Une fonction récursive est une fonction qui s'appelle elle-même pour résoudre un problème, en le ramenant à un cas plus simple. Cela permet de résoudre élégamment des problèmes qui se décomposent naturellement en sous-problèmes semblables.
Une fonction récursive s'appelle elle-même.
Calculer une factorielle peut se faire de façon récursive (en s'appuyant sur le cas précédent).
Toute récursivité repose sur deux éléments : un cas de base (le cas le plus simple, qui arrête les appels) et un appel récursif (qui ramène le problème à un cas plus simple). Sans cas de base, la fonction s'appellerait indéfiniment : le cas de base est essentiel.
Une récursivité a un cas de base et un appel récursif.
Le cas de base arrête la récursivité ; sans lui, les appels seraient infinis.
La programmation orientée objet organise le code autour d'objets, qui regroupent des données (attributs) et des actions (méthodes). On définit des classes (des modèles) à partir desquelles on crée des objets. Cela structure le programme et facilite sa réutilisation.
La programmation objet regroupe données et actions dans des objets.
Une classe « Voiture » définit des attributs (couleur, vitesse) et des méthodes (démarrer).
Une classe est un modèle qui décrit un type d'objet ; un objet est une réalisation concrète de cette classe. Par exemple, à partir d'une classe « Voiture », on peut créer plusieurs objets voitures, chacun avec ses propres caractéristiques. Cela rend le code clair et modulaire.
La classe est le modèle, l'objet en est un exemplaire.
À partir de la classe « Voiture », on crée des objets : une voiture rouge, une voiture bleue…
Ce qu'il faut absolument retenir
Vérifie ta compréhension
Exercice 1Qu'est-ce qu'une fonction récursive ?
Une fonction récursive est une fonction qui s'appelle elle-même pour résoudre un problème en le simplifiant.
Exercice 2Que doit toujours comporter une récursivité ?
Une récursivité doit comporter un cas de base (qui arrête les appels) ; sans lui, les appels seraient infinis.
Exercice 3Qu'est-ce qu'une classe en programmation objet ?
Une classe est un modèle qui décrit un type d'objet ; un objet en est une réalisation concrète.
Exercice 4En programmation objet, un objet regroupe des données (attributs) et des actions (méthodes).
Vrai : la programmation orientée objet organise le code autour d'objets qui regroupent attributs et méthodes.
Exercice 5Pourquoi le cas de base est-il indispensable dans une fonction récursive ?
Une fonction récursive s'appelle elle-même en ramenant le problème à un cas plus simple. Le cas de base est le cas le plus simple, pour lequel la fonction donne directement une réponse sans se rappeler. Il est indispensable car c'est lui qui arrête la chaîne d'appels : sans cas de base, la fonction continuerait à s'appeler indéfiniment, ce qui provoquerait une boucle infinie. Le cas de base garantit donc que la récursivité se termine.