Skip to content
Extraits de code Groupes Projets
Valider 582ba080 rédigé par Vincent-Xavier Jumel's avatar Vincent-Xavier Jumel :hammer_pick:
Parcourir les fichiers

Correction de points du cours sur la récursivité

parent 30678750
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!128Correction de points du cours sur la récursivité
Pipeline #1160 réussi
......@@ -32,7 +32,7 @@ kernelspec:
### Première approche
```{warning}
```{prf:definition} Fonction récursive
Une fonction récursive est une fonction qui s'appelle elle-même
```
......@@ -47,12 +47,11 @@ def f():
import sys
l = sys.getrecursionlimit()
sys.setrecursionlimit(60)
sys.setrecursionlimit(45)
```
```{code-cell} ipython3
:tags: [raises-error]
:tags: [remove-stderr, copious-output]
f()
```
......@@ -72,19 +71,23 @@ Ce problème est similaire au problème de la boucle `while` où la condition n'
+++
```{margin}
On peut signaler la présence d'acronymes récursifs en informatique, comme GNU is Not Unix ou PHP Hypertext Processor.
````{margin}
```{note} Acronymes récursifs
On peut signaler la présence d'acronymes récursifs en informatique, comme GNU is Not Unix ou PHP Hypertext Processor, ou encore VISA.
```
````
+++
Attention à la récursivité non terminale :
````{margin}
Attention à la récursivité non terminale, par exemple dans un interpréteur type bash.
```shell
:(){ :|:& };:
```
Le code suivant définit une fonction nommée `:`. Cette fonction s'appelle elle-même sans condition d'arrêt, mais de plus, elle envoie sa sortie standard sur l'entrée standard d'une nouvelle instance d'elle même. Cette dernière instance est mis en _background_ avec le `&`.
````
```{margin}
En bash, la définition d'une fonction se fait avec `f(var) { echo $var }` et s'appelle avec `f var`.
```
......
......@@ -188,7 +188,7 @@ liste = Liste()
assert longueur(liste) == 0
```
Écire une fonction _récursive_ qui donne la longueur de la liste.
Écrire une fonction _récursive_ qui donne la longueur de la liste.
```{code-cell} ipython3
def longueur(liste):
......
......@@ -9,19 +9,21 @@ parts:
sections:
- file: 01seq01_POO_exercices
- file: 01seq01_POO_exercices_correction
- file: 01seq03_recursivite
sections:
- file: exemple_somme_recursive
- file: 01seq03_TD_exemples
- file: structures
sections:
- file: 01seq02_structures_listes
- file: 01seq02_implementation_liste
sections:
- file: 01seq02_implementation_liste
- file: 01seq03_structures_recursivite
- file: 01seq04_piles_et_files
sections:
- file: 01seq04_piles
- file: 01seq04_files
- file: 01seq05_tableaux
- file: 01seq03_recursivite
sections:
- file: exemple_somme_recursive
- file: 01seq03_TD_exemples
# - file: 01seq3_recursif_iteratif
- caption: Bases de données et autres structures
numbered: true
......
......@@ -8,7 +8,7 @@
- Capacité
- Commentaires
* - Listes, … : structures linéaires.
- Distinguers structures par le jeu de méthodes qui les caractérisent.
- Distinguer structures par le jeu de méthodes qui les caractérisent.
Choisir une structure de données adaptée à la situation à modéliser.
-
......@@ -20,7 +20,7 @@
On appelle __structure abstraite de données__ une représentation mentale
(et informatique) de données, définies par :
+ une façon de stocker les données
+ des __primitves__, c'est à dire des fonctions élémentaires sur ces données
+ des __primitives__, c'est à dire des fonctions élémentaires sur ces données
```
Ces représentations sont extrêmement importantes, car elles induisent une
......@@ -29,4 +29,4 @@ dans son exécution. Cependant, celles-ci ont également un coût (du moins
leur mise en œuvre dans un langage donné). Il est donc essentiel de bien
choisir sa structure de donnée [^1]
[^1]: on parle aussi de __type abastrait de données__ (TAD)
[^1]: on parle aussi de __type abstrait de données__ (TAD)
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter