LGT Saint-Exupéry, Mantes-la-Jolie
Activité Terminale NSI – Paradigmes de programmation – Exemples sous Python 1/2
Objectifs pédagogiques :
✓ Distinguer sur des exemples les paradigmes impératif, fonctionnel et objet.
✓ Choisir le paradigme de programmation selon le champ d’application d’un programme
✓ Utiliser on peut utiliser des paradigmes différents
✓ Connaître les avantages et inconvénients des paradigmes utilisés
Prolog est un langage de programmation logique. Le nom Prolog est un acronyme de PROgrammation en LOGique. Il a été créé par Alain Colmerauer et Philippe Roussel en 1972 à Marseille. Le but était de créer un langage de programmation où seraient définies les règles logiques attendues d'une solution et de laisser le compilateur la transformer en séquence d'instructions. La programmation en Prolog est très différente de la programmation dans un langage impératif. En Prolog, on alimente une base de connaissances de faits et de règles ; il est alors possible de faire des requêtes à la base de connaissances.
Activité 1 – Les paradigmes de programmation
1. Regarder la capsule vidéo sur les paradigmes de programmation sur le site nsi4noobs.fr 2. Que signifie « paradigme » ?
3. Quelles règles doit-on respecter en langage impératif ? 4. Résumer les grandes lignes du paradigme fonctionnel.
5. A quel(s) famille(s) de paradigmes appartiennent les langages vus depuis la 1ère ? (Python, PHP, HML, Javascript, SQL)
6. Comment doit-on procéder avant de passer à l’écriture dans un langage donné d’un algorithme écrit à l’aide du paradigme orienté objet ?
7. Donner les règles à respecter pour utiliser les schémas UML en POO.
8. Quel paradigme vous semble le plus adapté à l’écriture d’un algorithme récursif ? 9. Donner les avantages et les inconvénients du paradigme orienté objet.
Langages et programmation
Paradigmes de programmation Exemples sous Python
LGT Saint-Exupéry, Mantes-la-Jolie
Activité Terminale NSI – Paradigmes de programmation – Exemples sous Python 2/2
Activité 2 – Utilisation des paradigmes impératifs et fonctionnels
1. A partir de vos souvenirs mathématiques (ou en vous aidant d’une recherche Web) donner la définition du PGCD (Plus Grand Commun Diviseur) de deux nombres entiers non nuls.
2. Donner, en langage courant, l’algorithme d’Euclide pour le calcul du Plus Grand Commun Diviseur.
3. Proposer sous Python une écriture de cet algorithme en paradigme impératif.
4. Proposer sous Python une écriture de cet algorithme en paradigme fonctionnel.
Activité 3 – Utilisation du paradigme orienté objet
1. Donner le schéma UML des classes suivantes :
a. Classe Personnage : cette classe comportera les attributs : nom, prénom, sexe date de naissance, numéro de téléphone et mail. Parmi les méthodes générales, vous ajouterez les getters et setters des attributs ainsi qu’une méthode pour se présenter.
b. Classe Eleve : cette classe héritera de la classe Personnage et comportera les attributs de la classe mère auquel seront adjoints : la classe (la division), la langue vivante A et la langue vivante B. vous ajouterez une méthode pour afficher le profil élèves avec toutes ses données.
c. Classe Professeur : cette classe héritera de la classe Personnage et comportera les attributs de la classe mère auquel seront adjoints : la matière, le code d’accès au photocopieur. Vous ajouterez une méthode de présentation simplifiée (nom, prénom, matière)
2. Implémenter les 3 classes précédentes en Python. N’oubliez pas de documenter votre code et de tester les différentes classes et méthodes avec des exemples bien choisis.
Avant de passer à l’écriture d’un programme dans un langage donné, il faut au préalable réfléchir au paradigme à utiliser.
En fonction du travail demandé, un paradigme et/ou un langage pourra paraitre plus efficient pour écrire le code et le maintenir. Vous y gagnerez en temps et souvent en efficacité.
Pour aller plus loin sur les paradigmes :
https://fr.wikipedia.org/wiki/Paradigme_(programmation) Pour savoir à quelle(s) famille(s) appartient un langage :
https://fr.wikipedia.org/wiki/Comparaison_des_langages_de_programmation_multi-paradigmes Pour réaliser vos schémas UML : https://online.visual-paradigm.com
Programmation fonctionnelle sous Python : https://docs.python.org/fr/3/howto/functional.html Programmation orientée objet sous Python : https://docs.python.org/fr/3/tutorial/classes.html