Manipulation de points
On considère la classe nommée Point
ayant les attributs suivants :
__abs
: attribut privé de typefloat
pour représenter l’abscisse du point ;__ord
: attribut privé de typefloat
pour représenter l’ordonnée du point.
- Définir la class
Point
et le constructeur__init__
permettant d’initialiser les deux attributs.
L’encapsulation est un concept fondamental de la conception objet. L’idée est de ne pas laisser accessibles les attributs depuis l’extérieur de la classe/objet ; les attributs sont alors dits privés (ou protégés si l’accès est nécessaire dans une sous-classe).
[Lire]Jeu de la vie
Le but de ce sujet est de réaliser en Python une implémentation du jeu de la vie en utilisant la programmation objet.
Le jeu de la vie a été inventé par le mathématicien britannique John H. Conway (1937-2020). C’est un exemple de ce qu’on appelle un automate cellulaire bidimensionnel. Il se déroule sur un tableau rectangulaire $(L \times H)$ de cellules. Une cellule est représentée par ses coordonnées $x$ et $y$ qui vérifient $0 \leqslant x < L$ et $0 \leqslant y < H$.
[Lire]Résoudre un problème grâce aux paradigmes objet et fonctionnel
L’objectif de ce document est d’illustrer une fois encore l’intérêt des différents paradigmes de programmation.
Cas d’étude : fonction avec paramètres
On considère l’équation qui traduit le mouvement d’une balle lancée verticalement vers le haut avec une vitesse $\vec{v}_0$ depuis l’origine des altitudes telle que l’écrit un physicien : $$y(t) = -\dfrac{1}{2}g\, t^2 + v_0\, t$$ Ce physicien a donc tendance à considérer que $y$ est une fonction de la variable $t$ et que cette fonction dépend des paramètres $v_0$ et $g$.
[Lire]Méthodes spéciales en Python
Définit une classe nommée Fraction
pour représenter les nombres rationnels. Cette classe doit posséder deux attributs num
et denom
, de type entier, qui représentent respectivement le numérateur et le dénominateur du nombre rationnel.
On demande que le dénominateur soit un entier positif.
Un corrigé de cette activité se trouve à cette adresse : https://repl.it/@dlatreyte/fraction
-
Écrire le constructeur de cette classe. Une exception de type
[Lire]ValueError
doit être levée si le dénominateur n’est pas un nombre entier positif.
Simulation du fonctionnement d'une banque
L’objectif de ce document est de simuler (sommairement bien sûr) le fonctionnement d’une banque. Le programme doit permettre :
- La création d’une banque ;
- La création de comptes bancaires ;
- La création de personnes propriétaires de ces comptes bancaires.
Une correction se trouve à cette adresse : https://repl.it/@dlatreyte/banque
Classe Personne
Dans un module nommé personne
, créer la classe Personne
dont la spécification est la suivante :
|
|
Les spécifications des méthodes sont les suivantes :
[Lire]Programmation Objet
Programmation orientée objet
L’un des objectifs principaux de la notion d’objet est d’organiser des programmes complexes grâce aux notions :
- d’encapsulation ;
- d’abstraction ;
- d’héritage ;
- de polymorphisme ;
Remarque : Seules les deux premières notions apparaissent dans le programme de NSI.
Encapsulation
Le principe de l’encapsulation est de regrouper dans le même objet, les données (attributs) et les traitements (méthodes) qui lui sont spécifiques. Ainsi un objet est défini par ses attributs et ses méthodes.
[Lire]Paradigmes de programmation
Langages de programmation
Un langage de programmation a besoin :
- des règles de grammaire qui définissent la syntaxe des expressions ;
- d’une sémantique qui définit le sens des expressions.
Un langage peut être :
- interprété : un interpréteur lit et analyse le code séquentiellement, le traduit en langage machine et lance son exécution.
- compilé : un compilateur lit et analyse le code puis le traduit en langage machine. Par la suite l’exécutable généré peut être lancé.
Remarque : Python un langage interprété mais le code n’est pas directement traduit dans le langage machine de l’ordinateur sur lequel le programme est lancé mais dans le langage machine d’une machine virtuelle (bytecode). Dans un second temps, ce langage machine est interprété par le logiciel.
[Lire]