ajout de tous les cours et TP préparés cet été
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
## Paradigmes de programmation
|
||||
# Paradigmes de programmation
|
||||
|
||||
> Un paradigme est à la programmation ce qu’un style culinaire est à la cuisine : il impose des règles, des outils, et une manière de faire.
|
||||
|
||||
@@ -19,14 +19,14 @@ On peut regrouper les différents paradigmes en 2 catégories :
|
||||
- la programmation **impérative** ;
|
||||
- la programmation **déclarative**.
|
||||
|
||||
Lorsque l'on utilise la programmation impérative, on décrit le comment / la solution. On la retrouve dans plusieurs langage :
|
||||
Lorsque l'on utilise la programmation impérative, on décrit le comment / la solution. On la retrouve dans plusieurs langages :
|
||||
|
||||
- Structurée (FORTRAN, C)
|
||||
- Procédurale (FORTRAN, C)
|
||||
- Objet (C++, Java, Python)
|
||||
- Modulaire (C++, Java, Python)
|
||||
|
||||
Lorsque l'on utilise la programmation déclarative, on décrit le quoi / le problème. On la retrouve dans plusieurs langage :
|
||||
Lorsque l'on utilise la programmation déclarative, on décrit le quoi / le problème. On la retrouve dans plusieurs langages :
|
||||
|
||||
- Descriptif (HTML, SQL)
|
||||
- Fonctionnel (LISP, CAML)
|
||||
@@ -40,7 +40,7 @@ Lorsque l'on utilise la programmation déclarative, on décrit le quoi / le prob
|
||||
|
||||
La programmation impérative, bien que versatile, conduit rapidement à des programmes difficiles à comprendre et à maintenir, où la démonstration de la correction est impossible.
|
||||
|
||||
Ceci est du au fait qu’un traitement de données :
|
||||
Ceci est dû au fait qu'un traitement de données :
|
||||
|
||||
- dépend de paramètres extérieurs non maîtrisés : variables ;
|
||||
- modifie les données, ou d’autres : affectation ;
|
||||
@@ -109,7 +109,7 @@ Une fonction à effet de bord est une fonction qui modifie ou utilise une variab
|
||||
|
||||
**__À n’utiliser que lorsque cela est nécessaire !__**
|
||||
|
||||
Les effets de bord peuvent être évité facilement grâce au principe de localité des variables et la programmation fonctionnelle.
|
||||
Les effets de bord peuvent être évités facilement grâce au principe de localité des variables et la programmation fonctionnelle.
|
||||
|
||||
```python
|
||||
# Fonction avec effets de bord :
|
||||
@@ -130,8 +130,9 @@ print("Avec k=3 : ", ajoute_k_a_n(3))
|
||||
def ajoute_k_a_n(n, k):
|
||||
return n + k
|
||||
|
||||
print("Avec k=2 : ", ajoute_k_a_n(2))
|
||||
print("Avec k=3 : ", ajoute_k_a_n(3))
|
||||
n = 2
|
||||
print("Avec k=2 : ", ajoute_k_a_n(n, 2))
|
||||
print("Avec k=3 : ", ajoute_k_a_n(n, 3))
|
||||
```
|
||||
|
||||
#### Fonctions lambdas
|
||||
@@ -144,7 +145,7 @@ Tout comme la machine de Turing, le λ-calcul peut représenter n’importe quel
|
||||
|
||||
La programmation **fonctionnelle** puise son origine du __λ-calcul__ alors que la programmation **impérative** puise son origine de la __machine de Turing__.
|
||||
|
||||
En python la lambda fonction se définie à l'aide du mot clé **lambda** :
|
||||
En Python, la fonction lambda se définit à l'aide du mot-clé **lambda** :
|
||||
|
||||
```python
|
||||
add_a_b = lambda a,b: a + b
|
||||
@@ -191,7 +192,7 @@ maximum = functools.reduce(f_maximum, liste)
|
||||
|
||||
__Le filtrage__
|
||||
|
||||
Sélection les éléments d’une liste vérifiant un certain critère.
|
||||
Sélectionne les éléments d'une liste vérifiant un certain critère.
|
||||
|
||||
```python
|
||||
liste = [1, 3, 5, 6, 2]
|
||||
@@ -245,7 +246,7 @@ Voici une tâche simple : nous voulons faire cuire des pâtes.
|
||||
|
||||
------
|
||||
|
||||
Auteurs : Florian Mathieu, Timothée Decoster, Enzo Frémaux
|
||||
Auteurs : Florian Mathieu, Enzo Frémeaux, Thimothée Decooster
|
||||
|
||||
Licence CC BY NC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user