Il existe plusieurs manière de concevoir un programme; on parle de paradigmes de programmation.
Jusqu'ici, vous avez utilisé ( a priori ) uniquement la programmation impérative; dans ce type de programmation, le code est constitué de données stockées dans des variables de différents types ( entiers, tableaux,...), et sont manipulées par des fonctions.
Mais il existe bien d'autres paradigmes, et vous en verrez deux autres cette année :
Chaque langage ne permet pas forcément tous les paradigmes de programmation : le langage C par exemple ne permet pas la POO, le langage Haskell est uniquement fonctionnel, etc...
Avec Python, tous les paradigmes de programmation sont possibles, impératif, objet, fonctionnel,....c'est une chance !
L'utilisation de tel ou tel paradigme de programmation dépend du but visé et des contraintes du programme à écrire : par exemple, le paradigme fonctionnel est utilisé dans les domaines où l'on cherche un code robuste dans lequel les données ne sont pas susceptibles d'être modifiées accidentellement, comme par exemple dans le domaine spatial; la POO permet d'écrire un code clair et facilement maintenable, etc...Chaque paradigme a ses avantages et ses inconvénients.
En introduction au concept de POO, nous allons tout de suite voir un exemple de problème dans lequel ce paradigme montre ses avantages.
Vous allez coder en Python une petite animation qui, dans un premier temps, fera "monter" une "bulle" dans une fenêtre.
Les scripts de ce chapitre utilisent la bibliothèque p5.js, elle-même inspirée de Processing, pour créer et gérer des animations ( entre autres ).
Vous pouvez trouver ici un tuto qui présente ce module.
Pour pouvoir utiliser ce module dans les éditeurs de ce chapitre, penser auparavant à l'installer à l'aide du bouton .
Pour commencer, nous allons considérer l'ébauche de code ci-dessous qui vous permettra de démarrer :
Quelques commentaires sur ce code :
setup
, qui n'est exécutée qu'une seule fois au démarrage du script, on trouve ligne 9 l'instruction qui définit la taille de la fenêtre d'affichage ( ici 600 x 400 pixels ).draw
, dans laquelle on trouve les trois étapes à la base de toute animation :
draw
exécute ces trois étapes en boucle infinie une fois la fonction setup
terminée. .
On remarque que les variables caractéristiques de la bulle ( x, y, vitesse, ...) sont définies dans le programme principal, mais qu'elles devront
être modifiées dans la fonction draw
de façon à faire bouger la bulle.
Cependant, une fonction ne peut modifier que les variables qui lui sont locales, c'est à dire définies dans sa propre portée ( autrement dit, définies dans
le corps de cette fonction )...la solution est donc ici de rendre ces variables globales au script, c'est à dire modifiables
à n'importe quel endroit; c'est le rôle du mot clé global
placé au début de la fonction draw
.
L'usage des variables globales est à limiter au strict nécessaire, car souvent source de problèmes...vous verrez que la POO est un moyen de s'affranchir de ce genre de problème !
A vous de compléter le code dans la fonction draw
de façon à :
Compléter votre code précèdent de façon à faire "monter" deux bulles en même temps.
Compléter votre code précèdent de façon à faire "monter" plusieurs bulles en même temps !
Vous commencez à voir le problème ??