Vous êtes sur la page 1sur 38

 Les opérateurs arithmétiques et leurs priorités :

Désignation de Priorité des Opérateur en Opérateur en


Exemples
l’opération opérateurs algorithme python
Parenthèses 1 () ()
Multiplication * * 10 * 2 donne 20
Division / / 10 / 2 donne 5.0
Division entière DIV // 10 // 2 donne 5
Reste de la 2
MOD % 10 % 2 donne 0
division entière
Addition + + 10 + 2 donne 12
Soustraction 3 - - 10 - 2 donne 8
Égal à = == 10 == 2 donne False
Différent de ≠ != 10 != 2 donne True
Strictement
< < 10 < 2 donne False
inférieur à
Strictement
> > 10 > 2 donne True
supérieur à 4
Inférieur ou
≤ <= 10 <= 2 donne False
égal à
Supérieur ou
≥ >= 10 >= 2 donne True
égal à
L’appartenance
(entier, 5 ∈ in 10 in [5,7,10] donne True
caractère)

Remarque :
Lorsque deux opérateurs sont de priorité égale, on évalue de gauche à droite.
Par exemple : a + b - c est évalué (a + b) - c, et non pas a + (b - c).

1
Pensée computationnelle et programmation

 Les fonctions prédéfinis sur les types numériques :


Un nombre décimal se compose d’une partie entière et d’une partie décimale.
La partie entière est à gauche de la virgule.
La partie décimale est à droite de la virgule.
Exemple :
12 , 39
Partie entière Partie décimale

Syntaxe en Syntaxe en
Rôle de la fonction Exemples
algorithme python

Ent (x) int (x) Elimine la partie décimale d'un réel. Ent (15.56) vaut 15

Retourne l'entier le plus proche de la


Arrondi (15.49) vaut 15
valeur de x.
Arrondi (15.5) vaut 16
 Ent (x), si la partie décimale < 0.5
Arrondi (x) round (x) Arrondi (16.5) vaut 16
 Ent (x)+1, si la partie décimale > 0.5
Arrondi (16.51) vaut 17
 L'entier pair le plus proche, si partie
décimale = 0.5

Racine_carré
sqrt (x) Retourne la racine carrée d'un Racine_carré (16) vaut 4.0
(x) Racine_carré (4) vaut 2.0
nombre x positif.

Retourne un entier aléatoire de Aléa (10,99) vaut 16


Aléa (vi,vf) randint (vi,vf)
l'intervalle [vi,vf]. Aléa (1,6) vaut 4

Enseignant : AHMED BELHASSEN 2


Pensée computationnelle et programmation

2) Le type booléen :
 Déclaration en algorithme :
Objet Type/nature
Général Nom Booléen
Exemple test Booléen

 Les opérateurs logiques et leurs priorités :


Ces opérateurs sont :
 non : négation
 et : conjonction
 ou : disjonction
 ouex : ou exclusif

x y non (x) x et y x ou y x ouex y


Faux Faux Vrai Faux Faux Faux
Faux Vrai Vrai Faux Vrai Vrai
Vrai Faux Faux Faux Vrai Vrai
Vrai Vrai Faux Vrai Vrai Faux

En algorithme En python
non not
et and
ou or
ouex ^

Il existe un ordre de priorité entre les opérateurs logiques : non, et, ou, ouex.

Enseignant : AHMED BELHASSEN 3


Pensée computationnelle et programmation

3) Le type caractère :
 Déclaration en algorithme :
Objet Type/nature
Général Nom Caractère
Exemple c Caractère

 Les fonctions prédéfinis sur le type caractère :

Syntaxe en Syntaxe en
Rôle de la fonction Exemples
algorithme python

ord ("0") vaut 48


ord (c) ord (c) Retourne le code ASCII du caractère c. ord ("A") vaut 65
ord ("a") vaut 97

Retourne le caractère dont le code chr (48) vaut "0"


chr (d) chr (d) chr (65) vaut "A"
ASCII est d.
chr (97) vaut "a"

Enseignant : AHMED BELHASSEN 4


Pensée computationnelle et programmation

 Table des codes ASCII :

HEX DEC CAR HEX DEC CAR HEX DEC CAR HEX DEC CAR
0 0 NUL 20 32 40 64 @ 60 96 `
1 1 SQH 21 33 ! 41 65 A 61 97 a
2 2 STX 22 34 " 42 66 B 62 98 b
3 3 ETX 23 35 # 43 67 C 63 99 c
4 4 EOT 24 36 $ 44 68 D 64 100 d
5 5 ENQ 25 37 % 45 69 E 65 101 e
6 6 ACK 26 38 & 46 70 F 66 102 f
7 7 BEL 27 39 ' 47 71 G 67 103 g
8 8 BS 28 40 ( 48 72 H 68 104 h
9 9 HT 29 41 ) 49 73 I 69 105 i
A 10 LF 2A 42 * 4A 74 J 6A 106 j
B 11 VT 2B 43 + 4B 75 K 6B 107 k
C 12 FF 2C 44 , 4C 76 L 6C 108 l
D 13 CR 2D 45 - 4D 77 M 6D 109 m
E 14 SO 2E 46 . 4E 78 N 6E 110 n
F 15 SI 2F 47 / 4F 79 O 6F 111 o
10 16 DLE 30 48 0 50 80 P 70 112 p
11 17 DC1 31 49 1 51 81 Q 71 113 q
12 18 DC2 32 50 2 52 82 R 72 114 r
13 19 DC3 33 51 3 53 83 S 73 115 s
14 20 DC4 34 52 4 54 84 T 74 116 t
15 21 NAK 35 53 5 55 85 U 75 117 u
16 22 SYN 36 54 6 56 86 V 76 118 v
17 23 ETB 37 55 7 57 87 W 77 119 w
18 24 CAN 38 56 8 58 88 X 78 120 x
19 25 EM 39 57 9 59 89 Y 79 121 y
1A 26 SUB 3A 58 : 5A 90 Z 7A 122 z
1B 27 ESC 3B 59 ; 5B 91 [ 7B 123 {
1C 28 FS 3C 60 < 5C 92 \ 7C 124 |
1D 29 GS 3D 61 = 5D 93 ] 7D 125 }
1E 30 RS 3E 62 > 5E 94 ^ 7E 126 ~
1F 31 US 3F 63 ? 5F 95 _ 7F 127

Enseignant : AHMED BELHASSEN 5


Pensée computationnelle et programmation

4) Le type chaine de caractères :


 Déclaration en algorithme :
Objet Type/nature
Général Nom Chaine de caractères
Exemple ch Chaine de caractères

 Slicing en python :
On peut découper la chaîne de caractère avec la syntaxe ch [d : f] où d représente l’indice de début, f
l’indice de fin. Le premier indice d est inclus, le dernier f ne l’est pas.
ch [d:f] produit donc la chaîne de caractère composée des éléments ch [0] à ch [f-1].
On prendra tous les éléments à droite de d et à gauche de f.
Exemples :
ch = "Hello World!"
 ch [0:7] donne "Hello W"
 ch [:7] donne "Hello W"
 ch [6:13] donne "World !"
 ch [6:] donne "World !"

Enseignant : AHMED BELHASSEN 6


 Les fonctions prédéfinis sur le type chaines de caractères :

Syntaxe en Syntaxe en
Rôle de la fonction Exemples
algorithme python

ch1 "programmer"
Permet la concaténation de deux ch2 "en"
+ + ou plusieurs chaînes des ch3 "PYTHON"
ch  ch1+ch2+ch3
caractères. ch contient
"programmerenPYTHON"

Retourne la longueur de la chaîne L  long (ch)


long (ch) len (ch)
ch. L contient 18

Retourne la première position de p  pos ("r", ch)


pos (ch1, ch2) ch2.find (ch1)
la chaine ch1 dans la chaine ch2. p contient 1

Retourne la conversion d’un x  11231


convch (d) str (d) nombre d en une chaine de ch  convch (x)
ch contient "11231"
caractères.

x  valeur (ch)
Retourne la conversion d’une x contient 11231
int (ch) chaine ch en une valeur
valeur (ch)
float (ch) numérique sinon elle provoque ch "100.25"
une erreur. x  valeur (ch)
x contient 100.25

x  estnum ("100")
ch.isdigit () Retourne vrai si la chaîne ch est
x contient Vrai
estnum (ch) ch.isdecimal () convertible en une valeur
x  estnum ("a25")
ch.isnumeric () numérique, elle retourne faux
x contient Faux
sinon.

7
 Les fonctions prédéfinis sur le type chaines de caractères :

Syntaxe en Syntaxe en
Rôle de la fonction Exemples
algorithme python

ch1  sous_chaine
Retourne une partie de la chaine ("Programmer en
sous_chaine ch à partir de la position d Jusqu'à python", 0,10)
ch[d:f]
(ch, d, f)
la position f (non incluse). ch1 contient
"Programmer"

ch1  efface
Retourne une partie de la chaine ("Programmer en
efface (ch, d, f) ch[:d] + ch[f:] ch à partir de la position d Jusqu'à python", 10,13)
la position f (non incluse). ch1 contient
"Programmer python"

majus (ch) ch.upper () Retourne la chaîne ch en ch1  majus ("python")


ch1 contient "PYTHON"
majuscules.

8
Pensée computationnelle et programmation

5) Le type tableau :
 Déclaration en algorithme :
Objet Type/nature
Général nom Tableau de taille et de type élément
Exemple t Tableau de 100 entiers

Ou bien :
Tableau de déclaration des nouveaux types (TDNT)
Type
Type = Tableau de taille et de type élément

Tableau de déclaration des objets (TDO)


Objet Type/nature
nom Type
Exemple :
Tableau de déclaration des nouveaux types (TDNT)
Type
Tab = Tableau de 100 entiers

Tableau de déclaration des objets (TDO)


Objet Type/nature
t Tab

 Implémentation en python :
Python propose plusieurs implémentations du tableau dont les listes et les tableaux numpy.
1) Les listes :
Une liste est une collection ordonnée d’éléments éventuellement hétérogènes, ces éléments sont
séparés par des virgules, et entourés de crochets et accessibles à l’aide des indices associés (liste
[indice]).
Déclaration :
 L = [] #déclaration d’une liste vide
 L = [v1, v2, v3,…] #initialiser une liste par des valeurs
 L = [type] * nb_éléments
 L = [valeur] * nb_éléments
 L = [valeur for i in range (nb_éléments)]
La méthode append : permet d'ajouter un élément à la fin d’une liste.
Exemple :
>>> L= [0,2,3,1]

Enseignant : AHMED BELHASSEN 9


Pensée computationnelle et programmation

>>> L .append (5)


L contient [0,2,3,1,5]

2) Les tableaux numpy :


Contrairement aux listes en Python, les tableaux Numpy ne peuvent contenir des membres que d'un
seul type.
Ce type est automatiquement déduit au moment de la création du tableau, et a un impact sur les
opérations qui y seront appliquées.
En python :
nom_tableau = array ([valeur1,valeur2,….])
1ère méthode :
Exemple : t = array ([1,2,3])

2ème méthode :
Entier int t = array ([0] * n, int)
t = array ([0 for i in range (n)], int)

Réel float t = array ([0] * n, float)


t = array ([0. for i in range (n)], float)

Caractère str t = array ([""] * n, str)


t = array (["" for i in range (n)], str)

Chaine (str , nombre_caractère) t = array ([""] * n, (str,20))


t = array (["" for i in range (n)], (str,20))

Exemple :
t = array ([0] * 5, int)

nom_tableau = empty (n, type)


3ème méthode :
Exemple : t = empty (5, "i")
Types :

"i" : entier
"f" : réel
"?" : booléen
"U" : caractère
"Ux" : chaine de x caractères

Enseignant : AHMED BELHASSEN 10


Pensée computationnelle et programmation

6) Les tableaux à deux dimensions :


 Déclaration d’un tableau à deux dimensions :
En algorithme :

Objet Type/nature
Général nom Tableau de nb lignes * nb colonnes Type élément
Exemple m Tableau de 4 lignes * 5 colonnes entiers

Ou bien :
Tableau de déclaration des nouveaux types (TDNT)
Type
Type = Tableau de nb lignes * nb colonnes Type élément

Tableau de déclaration des objets (TDO)


Objet Type/nature
nom Type
Exemple :
Tableau de déclaration des nouveaux types (TDNT)
Type
Mat = Tableau de 4 lignes * 5 colonnes entiers

Tableau de déclaration des objets (TDO)


Objet Type/nature
m Mat
En python :
nom_matrice = array ([[valeur1,valeur2,….],[valeur1,valeur2,….],…])
1ère méthode :
Exemple : m = array ([[1,2,3],[4,5,6]])

2ème méthode :
Entier int m = array ([[0] * c for i in range (l)], int)
Réel float m = array ([[0] * c for i in range (l)], float)
Caractère str m = array ([[""] * c for i in range (l)], str)
Chaine (str , nombre_caractère) m = array ([[""] * c for i in range (l)], (str,20))

Exemple :
m = array ([[0] * 5 for i in range (4)], int)

nom_matrice = empty ((l,c), type)


3ème méthode :
Exemple : m = empty ((4,5), "i")

Enseignant : AHMED BELHASSEN 11


Pensée computationnelle et programmation

7) Les structures simples :

 L’affectation :

Action en algorithme Action en python


variable  expression variable = expression

 L’affichage :
 Affichage d’un message texte :

Action en algorithme Action en python


Ecrire ("texte") print ("texte")

 Affichage du contenu d’une variable :

Action en algorithme Action en python


Ecrire (objet) print (objet)

 Affichage mixte :

Action en algorithme Action en python


Ecrire ("texte", objet) print ("texte", objet)
Ecrire ("texte", objet, expression) print ("texte", objet, expression)

 La lecture :

Action en algorithme Action en python


Lire (variable) variable = input ()

Ecrire ("texte")
variable = input ("texte")
Lire (variable)

La fonction input () effectue toujours une saisie en mode texte (la valeur retournée est une
chaîne) dont on peut ensuite changer le type (on dit aussi « transtyper » ou cast en anglais).

Enseignant : AHMED BELHASSEN 12


Pensée computationnelle et programmation

8) Les structures de contrôle conditionnelles :

En algorithme En python

Si condition alors if condition :


Traitement Traitement
Fin si

En algorithme En python

Si condition alors if condition :


Traitement 1 Traitement 1
Sinon else :
Traitement 2 Traitement 2
Fin si

En algorithme En python

Si condition 1 alors if condition 1 :


Traitement 1 Traitement 1
Sinon si condition 2 alors elif condition 2 :
Traitement 2 Traitement 2
Sinon si condition 3 alors elif condition 3 :
Traitement 3 Traitement 3
…………………………. ………………………….
Sinon else :
Traitement n Traitement n
Fin si

Enseignant : AHMED BELHASSEN 13


Pensée computationnelle et programmation

9) Les structures de contrôle itératives :

En algorithme En python

Pour c de vi à vf faire for c in range (vi,vf+1) :


bloc d'instructions bloc d'instructions
Fin Pour

Pour c de vi à vf (pas = valeur_pas) faire for c in range (vi,vf+1,valeur_pas) :


bloc d'instructions bloc d'instructions
Fin Pour

En algorithme En python

Tant que (condition non arrêt) faire while (condition non arrêt) :
bloc d'instructions bloc d'instructions
Fin tant que

En algorithme En python

Répéter Initialisation
bloc d'instructions while (condition non arrêt) :
Jusqu'à (condition d’arrêt) bloc d’instructions

Enseignant : AHMED BELHASSEN 14


Pensée computationnelle et programmation

10) Les sous programmes :

a) Les fonctions :
 En algorithme :
Fonction nom_fonction (pf1 : type , pf2 : type ……… pfn : typen) : type résultat
Début
Traitement
Retourner résultat
Fin
En python :
def nom_fonction (pf1 : type , pf2 : type ……… pfn : typen) :
Traitement
return résultat

b) Les procédures :
 Vocabulaire et syntaxe :
En algorithme :
Procédure nom_procédure (pf1 : type , pf2 : type ……… pfn : typen)
Début
Traitement
Fin
En python :
def nom_procédure (pf1 : type , pf2 : type ……… pfn : typen) :
Traitement

c) Les variables locales et les variables globales :


Une variable locale est une variable déclarée dans le corps d'un sous-programme.
Elle n’est accessible qu’à l’intérieur du module dans lequel elle a été déclarée.
Une variable globale est une variable définie en dehors d'un sous-programme.
Elle est visible et utilisable dans tout le programme.
En python :

Il faut ajouter le mot-clé global pour modifier une variable globale à l'intérieur du module.

Enseignant : AHMED BELHASSEN 15


Pensée computationnelle et programmation

d) Les différents types de paramètres :


Les paramètres placés dans la déclaration d'un sous-programme sont appelés paramètres formels.
Les paramètres placés dans l'appel d'un sous-programme sont appelés paramètres effectifs.
Lors de l’appel du sous-programme les paramètres effectifs viennent remplacer les paramètres
formels.
Cette substitution de paramètres s’appelle passage de paramètres.
 Les paramètres effectifs et les paramètres formels doivent s’accorder de point de vue nombre
et ordre et doivent être de mêmes types ou de types compatibles.
 Un paramètre formel peut être déclaré par le nom de son paramètre effectif ou par un nom
différent.

e) Les modes de passage de paramètres :


Mode de passage par valeur :
Dans ce type de passage, le paramètre formel reçoit uniquement une copie de la valeur du paramètre
effectif.
La valeur du paramètre effectif ne sera jamais modifiée après l’exécution du sous-programme.
En python :
Les types non modifiables (entier, réel, booléen, chaine de caractères) passent par valeur.

Mode de passage par référence (par adresse) :


Dans ce type de passage, le sous-programme utilise l'adresse du paramètre effectif.
Lorsqu'on utilise l'adresse du paramètre, on accède directement à son contenu.
La valeur du paramètre effectif sera donc modifiée.
En python :
Les types modifiables (liste, tableau numpy , dictionnaire,….) passent par référence (adresse).
En algorithme :
Si le mode de passage est par référence (par adresse), on ajoutera le symbole @ avant le nom du
paramètre.

Enseignant : AHMED BELHASSEN 16


Pensée computationnelle et programmation

11) Les algorithmes de tri :

 Tri par sélection :

Algorithme de la procédure tri_par_sélection :


Procédure tri_par_sélection (@ t : Tab, x : entier)
Début
Pour i de 0 à x-2 faire
pos_max  i
Pour j de i+1 à x-1 faire
Si (t [pos_max] < t [j]) alors
pos_max  j
Fin si
Fin pour
Si (pos_max ≠ i) alors
aux  t [i]
t [i]  t [pos_max]
t [pos_max]  aux
Fin si
Fin pour
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
i , j , pos_max , aux Entier

Enseignant : AHMED BELHASSEN 17


Pensée computationnelle et programmation

 Tri à bulles :

Algorithme de la procédure tri_à_bulles :


Procédure tri_à_bulles (@ t : Tab, x : entier)
Début
échange  Vrai
Tant que (échange) faire
échange  Faux
Pour i de 0 à x-2 faire Tableau de déclaration des objets locaux (TDOL)
Si (t [i] < t [i+1]) alors Objet Type/Nature
aux  t [i] i , aux Entier
échange Booléen
t [i]  t [i+1]
t [i+1]  aux
échange  Vrai
Fin si
Fin pour
Fin tant que
Fin

Enseignant : AHMED BELHASSEN 18


Pensée computationnelle et programmation

12) Les algorithmes de recherche :

 La recherche séquentielle :

Algorithme de la fonction recherche :


Fonction recherche (t : Tab, x : entier, e : entier) : entier
Début
pos  -1
i0
Tant que (t [i] ≠ e) et (i ≠ x-1) faire
ii+1
Fin tant que
Si (t [i] = e) alors
pos  i
Fin si
Retourner pos
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
i , pos Entier

Enseignant : AHMED BELHASSEN 19


Pensée computationnelle et programmation

 La recherche dichotomique :

Algorithme de la fonction recherche :


Fonction recherche (t : Tab, x : entier, e : entier) : entier
Début
d0
f  x-1
Tant que (d <= f) faire
m  (d + f) div 2
Si (t [m] = e) alors Tableau de déclaration des objets locaux (TDOL)
Retourner m Objet Type/Nature
Sinon si (t [m] > e) d,f,m Entier

fm–1
Sinon
d m+1
Fin si
Fin tant que
Retourner -1
Fin

Enseignant : AHMED BELHASSEN 20


Pensée computationnelle et programmation

13) Les algorithmes arithmétiques :

 PGCD :

Algorithme de la fonction pgcd_euclide :


Fonction pgcd_euclide (x : entier, y : entier) : entier
Début
Tant que (y ≠ 0) faire
ry
y  x mod y
xr
Fin tant que
Retourner x
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
r Entier

Algorithme de la fonction pgcd_différence :


Fonction pgcd_différence (x : entier, y : entier) : entier
Début
Tant que (x ≠ y) faire
Si (x > y) alors
xx-y
Sinon
yy-x
Fin si
Fin tant que
Retourner x
Fin

Enseignant : AHMED BELHASSEN 21


Pensée computationnelle et programmation

 PPCM :

Algorithme de la fonction ppcm :


Fonction ppcm (x : entier, y : entier) : entier
Début
mx  x
mi  y
Si (y > x) alors
mx  y
mi  x
Fin si
Tant que (mx mod mi ≠ 0) faire
mx  mx + x + y - mi
Fin tant que
Retourner mx
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
mx , mi Entier

Enseignant : AHMED BELHASSEN 22


Pensée computationnelle et programmation

 Premier :

Algorithme de la fonction premier :


Fonction premier (x : entier) : booléen
Début
Si (x <= 1) alors
Retourner Faux
Fin si
Pour i de 0 à x div 2 faire
Si (x mod i = 0) alors
Retourner Faux
Fin si
Fin pour
Retourner Vrai
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
i Entier

Enseignant : AHMED BELHASSEN 23


Pensée computationnelle et programmation

 Facteurs premiers :

Algorithme de la procédure facteurs :


Procédure facteurs (x : entier)
Début
ax
i2
j0
Tant que (a ≠ 1) faire
Si (a mod i = 0) alors
a  a div i
fact [j]  i
jj+1
Sinon
ii+1
Fin si
Fin tant que
ch  convch (fact [0])
Pour i de 1 à j-1 faire
ch  ch + " * " + convch (fact [i])
Fin pour
Ecrire (x , "=" , ch)
Fin
Tableau de déclaration des objets locaux (TDOL)
Objet Type/Nature
i,j,a Entier
ch Chaine de caractères
fact Tableau de 100 entiers

Enseignant : AHMED BELHASSEN 24


Pensée computationnelle et programmation

14) Les enregistrements :

 Déclaration :
En algorithme :
Tableau de déclaration des nouveaux types
Type

nom_type = Enregistrement
champ 1 : type 1
champ 2 : type 2
……………..
champ n : type n
Fin

Tableau de déclaration des objets


Objet Type/Nature
nom_variable nom_type

Les types (type 1, type 2, .. , type n) peuvent être soit prédéfinis, soit définis par l'utilisateur.
En python :
En utilisant les classes :
Une classe est un ensemble incluant des variables ou attributs et des fonctions ou méthodes.
Les attributs sont des variables accessibles depuis toute méthode de la classe où elles sont définies.
Forme générale :

nom_type = Enregistrement class nom_type :


champ 1 : type 1 champ 1 = valeur d’initialisation
champ 2 : type 2 champ 2 = valeur d’initialisation
…………….. ……………..
champ n : type n champ n = valeur d’initialisation
Fin
nom_variable = nom_type ( )

Enseignant : AHMED BELHASSEN 25


Pensée computationnelle et programmation

Exemple :
En algorithme :
Tableau de déclaration des nouveaux types
Type

ville = Enregistrement
nom : chaine de caractères
code : entier
surface : réel
population : entier
Fin

Tableau de déclaration des objets


Objet Type/Nature
v ville
En python :
class ville :
nom = ""
code = 0
surface = 0.0
population = 0

v = ville ( )

En utilisant les dictionnaires :


Un dictionnaire est une structure de données dite associative, car elle permet de stocker une valeur
en lui associant une clé. Cette clé permet ensuite de retrouver la valeur associée.
Exemple :
Dictionnaire répertoire :
Clé Valeur
11111111 Mohamed
55555555 Jamel
77777777 Kamel
Ce dictionnaire a 3 entrées.
Les clés sont les numéros de téléphone.
Les valeurs sont les noms des correspondants.
On accède à un élément d'un dictionnaire par son clé, avec la notation nom_dictionnaire [clé].
répertoire ["55555555"] nous donne "Jamel"

Enseignant : AHMED BELHASSEN 26


Pensée computationnelle et programmation

Forme générale :
nom_type = Enregistrement nom_variable = {"champ 1" : valeur 1,"champ 2" :
champ 1 : type 1 valeur 2,…….., "champ n" : valeur n}
champ 2 : type 2
Ou bien :
……………..
nom_variable = dict (champ 1 : valeur 1 , champ
champ n : type n
2 : valeur 2,…….,champ n : valeur n)
Fin

Ou bien :
nom_variable = {}
ou nom_variable = dict () #dictionnaire vide
nom_variable ["champ 1"] = valeur 1
nom_variable ["champ 2"] = valeur 2
……………..
nom_variable ["champ n"] = valeur n

Exemple :
En algorithme :
Tableau de déclaration des nouveaux types
Type

ville = Enregistrement
nom : chaine de caractères
code : entier
surface : réel
population : entier
Fin

Tableau de déclaration des objets


Objet Type/Nature
v ville
En python :
v = {"nom" : valeur 1,"code" : valeur 2,"surface" : valeur 3, "population" : valeur 4}
Ou bien :
v = dict ("nom" : valeur 1,"code" : valeur 2 ,"surface" : valeur 3 ,"population" : valeur 4)
Ou bien :
v = {}
# v = dict ()

Enseignant : AHMED BELHASSEN 27


Pensée computationnelle et programmation

v ["nom"] = valeur 1
v ["code"] = valeur 2
v ["surface"] = valeur 3
v ["population"] = valeur 4

 Manipulation des enregistrements :


Soit v une variable de type ville.
Affectation :
Action en algorithme Action en python
variable.champ  expression variable.champ = expression
Exemple :
Action en algorithme Action en python
v.nom = "Kébili"
v.nom  "Kébili"
v ["nom"] = "Kébili"
Lecture :
Action en algorithme Action en python
Lire (variable.champ) variable.champ = input ()
Exemple :
Action en algorithme Action en python
v.code = int (input ())
Lire (v.code)
v ["code"]= int (input ())

Affichage :
Action en algorithme Action en python
Ecrire (variable.champ) print (variable.champ)
Ecrire ("texte", variable.champ) print ("texte", variable.champ)
Exemple :
Action en algorithme Action en python
print (v.surface)
Ecrire (v.surface)
print (v ["surface"])
print ("Surface =", v.surface)
Ecrire ("Surface =", v.surface)
print ("Surface =", v ["surface"])

Enseignant : AHMED BELHASSEN 28


Pensée computationnelle et programmation

 Tableau d’enregistrements :
Un tableau d’enregistrements est un tableau de n enregistrements.
Exemple : Tableau de 3 villes
nom : nom : nom :
code : code : code :
surface : surface : surface :
Population : Population : Population :
0 1 2
Déclaration :
En algorithme :
Tableau de déclaration des nouveaux types
Type

nom_type = Enregistrement
champ 1 : type 1
champ 2 : type 2
……………..
champ n : type n
Fin
nom_type_tableau = Tableau de n nom_type

Tableau de déclaration des objets


Objet Type/Nature
nom_tableau nom_type_tableau
Exemple :
Tableau de déclaration des nouveaux types
Types

ville = Enregistrement
nom : chaine de caractères
code : entier
surface : réel
population : entier
Fin
Tab = tableau de 10 villes

Tableau de déclaration des objets globaux (TDOG)


Objet Type/Nature
t Tab

Enseignant : AHMED BELHASSEN 29


Pensée computationnelle et programmation

En python :
En utilisant les classes :

from numpy import *


…………………….
nom_tableau = empty (taille_tableau, nom_type)
Ou bien : nom_tableau = array ([nom_type] * taille_tableau)
Exemple :

from numpy import *


…………………….
t = empty (n , ville)
# t = array ([ville] * n)

En utilisant les dictionnaires :

from numpy import *


…………………….
nom_tableau = array ([{}] * taille_tableau)
Exemple :

from numpy import *


…………………….
t = array ([{}] * n)

Enseignant : AHMED BELHASSEN 30


Pensée computationnelle et programmation

15) Les fichiers de données :


 Déclaration :
En algorithme :
Tableau de déclaration des nouveaux types
Type

nom_type = Enregistrement
champ 1 : type 1
champ 2 : type 2
……………..
champ n : type n
Fin
nom_fichier1 = Fichier de nom_type
nom_fichier2 = Fichier de type

Tableau de déclaration des objets


Objet Type/Nature
nom_logique1 nom_fichier1
nom_logique2 nom_fichier2

Exemple :
Tableau de déclaration des nouveaux types
Type

ville = Enregistrement
nom : chaine de
caractères
code : entier
surface : réel
population : entier
Fin
fvilles = Fichier de ville
fnotes = Fichier de réels

Tableau de déclaration des objets


Objet Type/Nature
v fvilles
f fnotes

Enseignant : AHMED BELHASSEN 31


Pensée computationnelle et programmation

 Traitement sur les fichiers de données :


 Ouverture :
 Mode d’ouverture en python :

Valeur par défaut.


"r" Ouvrir le fichier en lecture.
Erreur si le fichier n’existe pas.
Ouvrir le fichier en écriture.
"w"
Si le fichier existe son contenu sera effacé sinon (le fichier n'existe pas) python le crée.
Ouvrir le fichier en mode ajout à la fin (append).
"a"
Si le fichier n'existe pas python le crée.
Créer un nouveau fichier et l'ouvrir pour écriture.
"x"
Erreur si le fichier existe.
On peut ajouter une deuxième lettre dans le mode d’ouverture pour spécifier le type de fichier.
"t" Par défaut, fichier texte.
"b" Fichier binaire (pour nous, sera utilisé pour les fichiers typés).

En algorithme :
Ouvrir ("chemin\nom_physique", nom_logique , "mode")
Rôle :
Ouverture d’un fichier.
Mode d’ouverture :
 "rb" : Lecture (pointer au début).
 "wb" : Ecriture (création).
 "ab" : Ecriture à la fin du fichier.
En python :
nom_logique = open ("chemin\nom_physique", "mode")
with open ("chemin\nom_physique","mode") as nom_logique
Exemple :
Ouvrir ("apprenants.dat", f ,"wb")
f = open ("apprenants.dat","wb")

Enseignant : AHMED BELHASSEN 32


Pensée computationnelle et programmation

 Lecture :

En algorithme :
Lire (nom_logique, objet)
Rôle :
Lecture d’un enregistrement d’un fichier.
En python :
from pickle import *
objet = load (nom_logique)
Exemple :
Lire (f,a)
from pickle import *
a = load (f)

 Ecriture :

En algorithme :
Ecrire (nom_logique, objet)
Rôle :
Ecriture dans un fichier.
En python :
from pickle import *
dump (objet, nom_logique)
Exemple :
Ecrire (f,a)
from pickle import *
dump (a,f)

Enseignant : AHMED BELHASSEN 33


Pensée computationnelle et programmation

 Pointer :

En algorithme :
Pointer (nom_logique, p)
Rôle :
Se pointer à une position p du fichier (p ∈ 0 , Taille_fichier - 1])
En python :
nom_logique.seek (p)
Exemple :
Pointer (f,3)
f.seek (3)

 Test de fin fichier :

En algorithme :
Fin_fichier (nom_logique)
Rôle :
Retourne Vrai si le pointeur est à la fin du fichier sinon elle retourne Faux.
En python : pas de correspondance

Exemple :
Fin_fichier (f)

 Taille du fichier :

En algorithme :
Taille_fichier (nom_logique)
Rôle :
Retourne la taille du fichier.
En python : pas de correspondance

Exemple :
Taille_fichier (f)

Enseignant : AHMED BELHASSEN 34


Pensée computationnelle et programmation

 Fermeture :

En algorithme :
Fermer (nom_logique)
Rôle :
Fermeture du fichier.
En python :
nom_logique.close ()
Exemple :
Fermer (f)
f.close ()

Enseignant : AHMED BELHASSEN 35


Pensée computationnelle et programmation

16) Les fichiers texte :


 Déclaration :
En algorithme :

Tableau de déclaration des objets


Objet Type/Nature
nom_logique Texte

Exemple :

Tableau de déclaration des objets


Objet Type/Nature
f Texte

 Traitement sur les fichiers textes :

 Ouverture :

En algorithme :
Ouvrir ("chemin\nom_physique", nom_logique , "mode")
Rôle :
Elle permet d’ouvrir un fichier.
Mode d’ouverture :
 "r" : Lecture.
 "w" : Ecriture (création).
 "a" : Ecriture à la fin du fichier.
En python :
nom_logique = open ("chemin\nom_physique", "mode")
Exemple :
Ouvrir ("Résultat.txt", f2 ,"w")
f2 = open ("Résultat.txt","w")

Enseignant : AHMED BELHASSEN 36


Pensée computationnelle et programmation

 Lecture :

En algorithme :
Lire (nom_logique, ch)
Rôle :
Lecture de la totalité d’un fichier.
En python :
ch = nom_logique.read ()
Exemple :
Lire (f, ch)
ch = f.read ()

En algorithme :
Lire_ligne (nom_logique, ch)
Rôle :
Lecture d’une ligne depuis un fichier texte, et placer le curseur sur la ligne suivante.
En python :
ch = nom_logique .readline ()
Exemple :
Lire (f, ch)
ch = f.readline ()

 Ecriture :

En algorithme :
Ecrire (nom_logique, ch)
Rôle :
Ecriture dans un fichier texte.
En python :
Ecriture sans retour à la ligne : nom_logique.write (ch)
Ecriture avec retour à la ligne : nom_logique.write (ch+"\n")
Exemple :
Ecrire (f, ch)
f.write (ch)

Enseignant : AHMED BELHASSEN 37


Pensée computationnelle et programmation

 Test de fin fichier :

En algorithme :
Fin_fichier (nom_logique)
Rôle :
Retourne Vrai si le pointeur est à la fin du fichier sinon elle retourne Faux.
En python : pas de correspondance

 Fermeture :

En algorithme :
Fermer (nom_logique)
Rôle :
Fermeture du fichier.
En python :
nom_logique.close ()
Exemple :
Fermer (f)
f.close ()

Enseignant : AHMED BELHASSEN 38

Vous aimerez peut-être aussi