Example: stock market

Traduction de la notation algorithmique en langage Python

Traduction de la notation algorithmiqueen langage PythonOu comment adapter un langage l exp rimentation d algorithmesJean-Michel Adam Universit Grenoble Alpes UFR SHS D partement IMSSDes ressourcesSous Linux, Python install par d Pour installer Python :sudoapt -getinstallidle3 en fran ais: gratuit:Apprendre programmer avec Python 3 Code source des exemples et les solutions des exercices propos s dans l'ouvrage (Pour Python2 et Python3 - archive ZIP)2 l ments traduire Algorithme principal Objets l mentaires d finis dans les lexiques Agr gats Instructions l mentaires Analyses par cas It rations Actions et Fonctions Les tableaux La machine-trac s Les fichiers s quentiels Les classes3 Structure g n rale de l applicationlexique principald finition des variables de l'algorithme principal et notification des actions et des fonctions utilis es

de 0 à 65535 Exemples de constantes caractères : ' ', '0', 'O', "a", ‘\n' (retour à la ligne), '\t' (tabulation horizontale) Les 256 premiers caractères du codage Unicode correspondent à l'ASCII étendu Il existe une relation d'ordre sur les caractères qui suit l'ordinal de l'Unicode : …

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of Traduction de la notation algorithmique en langage Python

1 Traduction de la notation algorithmiqueen langage PythonOu comment adapter un langage l exp rimentation d algorithmesJean-Michel Adam Universit Grenoble Alpes UFR SHS D partement IMSSDes ressourcesSous Linux, Python install par d Pour installer Python :sudoapt -getinstallidle3 en fran ais: gratuit:Apprendre programmer avec Python 3 Code source des exemples et les solutions des exercices propos s dans l'ouvrage (Pour Python2 et Python3 - archive ZIP)2 l ments traduire Algorithme principal Objets l mentaires d finis dans les lexiques Agr gats Instructions l mentaires Analyses par cas It rations Actions et Fonctions Les tableaux La machine-trac s Les fichiers s quentiels Les classes3 Structure g n rale de l applicationlexique principald finition des variables de l'algorithme principal et notification des actions et des fonctions utilis esalgorithme principaltexte de l'algorithmeNotation algorithmique #identification auteur.

2 Date #d finition de l'application# lexique partag r alisation des actions et fonctionsdefprincipal():# lexique principallexique de l'algorithme principal # algorithme principal Traduction de l'algorithme principalFichier commentaires sur une ligne d butent par ## ceci est un commentaire qui finit une ligne#**# Voici un autre commentaire sur *# sur plusieurs lignes *# notez l esth tique particuli rement soign e ;-) * #**Sans type est caract ris par : un ensemble de valeurs un ensemble d'op rations d finies sur ces valeursPython est un langage typ dynamiquement , c est- -dire qu une variable peut changer de type suite l affectation d une valeur d un autre pr d finis en Pyton: entiers : int r els : float bool ens : bool chaines: strun caract re est une chaine de longueur 1 les tuples: (suite d objets s par es par des , ) les listes : [suite d objets s par es par des , ]6Le type entierValeurs quelconques, pas de limite !

3 Constantes enti resLes constantes peuvent s' crire en d cimal : 12, -23, 2016, .. en octal pr c d es de 0oou 0O: 0o12, - 0O341,0o777, .. en hexad cimal pr c d es de 0xou 0X: 0xc, -0X17A, 0xffff ..cool7 Les r els sont repr sent s en machine par une valeur approch e en base 2 ; un r el R est repr sent par une mantisse et un exposant : Par d faut, la pr cision des calculs sur les r els est surprenante en Python :>>> a = + >>> r els en PythonmantisseexposantS8 Pour obtenir des r sultats pr cis dans les calculs sur les r els il faut utiliser la classe Decimal importer de du module decimal>>> fromdecimalimport *>>> a = Decimal(' ')>>> b = Decimal(' ')>>> c = a+b>>> print(c) r els en PythonAh a va mieux !

4 9 Conversion de TypesConversion explicites en utilisant le nom de type :>>> a = 123444444550394487398222344>>> a123444444550394487398222344>>> b = str (a)>>> b'123444444550394487398222344'>>> c = int (b)>>> c123444444550394487398222344>>> d = c+ >>> +26>>> e = str (d)>>> e' +26'10 Les caract res Les caract res sont des strde longueur 1 Un caract re est repr sent sur 16 bits : codage Unicode de 0 65535 Exemples de constantes caract res : ' ', '0', 'O', "a", \n' (retour la ligne), '\t' (tabulation horizontale) Les 256 premiers caract res du codage Unicode correspondent l'ASCII tendu Il existe une relation d'ordre sur les caract res qui suit l'ordinal de l'Unicode : tous les op rateurs de comparaison peuvent tre appliqu s Fonctions pr d finies: ordet chr ord renvoie le code d un caract re donn : ord('A ) 65ord(' ') 9801 chrrenvoie le caract re correspondant un code :chr(65) 'A' chr(9801) ' 'Moi j en ai du caract re !

5 11 Les caract resCertains caract res non imprimables ont une repr sentation particuli re :'\b'retour en arri re'\t'tabulation'\n'passage la ligne'\f'saut de page'\r'retour-chariot'\"'double quotes'\''apostrophe'\\'backslash'\udddd 'unicodeen hexad cimalchr(code)unicodeen d cimal, hexa ou octal12 Les bool ensLes bool ens sont de type bool: Un bool en ne peut prendre que les valeurs Trueet FalseEt n oubliez pas les majuscules Tr u eet False, clarations de variablesn : entier // d finition r : r el // d finition c : caract re // d fintionb : bool en // d fintionch: chaine // d fintion# n : entier // d finition # r : r el // d finition # c : caract re // d finition # b : bool en // d finition # ch : chaine // d finition notation algorithmiqueJe vois que du vert !

6 PythonPython tant typ dynamiquement, on peut d crire le lexiquepar de simples commentaires14D clarations de variablesn : entier // d finition r : r el // d finition c : caract re // d fintionb : bool en // d fintionch: chaine // d fintionn = int()# d finition r = float() # d finition r = Decimal() # d finition c = str()# d finition b = bool()# d finition ch = str ()# d finition notation algorithmiquePythonOn peut aussi d crire le lexique en utilisant le constructeur des classes de base :Ah a, j aime bien15D clarations de variablesPar d faut, les initialisations de variables sont les suivantes :int() 0float() () Falsestr() ''Decimal()016A h , d accordLes cha nes Les cha nes sont repr sent es en Python par des objets de la classe pr d finie str.

7 Une cha ne est une suite de caract res d limit es par des guillemets (doubles ou simples)ch1 = "hello " # ch1 est initialis e "hello"ch2 = 'world'# ch2 est initialis e "world"Tous les caract re Unicode sont autoris s 17 Les constantes nomm es sont des variables en PythonPI : ler : lacha ne"DCISS"OUI: lacha ne"Oui"MAX: l'entier9999PI = = "DCISS"OUI = "Oui"MAX = 9999 notation rations l mentaires op rations sur les entiers : + - * / divmodexemple : a + (b * c) divd + e mod3 op rations sur les r els :+ - * / pent(x) pdec(x) op rateurs sur les entiers :+ -* / // %bonus: ** (puissance)a + (b * c) // d + e % 3 op rateurs sur les r els+ - * /int(x)x int(x) notation algorithmiquePython l rations l mentaires sur les cha nes op rations sur les cha nes :- concat nation : &ch& "jour"- ajout d'un caract re : 'c' chch 'c ni me(ch,i)longueur(ch)-sous-chaine :souschaine(ch,deb,long)-deb(ch)-fin(ch) -pre(ch)-der(ch) op rateurs sur les cha nes :- concat nation : +ch + " jour"- ajout d'un caract re : +'c'+ chch +'c ch[i]len (ch)-sous-chaine :ch[deb:deb+long]ch[:- 1]ch[1.]

8 ]ch[0]ch[-1] notation algorithmiquePython20Op rations bool ennesop rations sur bool ens:nonet ouetpuisoualorscomparaisons := < > op rations sur bool ens:not& |and or comparaisons := =!=< > <= >= notation algorithmiquePython a me rappelle un langage , mais lequel ?21 Priorit d croissante des op rateursOperateurDescription()Parenth sesf( )Appel de fonctionx[index:index]Sous-listex[index] S lection d un l ment de f rence d attribut**Puissance~xN gation bit bit+x, -x+ et - unaires* , / , % , / /Multiplication, division, reste (modulo), div+ , -Addition, soustraction<<, >>D calagesde bits&ETbit bit^OU exclusif (XOR) bit bit|OU bit bitin, not in, is, is not, < , <=,>,>=,<>, !

9 =, ==Appartenance, identit , comparaisonsnot xn gationandetpuisoroualorslambdaExpression Lambda22 Traduction des instructions l mentaires affectation :v expression saisie au (x) ("Entrez n: ") (n) affichage ("Total : ", t) affectation :v = expression saisie au clavier:x = input() # x est une chainex = int (input()) # saisie convertien = int (input("Entrez n: ")) affichage :print("Total :", t) affichage sans retour la ligne :print("Total :", t, end="") notation algorithmiquePythonIl existe de nombreuses possibilit s d affichage format dans PythonOui, un peu de lecture en pas casselonvariablescondition1 : action1condition2 : action2condition3 : action3fselon# selon variablesif condition1: action1elifcondition2: action2else : # condition3 action3# fselonNotation algorithmiquePythonLes sont des caract res de tabulation (4 caract res dans un autre diteur).

10 Utiliser un caract re de tabulation par niveau d emboitement24 Exemple# selon abreviationif abreviation== "M":print("Monsieur")elifabreviation== "Mme":print("Madame")elifabreviation== "Mlle":print("Mademoiselle")else: # autrementprint("Madame, Monsieur")# fselonselonabr viationabr viation = "M" : ("Monsieur ")abr viation = "Mme": ("Madame ")abr viation = "Mlle": ("Mademoiselle ")autrement: ("Madame , Monsieur")fselon25 Madame, Mademoiselle, Monsieur,Bonjour ! Traduction des analyses par cassiconditionalorsactionsfsisipre(ch) = 'A'alorsnba nba+1fsiifcondition:actions#fsiif ch[0] == 'A':nba= nba+ 1#fsiNotation algorithmiquePython26 Traduction des analyses par cassiconditionalorsaction1sinonaction2fs iifcondition:action1else:action2#fsiNota tion algorith


Related search queries