Les récurrences sont elles-mêmes des événements intéressants.eux-mêmes, mais dans la programmation, ils revêtent une importance particulière dans des cas individuels. Face à eux pour la première fois, un nombre assez important de personnes ont du mal à les comprendre. Cela est dû au vaste champ d'utilisation potentielle du terme lui-même, selon le contexte dans lequel la «récursivité» est utilisée. Mais on espère que cet article aidera à éviter d'éventuels malentendus ou malentendus.
Qu'est-ce que la "récursivité" de toute façon?
Le mot «récursion» a toute une gamme de significations,qui dépendent de la zone dans laquelle il est appliqué. La notation générique est la suivante: les récursions sont des définitions, des images, des descriptions d'objets ou de processus dans les objets eux-mêmes. Ils ne sont possibles que dans les cas où l'objet fait partie de lui-même. Les mathématiques, la physique, la programmation et plusieurs autres disciplines scientifiques définissent la récursion à leur manière. Il a trouvé une application pratique dans le travail des systèmes d'information et des expériences physiques.
Qu'entend-on par récursivité en programmation?
Situations récursives ou récursivité dansprogrammation, sont appelés moments où une procédure ou une fonction d'un programme s'appelle elle-même. Aussi étrange que cela puisse paraître pour ceux qui ont commencé à apprendre la programmation, il n'y a rien d'étrange ici. N'oubliez pas que les récursions ne sont pas difficiles et, dans certains cas, elles remplacent les boucles. Si l'ordinateur est correctement configuré pour appeler une procédure ou une fonction, il commencera simplement à l'exécuter.
La récursivité peut être finie ou infinie.Pour que le premier cesse de s'appeler, il doit également contenir les conditions de résiliation. Cela peut être une diminution de la valeur d'une variable et lorsqu'une certaine valeur est atteinte, l'appel est arrêté et le programme terminé / passage au code suivant, en fonction des besoins pour atteindre certains objectifs. La récursivité infinie signifie qu'elle sera appelée tant que l'ordinateur ou le programme dans lequel il s'exécute est en cours d'exécution.
Il est également possible d'organiser une récursivité complexe avecen utilisant deux fonctions. Disons qu'il y a A et B.La fonction A a un appel à B dans son code, et B, à son tour, indique à l'ordinateur la nécessité d'exécuter A. Les récursions complexes sont un moyen de sortir d'un certain nombre de situations logiques complexes pour l'ordinateur logique.
Si le lecteur de ces lignes a étudié le logicielboucles, il a probablement déjà remarqué les similitudes entre elles et la récursivité. En général, ils peuvent en effet effectuer des tâches similaires ou identiques. Il est pratique d'utiliser la récursivité pour simuler une boucle. Ceci est particulièrement utile lorsque les boucles elles-mêmes ne sont pas très pratiques à utiliser. Le schéma de mise en œuvre du logiciel ne diffère pas beaucoup entre les différents langages de programmation de haut niveau. Mais toujours la récursion en "Pascal" et la récursion en C ou dans un autre langage ont leurs propres particularités. Il peut être implémenté avec succès dans des langages de bas niveau comme Assembler, mais cela est plus problématique et prend du temps.
Arbres de récursivité
Qu'est-ce qu'un «arbre» dans la programmation? Il s'agit d'un ensemble fini composé d'au moins un nœud, qui:
- Il a un nœud de départ spécial, appelé la racine de l'arbre entier.
- Le reste des nœuds se trouve dans un nombre différent de zéro de sous-ensembles disjoints par paires, et ils sont également un arbre. Toutes ces formes d'organisation sont appelées sous-arbres de l'arbre principal.
En d'autres termes:les arbres contiennent des sous-arbres, qui contiennent plus d'arbres, mais en plus petit nombre que l'arbre précédent. Cela continue jusqu'à ce qu'au niveau de l'un des nœuds, il n'y ait plus de possibilité d'aller plus loin, ce qui marquera la fin de la récursivité. Il y a une autre nuance à propos du dessin schématique: les arbres ordinaires poussent de bas en haut, mais dans la programmation, ils sont dessinés dans l'autre sens. Les nœuds qui n'ont pas de continuation sont appelés nœuds d'extrémité. Pour faciliter la désignation et pour plus de commodité, la terminologie généalogique (ancêtres, enfants) est utilisée.
Pourquoi est-il utilisé dans la programmation?
La récursivité a trouvé son application en programmationpour résoudre un certain nombre de problèmes complexes. Si vous n'avez besoin de faire qu'un seul appel, alors il est plus facile d'utiliser un cycle d'intégration, mais avec deux ou plusieurs répétitions, afin d'éviter de construire une chaîne et de les faire exécuter sous la forme d'un arbre, des situations récursives sont appliquées. Pour une large classe de problèmes, l'organisation du processus de calcul de cette manière est la plus optimale du point de vue de la consommation des ressources. Ainsi, la récursivité en Pascal ou dans tout autre langage de programmation de haut niveau est un appel à une fonction ou une procédure avant que les conditions ne soient remplies, quel que soit le nombre d'appels externes. En d'autres termes, il ne peut y avoir qu'un seul appel au sous-programme dans le programme, mais il se produira jusqu'à un moment prédéterminé. D'une certaine manière, il s'agit d'un analogue d'un cycle avec sa propre utilisation spécifique.
Différences entre la récursivité dans différents langages de programmation
Malgré le schéma général de mise en œuvre et desDans chaque cas, la récursivité en programmation a ses propres caractéristiques. Cela peut entraîner des difficultés lors de la recherche du matériel requis. Mais vous devez toujours vous rappeler: si un langage de programmation appelle des fonctions ou des procédures, l'appel de la récursivité est possible. Mais ses différences les plus significatives apparaissent lors de l'utilisation de langages de programmation bas et haut. Cela est particulièrement vrai pour les possibilités de mise en œuvre logicielle. L'exécution dépend en fin de compte de la tâche et la récursivité est écrite en conséquence. Les fonctions et les procédures sont utilisées différemment, mais leur objectif est toujours le même: les faire appeler eux-mêmes.
La récursivité est facile. Est-il facile de se souvenir du contenu d'un article?
Pour que les débutants le comprennent, peut-être au débutcompliqué, nous avons donc besoin d'exemples de récursivité ou d'au moins un. Par conséquent, il convient de citer un petit exemple de la vie quotidienne, qui aidera à comprendre l'essence même de ce mécanisme pour atteindre les objectifs de la programmation. Prenez deux ou plusieurs miroirs, placez-les de manière à ce que tous les autres soient affichés en un. Les miroirs peuvent être vus se refléter à plusieurs reprises, créant un effet d'infini. Ici, les récursions sont, au sens figuré, des réflexions (il y en aura beaucoup). Comme vous pouvez le voir, ce n'est pas difficile à comprendre, il y aurait un désir. Et tout en étudiant les matériaux de programmation, vous pouvez alors comprendre que la récursivité est également une tâche très facile.