Ministère de l’Éducation Direction Générale des Programmes et de la Formation C

Ministère de l’Éducation Direction Générale des Programmes et de la Formation Continue ❖◆❖ Année scolaire 2021/2022 IMPLEMENTATION EN PYTHON DES CONVENTIONS ALGORITHMIQUES Implémentation en python des conventions algorithmiques–2021/2022 Page 2 sur 12 Le langage de programmation choisi pour implémenter les solutions algorithmiques est le langage de programmation Python. A. Introduction générale ▪ Python est un langage de programmation sensible à la casse. ▪ Dans un code Python, il est recommandé d’ajouter des commentaires. o Commentaire sur une seule ligne : débuter la ligne par le symbole #. o Commentaire sur plusieurs lignes : délimiter les lignes du commentaire par ’’’. B. Les syntaxes des structures algorithmiques 1. Les opérations élémentaires simples a. L’opération d’entrée En algorithmique En python Lire (Objet) Objet = input() Objet = input(‘message’) N.B. : Par défaut, la valeur saisie est de type chaîne de caractères. b. L’opération de sortie En algorithmique En python Écrire ("Message", Objet, Expression) Écrire_nl ("Message", Objet, Expression) print ("Message", Objet, Expression) print ("Message", Objet, Expression, "\n") Remarques : - Objet est une variable de type variable simple (entier, réel, booléen, caractère et chaîne de caractères). - "\n" permet d’ajouter un retour à la ligne. - L’affichage d’un tableau T en python, doit se faire élément par élément et non pas avec l’instruction print(T). c. L’opération d’affectation En algorithmique En python Objet  Expression Objet = Expression Remarque : Objet est une variable de type simple (entier, réel, booléen, caractère et chaîne de caractères). Implémentation en python des conventions algorithmiques–2021/2022 Page 3 sur 12 2. Les types de données simples En algorithmique En python Entier int Réel float Booléen bool Caractère str Chaîne de caractères str Exemples de conversions entre les types simples en python Conversion Syntaxe Exemple De str vers int int(ch) x = int("3") signifie que x reçoit l’entier 3 De str vers float float(ch) x = float("3.2") signifie que x reçoit le réel 3.2 De str vers bool bool(ch) x = bool("0") signifie que x reçoit True De int vers str str(int) x = str(3) signifie que x reçoit le caractère "3" x = str(123) signifie que x reçoit la chaîne "123" 3. Les structures de données En algorithmique En python Tableau (à une et à deux dimensions) Ces types seront présentés ci-après (voir 4.b) , 4.c) et 4.d). Enregistrement Fichier 4. Les déclarations a. Les objets de type de donnée simple En algorithmique En Python Une variable n’a pas besoin d’être déclarée avec un type particulier : c’est au moment où on lui attribue une valeur qu’elle sera créée. Ainsi, son type sera défini en fonction du type de la valeur qui lui a été attribuée. L’identificateur d’une variable est sensible à la casse. Objet Type / Nature Nom_objet Type_objet Implémentation en python des conventions algorithmiques–2021/2022 Page 4 sur 12 b. Les tableaux En algorithmique En Python • On utilisera la bibliothèque numpy pour implémenter les tableaux. N.B. : Exceptionnellement pour l’année scolaire 2021-2022, on acceptera l’utilisation du type « list » uniquement pour le niveau 4ème année. • Un tableau de la bibliothèque numpy est : o homogène, c’est-à-dire constitué d’éléments de même type, o statique, car sa taille est fixée lors de la création. • La déclaration d’un tableau se fait en deux étapes : o Importation des modules nécessaires de la bibliothèque numpy Importation from numpy import array ou from numpy import * ou import numpy as alias o Déclaration du tableau Déclaration Tableau à une dimension T = array ([Type_élément] * N) ou bien T = array ([valeur_initiale] * N) Tableau à deux dimensions T = array ([Type_élément]*Colonnes]* Lignes) ou bien T = array ([valeur_initiale]*Colonnes]* Lignes) Remarque : On peut spécifier le type des éléments d’un tableau avec la syntaxe : Nom_tableau = array ([Valeur_initiale] * N, dtype=Type_élément) Objet Type / Nature Tableau à une dimension Nom_tableau Tableau de N Type _élément Tableau à deux dimensions Nom_tableau Tableau de N lignes * M colonnes Type_élément Implémentation en python des conventions algorithmiques–2021/2022 Page 5 sur 12 Exemples de déclarations de tableaux en Python Déclaration Explication T = array ([5] * 10) Déclarer un tableau T de 10 entiers et initialiser ses éléments par « 5 ». T = array ([float ()] * 10) Déclarer un tableau T de 10 réels et initialiser ses éléments par «0.0 ». T = array ([str] * 10) Déclarer un tableau T de 10 chaînes de caractères. T = array ([str()] * 10) Déclarer un tableau T de 10 caractères et initialiser ses éléments par le caractère vide. T = array ([‘’] * 10 , dtype = ’U20’) Déclarer un tableau T de 10 éléments initialisés par une chaîne vide. Chaque élément peut contenir 20 caractères au maximum. T = array ([[int ( )] * 10]*30) Déclarer un tableau T de 30 lignes x 10 colonnes d’entiers. c. L’enregistrement En algorithmique En Python Nom_enregistrement = dict ( Nom_champ1 = Type_champ1, Nom_champ2 = Type_champ2, ... ) Remarque : Pour accéder à un champ d’un enregistrement on utilise la syntaxe suivante : Nom_Enregistrement [ ‘Nom_Champ’ ]. Objet Type / Nature Nom_enregistrement Enregistrement Nom_champ1 : Type_champ1 Nom_champ2 : Type_champ2 ... Fin Implémentation en python des conventions algorithmiques–2021/2022 Page 6 sur 12 d. Les fichiers En algorithmique En Python La déclaration d’un objet de type fichier se fait lors de sa création à l'aide de la fonction open() détaillée ci-après (voir 10.a) et 10.b) ). 5. Les structures de contrôle conditionnelles En algorithmique En python Si Condition Alors Traitement FinSi if Condition : Traitement Si Condition Alors Traitement1 Sinon Traitement2 FinSi if Condition : Traitement1 else : Traitement2 Si Condition1 Alors Traitement1 Sinon Si Condition2 Alors Traitement2 ……… [Sinon TraitementN] FinSi if Condition1 : Traitement1 elif Condition2 : Traitement2 ……… else : TraitementN Selon <Sélecteur> Valeur1_1[, Valeur1_2, …] : Traitement1 Valeur2_1 . . Valeur2_2 : Traitement2 ……… [Sinon TraitementN] Fin Selon A partir de la version 3.10 match Sélecteur : case Valeur1 : Traitement1 case Valeur2_1 | Valeur2_2 : Traitement2 case Sélecteur if V3_1 <=Sélecteur<= V3_2 : Traitement3 case _ : TraitementN N.B. : Le sélecteur doit être de type scalaire. Objet Type / Nature Fichier texte Nom_ fichier Fichier Texte Fichier de données Nom_ fichier Fichier de Type _élément Implémentation en python des conventions algorithmiques–2021/2022 Page 7 sur 12 6. Les structures de contrôle itératives a. La structure de contrôle itérative complète En algorithmique Pour compteur de Début à Fin [Pas = valeur_pas] Faire Traitement Fin Pour En Python for compteur in range (Début, Fin+1, Pas) : Traitement N.B. : La valeur finale du compteur est exclue de la boucle. Remarques : - La valeur du pas peut être positive ou négative. Par défaut, elle est égale à 1. - Ne pas utiliser l’instruction break pour forcer l’arrêt de la boucle for. b. Les structures de contrôle itératives à condition d'arrêt En algorithmique En Python Tant que Condition Faire Traitement Fin Tant que while Condition : Traitement Répéter Traitement Jusqu'à Condition d’arrêt Remarque : Ne pas utiliser l’instruction break pour forcer l’arrêt de la boucle while. Toutefois, pour l’année scolaire 2021/2022 on acceptera l’implémentation python de la boucle Répéter via while True … break Implémentation en python des conventions algorithmiques–2021/2022 Page 8 sur 12 7. Les modules a. La déclaration En algorithmique En Python Fonction Nom_fonction (pf1 : type1 , pf2 : type2 , … , pfn : typen) : Type_résultat DEBUT Traitement Retourner résultat FIN Un module (fonction ou procédure) se définit en utilisant le mot clé def selon la syntaxe suivante : def Nom_module (pf1 , pf2 , … , pfn) : Traitement [return résultat] N.B. : Dans un module, l’instruction "return" peut être utilisée, et ce, pour retourner un seul résultat de type simple. Procédure Nom_procédure (pf1 : type1 , pf2 : type2 , … , pfn : typen) DEBUT Traitement FIN b. L’appel Module En algorithmique En Python Fonction Objet Nom_fonction (pe1 , …, pen) Objet = Nom_module (pe1 , …, pen) Procédure Nom_procédure (pe1 , … , pen) Nom_module (pe1 , … , pen) c. Le mode de passage En algorithmique En Python Si le mode de passage est par référence (par adresse), on ajoutera le symbole @ avant le nom du paramètre. Procédure Nom_procédure (@pf1 : type1 , @pf2 : type2 , … , pfn : typen) DEBUT Traitement FIN def Nom_module (pf1 , pf2 , … , pfn) : Traitement N.B. : En python, les paramètres de type dictionnaire, tableau et fichier sont, par défaut passés par référence. d. La portée des variables en python : • Toute variable déclarée au sein d’un module a une portée locale. • Toute variable déclarée au sein d’un module précédée par le mot clé global a une portée globale. Par conséquent, elle ne devra pas figurer parmi les paramètres de ce module. Implémentation en python des conventions algorithmiques–2021/2022 Page 9 sur 12 Exemple d’un programme en python présentant une solution modulaire 2ème façon d’implémentation du module saisieTaille en utilisant une variable globale nommée Taille Implémentation en python des conventions algorithmiques–2021/2022 Page 10 sur 12 8. Les opérateurs arithmétiques et logiques uploads/s3/ convention-algorithmique-et-son-implementation-en-python-1 1 .pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager