Passage des arbres programmatiques à la syntaxe python

publicité
Traduction des Arbres Programmatiques en Python3
Table des matières
1
Premier exemple
1
2
Généralités
1
3
Méthode de programmation
2
4
Variables et types
2
5
Structures de contrôle
3
6
Opérateurs
5
7
Tableaux
6
8
Tableaux 2D
7
9
Fonctions
8
10 Enregistrements
1
9
Premier exemple
hello42
−→
acher("Hello", sqrt(1764)) acherSaut()
2
hello42.py
from math import *
from numpy import *
# definit le programme principal
def main() :
print("Hello ", sqrt(1764))
# execute le programme principal
main()
Généralités
Commentaires de code :
Sur une ligne, tout ce qui est écrit après un caractère # est considéré comme du commentaire de code.
Indentation :
En Python, l'indentation fait partie de la syntaxe !
Formulaire_AP_Python3
page 1/ 9
3
Méthode de programmation
1. ouvrir geany
2. créer un nouveau chier et l'enregistrer intelligemment (par exemple, TP1_ex1.py)
3. traduire progressivement l'arbre programmatique en Python :
(a) traduire une fonction/procédure et l'appeler dans le programme principal, pour la tester
(b) exécuter le programme (bouton exécuter ou touche F5)
(c) vérier que le programme s'exécute correctement, sinon revenir à l'étape (a)
(d) vérier que le programme produit le bon résultat, sinon revenir à l'étape (a)
(e) recommencer avec la fonction/procédure suivante, jusqu'à ce que tout l'arbre soit traduit
4
Variables et types
En python, il n'est pas nécessaire de déclarer les variables ni de spécier leur type.
Type AP
Type Python
Exemple de valeur Python
booléen
entier
réel
texte
bool
int
oat
str
True
1
1.0
"salut fred"
Un nom de variable peut contenir des lettres (sans accent) et des chires mais ne doit pas commencer
par un chire. Les majuscules et les minuscules sont distinguées.
Nommez vos variables de façon cohérente : par exemple des noms pour les variables (moyennePonderee)
et des verbes pour les fonctions (calculerMoyennePonderee).
Les variables de type composé (tableaux, enregistrements. . .) doivent être initialisées avec
un constructeur, une fonction d'initialisation ou la fonction
Formulaire_AP_Python3
copy (voir les sections 7, 8 et 10).
page 2/ 9
5
Structures de contrôle
Arbre Programmatique
Python
monProgramme
def main():
resultatOk = True
resultatOk ← Vrai
main()
resultatOk : booléen
pas de traduction, écrire les instructions à la suite
−→
acher("Entrer x : ", x) x ← saisir()
x
x
x
x
acher("x = ", x)
print("x = ", x, end="")
−→
−→
=
=
=
=
int(input("Entrer x : "))
float(input("Entrer x : "))
str(input("Entrer x : "))
bool(input("Entrer x : "))
print("Bonjour")
acher("Bonjour") acherSaut()
si
if condition :
actionSiVrai
condition actionSiVrai
si
condition actionSiVrai actionSiFaux
pour
if condition :
actionSiVrai
else :
actionSiFaux
for i in range(1, N+1) :
action
i de 1 à N action
tant que
while condition :
action
condition action
Formulaire_AP_Python3
page 3/ 9
Exemple : moyenne de 3 nombres
moyenne3
a, b, c, m : réel
−→
acher("Entrez a : ") a ← saisir()
...
m ← (a+b+c)/3.0 acher("Moyenne = ", m)
from math import *
from numpy import *
# declare le programme principal
def main():
a = float(input("Entrer a : "))
b = float(input("Entrer b : "))
c = float(input("Entrer c : "))
m = (a+b+c)/3.0
print("Moyenne = ", m)
# execute le programme principal
main()
Exemple : saisir un entier positif
entierPositif
n : entier
−→
acher("Entrez n>=0 : ") n ← saisir()
tant que
n<0
acher("Bravo, vous avez saisi ", n)
−→
acher("Erreur, entrez n>=0 : ") n ← saisir()
from math import *
from numpy import *
# declare le programme principal
def main():
n = int(input("Entrez n>=0 : "))
while n < 0 :
n = int(input("Erreur, entrez n>=0 : "))
print("Bravo, vous avez saisi", n)
# execute le programme principal
main()
Formulaire_AP_Python3
page 4/ 9
6
Opérateurs
En cas de doute sur les priorités entre opérateurs, utiliser des parenthèses.
Opérateurs arithmétiques
Opérateur AP
Opérateur Python
Exemple en Python
+
+
12 + 3
# resultat : 15
−
-
12 - 3
# resultat : 9
×
*
12 * 3
# resultat : 36
/
/
7.0 / 2.0
# resultat : 3.5
div
//
7 // 2
# resultat : 3
mod
%
7 % 2
# resultat : 1
Opérateurs de comparaison
Opérateur AP
Opérateur Python
Exemple Python
==
==
12 == 3
# False
6=
!=
12 != 3
# True
<
<
12 < 3
# False
>
>
12 > 3
# True
≤
<=
12 <= 3
# False
≥
>=
12 >= 3
# vrai
Opérateurs logiques
Opérateur AP
Opérateur Python
Exemple Python
NON
not
not (12 < 3)
# True
ET
and
12 < 3 and 12 > 3
# False
OU
or
12 < 3 or 12 > 3
# True
Formulaire_AP_Python3
page 5/ 9
7
Tableaux
Les tableaux sont des types composés et doivent donc être initialisés avec un constructeur ou une
fonction d'initialisation.
Arbre Programmatique
Python
tab : tableau 5 entier
tab = empty((5), dtype=int)
pour
for i in range(0, 5) :
tab[i] = int(input())
i de 0 à 4 tab[ i ] ← saisir()
Exemple : initialiser à 0 un tableau de 20 entiers puis l'acher
tableau20
i : entier ; tab : tableau 20 entier
−→
pour
pour
i de 0 à 19 tab[ i ] ← 0 i de 0 à 19
−→
acher(tab[ i ]) acher(" ")
from math import *
from numpy import *
# declare le programme principal
def main():
# construit un tableau
tab = empty((20), int)
# remplit le tableau
for i in range(0, 20) :
tab[i] = 0
# affiche le tableau
for i in range(0, 20) :
print(tab[i], end=" ")
# execute le programme principal
main()
Formulaire_AP_Python3
page 6/ 9
8
Tableaux 2D
Les tableaux 2D sont des types composés et doivent donc être initialisés avec un constructeur ou une
fonction d'initialisation.
Arbre Programmatique
Python
M : tableau 3 × 4 réel
M = empty((3, 4), dtype=float)
pour
i de 0 à 2
for i in range(0, 3) :
for j in range(0, 4) :
M[i][j] = 0.0
pour
j de 0 à 3 M[ i ][ j ] ← 0.0
Exemple : matrice identité 4 × 4
matriceIdentite
i, j : entier ; M : tableau 4 × 4 réel
pour
i de 0 à 3
pour
j de 0 à 3
si
i == j M[ i ][ j ] ← 1.0 M[ i ][ j ] ← 0.0
from numpy import *
def main():
# construit le tableau 2D
M = empty((4, 4), dtype=float)
# remplit le tableau 2D
for i in range(0, 4) :
for j in range(0, 4) :
if i == j :
M[i][j] = 1.0
else :
M[i][j] = 0.0
main()
Formulaire_AP_Python3
page 7/ 9
9
Fonctions
Dans une fonction, les paramètres sont accessibles en lecture pour les types simples et en lecture/écriture pour les types composés.
Arbre Programmatique
Python
x, y : entier | entier, entier
calculerMinMax
si
def calculerMinMax(x, y) :
if x < y :
return x, y
else :
return y, x
x<y retourner x, y retourner y, x
mini, maxi ← calculerMinMax(a, b)
mini, maxi = calculerMinMax(a, b)
Exemple : multiplier un tableau par un entier
k : entier ; T : tableau 5 entier |
i : entier
multiplierTableau
pour
i de 0 à 4 T[ i ] ← k × T[ i ]
tableauFoisTrois
i : entier ; tab : tableau 5 entier
−→
...
multiplierTableau(3, tab)
from math import *
from numpy import *
# declare une fonction
def multiplierTableau(k, T) :
for i in range(0, 5) :
# lecture/ecriture du tableau T
T[i] = k*T[i]
# declare le programme principal
def main():
# construit un tableau
tab = empty((5), dtype=int)
# remplit le tableau
for i in range(0, 5) :
tab[i] = int(input())
# modifie les valeurs du tableau
multiplierTableau(3, tab)
# affiche le tableau
for i in range(0, 5) :
print (tab[i], end=" ")
# execute le programme principal
main()
Formulaire_AP_Python3
page 8/ 9
10
Enregistrements
Les enregistrements sont des types composés et doivent donc être initialisés avec un constructeur ou
une fonction d'initialisation.
Arbre Programmatique
Python
: enregistrement
partieReelle : réel ;
partieImaginaire : réel
Complexe
class Complexe:
def __init__(self):
self.partieReelle = float()
self.partieImaginaire = float()
c1 : Complexe
c1 = Complexe()
c1.partieReelle
c1.partieReelle
Exemple : nombres complexes
Complexe
r, i : réel
|
: enregistrement
from math import *
from numpy import *
# declare un enregistrement
class Complexe:
def __init__(self);
self.r = float()
self.i = float()
Complexe
initialiserComplexe
c : Complexe
−→
c.r ← 0.0 c.i ← 0.0 retourner c
nombresComplexes
c1 : Complexe
# declare une fonction
# d'initialisation
def initialiserComplexe() :
# construit un enregistrement
c = Complexe()
# initialise les champs
c.r = 0.0
c.i = 0.0
# retourne l'enregistrement
return c
−→
c1 ← initialiserComplexe()
...
# declare le programme principal
def main():
# initialise le complexe
c1 = initialiserComplexe()
# ...
# execute le programme principal
main()
Formulaire_AP_Python3
page 9/ 9
Téléchargement