0% ont trouvé ce document utile (0 vote)
54 vues12 pages

Module3-Les Structures de Données

Le document présente un module sur les structures et types de données en programmation, avec des activités pratiques en Python. Il aborde la définition et l'utilisation des constantes, variables, ainsi que les types de données tels que les entiers et réels. Des exemples d'algorithmes et de scripts Python sont fournis pour illustrer les concepts, notamment le calcul de surfaces, la manipulation de nombres, et des exercices d'application.

Transféré par

lycee7avril1943
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues12 pages

Module3-Les Structures de Données

Le document présente un module sur les structures et types de données en programmation, avec des activités pratiques en Python. Il aborde la définition et l'utilisation des constantes, variables, ainsi que les types de données tels que les entiers et réels. Des exemples d'algorithmes et de scripts Python sont fournis pour illustrer les concepts, notamment le calcul de surfaces, la manipulation de nombres, et des exercices d'application.

Transféré par

lycee7avril1943
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Module 3 : Les Structures & les types de Données Cours & TP

LES STRUCTURES & LES TYPES DE DONNEES


Activité de mise en situation : On se propose de calculer la surface d’un cercle de rayon
r.
Ecrire un algorithme et le programme correspondant intitulé « Surface » qui permet
de calculer et d’afficher la surface d’un cercle.
Avec r : rayon (en mètre) pi = 3.14.

Données à saisir
Traitements à effectuer Résultat à
……………………….. afficher
……………………….. ………………………………..
……………………….

Algorithme ..................................... Script Python :


………………………………… ………………………………………………...……
…………………………………………………………
………………………………………………………
……………………………………….…………………
………………………………………………………
…………………………………………………………
………………………………………………………….
………………………………………………………
………………………………………………….……… .……………………………………..
T.D.O. ………………………………………………………
Objet Type
..……………

Constatations : Un programme manipule « des objets » qui peuvent changer de valeurs


(appelés « …………….…. » et d’autres objets qui ne changent pas de valeurs (appelés des
« …………………… »)
I. L’objet « Constante » :
Activité 1:
Ecrire un code en Python qui permet : ………………………………………………..
 D’afficher la constante pi, …………………………….
 D’incrémenter pi de 1 …………………………….
 D’afficher pi …………………………….
 Exécuter ce code, que constatez-vous?
Constatations :
- On constate que la constante …………. peut être changée au cours du programme.
Mais sa valeur initiale reste la ……………
- Après la fermeture de l'éditeur IDLE et son ouverture de nouveau, on remarque que la valeur pi
est à …………….

2ème SI – 2020/2021(Sfax) 1 Prof : Mme MKAOUAR L.


Module 3 : Les Structures & les types de Données Cours & TP

II. L’objet « variable » :


1) Définition :
Une variable est un espace mémoire de l’ordinateur dans lequel une valeur est stockée
et qui peut subir des modifications au cours d’un traitement. Elle est caractérisée par un
nom ou (identificateur), un type et un contenu.
2) Syntaxe :
Nom_Variable = valeur_variable
Exp :
a = 3 # On définit la variable « a » avec sa valeur 3 3
b = 5 # Une autre variable b initialisée à 5 a
Remarque : le contenu d’une variable peut être modifié soit par une opération d’affectation soit
par une opération de lecture ( a = input ( ‘ donner a : ‘ ))
En Python, une variable :
 doit commencer par une lettre ou un Underscore « _ » (Exp : age _age )
 contient des chiffres
 ne contient pas de caractères spéciaux (@ - ; ? ! …)
 ne contient pas d’espaces
 peut avoir des underscores pour les noms de variables combinés (Exp : age_personne)
Attention ! Python distingue les majuscules des minuscules (Python est sensible à la casse)
Donc age, AGE ou Age sont des variables différentes.
Exp :
x1 est un identificateur valide
_x1 est un identificateur ………………..
1x_y n'est pas un identificateur valide car il commence par un ……………….
x-y …………………………………………………………………………………………..
Application en Python :
- Affecter aux variables temps et distance respectivement les valeurs 6.892 et 19
…………………………………
…………………………………
- Calculer et afficher la valeur de la vitesse ; telle que : V= distance / temps
………………………………………………………………………….
………………………………………………………………………….
- Améliorez l’affichage de la variable réel V en mettant deux chiffres après la virgule.
………………………………………………………………………….

III. Les types de données :


En Python, les principaux types standards sont :
- Les entiers numériques (………….),
- Les nombres décimaux (flottants) que nous appellerons (………….)
- Les chaînes de caractères (……………. ),
- Le booléen (……………….)
Il existe d’autres types (tels que ; le type liste, tuple, complexe ,…...)
Exemples :
En algorithmique En Python
Identificateu
r Conten
Type Contenu Type
u
Age 21 …………… 21 ……………
Rayon 5.23 …………… 5.23 ……………
Nom ‘’ali’’ …………… ‘’ali’’ ……………
Test vrai …………… True ……………

1) Le type entier (Int) :


2ème SI – 2020/2021(Sfax) 2 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

a) Les opérateurs arithmétiques sur les entiers :


A part les opérateurs arithmétiques usuels (+ - * / ), on ajoutera deux opérateurs : Div( // )
et Mod(%)
Syntaxe
Opérateur Algorith Exemple :
Python
me
Addition 2+2 =
+ +
………
Soustraction - - 2-2 = ………
Multiplication 3*2=
* *
………
Division 5/2 =
/ /
………
Puissance 3**2 =
Puissance **
………
Division entière // // 5//2 = ……..
Reste de la division 5%2 = …..
% %
entière ….
Tels que ;
A B q = A // B
// : Donne le quotient (q) de la division entière.
% : (modulo) : donne le reste (r) de la division r q r =A% B
b)entière.
Ordre de priorité des opérateurs :
L'ordre de priorité est le suivant :
1. Les parenthèses ()
2. La multiplication *, la division /, la division entière // et le reste de la division
entière %
3. L'addition + et la soustraction –
N.B. Si les opérateurs ont la même priorité, on commence de gauche vers la droite.
Applications : Evaluez les expressions arithmétiques suivantes :

Instruction algorithmique Traduction en Python Evaluation :


A  ((40 DIV 3) MOD 4 ) + 6
B  22 - 25 MOD (2 * 3) + 1
C  15 – (12 MOD 2) * 3 -
16
D  (18 + 20 MOD 3) * 2 -
18
E  2*2 - 25 DIV 7 * 10
c) Les opérateurs relationnels sur les entiers : restent valables.
Syntaxe Algorithmique = ≠ < ≤ > ≥
Syntaxe Python == != < <= > >=

Application N° 1 :
Exemple ;
Question 1 : chercher les chiffres (d, u ) d’un entier (N) formé de 2 chiffres. N=
Le chiffre des (Dizaines) par d d  N ……… …… 49
Le chiffre des (Unités) par u u  N ……… ……
Question 2 : refaire le même travail pour chercher les chiffres (c, d, u ) d’un entier (N) formé de 3
chiffres. Exemple ;N=
Le chiffre des (Centaines) par c c  N ……… ……
739
Le chiffre des (Dizaines) par d d  (N ……… ……) …… ….. ou bien d ( N …… ……)
…… …...
2ème SI – 2020/2021(Sfax) 3 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

Le chiffre des (Unités) par u u  N ……… ……


Application N° 2 :
Ecrire un algorithme et un script Python « inverse » qui permet de saisir un entier « N » de
deux chiffres puis l’inverser. Exemples : 63  36 52  25

Algorithme ……………………..
Début Script Python :
……………………………………………………………… ………………………………………
……………………………………… ………………………………………
T.D.O.
……………………………………… ………………………………………
Objet Type
……………………………………… ………………………………………
……………………………………… ………………………………………
………………………………………
……….
………………………………………
……………………………………..
Application N° 3 : ………………………………..
Ecrire un algorithme intitulé « insertion » qui permet de saisir deux entiers x (formé de
deux chiffres) et y (formé d’un seul chiffre) et d’afficher le résultat de l’insertion de y dans x.
Comme le présente l’exemple : x = 12 y = 5 alors le programme affichera : Le résultat
est = 152
Algorithme : …………………….
……………………………......... Script Python :
……………………………………………………………… ………………………………………………..
………………………………… ………………………………………………
…………………………………. T.D.O.
Objet Type ………………………………………………
………………………………….
………………………………………………
……………………….
……………………………………..
………………………………………………
………………………………… ………………………………
…………………………………
…………………………………
Application N° 4 :
Ecrire un algorithme intitulé CHIFFRE permettant de saisir un nombre « N» formé de 3
chiffres, de calculer et d’afficher la somme S et le produit P des chiffres formant « N »
Exemple : N= 265 le programme affichera : La somme des chiffres est = 13
(2+6+5 = 13)
Le produit des chiffres est = 60 (2*6*5= 60)
Algorithme : …………………….
……………………………......... Script Python :
……………………………………………………………… ………………………………………………..
……………………………………………………………… ………………………………………………
…………………………………. T.D.O.
Objet Type
………………………………………………
………………………………….
………………………………………………
……………………….
……………………………………..
………………………………………………
………………………………… ………………………………………………
…………………………………
2ème SI – 2020/2021(Sfax) 4 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

…………………………………
………………………………….
2) Le type réel (Float):
a) Définition :
Une variable de type float est un nombre décimal avec virgule flottante (avec un point décimal)
Un float en python doit être écrit avec un point décimal. (Jamais avec une virgule)
Activité : Taper et exécuter le code suivant :
a=2.5
print(type(a)) #<class …….……….>
b=2,5
print(type(b)) #<class ………….….>
N.B. 2.5 est de type ………………. alors que 2,5 est de type ……………..
b) Les opérateurs applicables sur les réels :
Syntaxe
Opérateur Algorithm Exemple :
Python
e
Addition + + 1.2+6.25 = ………
Soustraction - - 2.45-6.0 = -3.55
Multiplication * * 1.3 * 0.2 = ………
Division / / 5.5 / 2 = ………
Puissance Puissance ** 0.0**0.0 = 1.0
Division entière // // 10.0//2.0 = ……..
Reste de la division
% % 10.0%2.0 = …..….
entière
c) Les fonctions arithmétiques standards sur les entiers et les réels :
NB : Pour utiliser les fonctions ci-dessous, il faut importer les modules « math » et
« random »
4

Nom de la Type du
Type du
fonction en En Python Rôle paramètre Exemples
résultat
algorithme x
Retourne la valeur entière trunc (-2.575) = ……..
Ent(x) Trunc (x) Réel Entier
de x. trunc (3.14)= ……..
Arrondit une valeur réelle à round (9.499) = …………
Arrondi(x) round (x) Réel Entier
l’entier le plus proche. round(2.35) = ……………..
Retourne la valeur absolue Réel ou Type de abs(-5.44) =
abs(x) abs(x) abs(-5) = …….
de x Entier x ……
Retourne la racine carré de Entier ou
RacineCarré(x) sqrt(x) Réel sqrt (4) = …………
x (x>=0) Réel
Retourne une valeur entière x= randint(2,5) x = …………
Aléa (x,y) randint(x,y) Entier Entier
entre x et y (avec x<=y) x= randint(2,10) x = …………..
d) Les opérateurs d’assignation sur les entiers et les réels :

Opérateur Expression Signification


+= a+=3 a=a+3
-= a-=3 a=a-3
*= a*=2 a=a*2
/= a/=2 a=a/2
%= a%=2 a=a%2
Evaluation :
Instruction Evaluation Type du résultat

2ème SI – 2020/2021(Sfax) 5 Prof : Mme MKAOUAR L.


Module 3 : Les Structures & les types de Données Cours & TP

a=2.25
a= ……………. ………………………
a+=2.75
a - =2 a = ………….. ………………………
a = float("12.36") a = …………
………………………
b=a+5 b= …………
a= 15.23
x=………………. ………………………
x= str(a)
a =27.0
b=…………….. ………………………
b =a%2 +2.36
a = round(2.235)
b=……………….. ………………………
b= a**2

Application 1 : donner le code Python qui permet d’ :

Description : Instruction Python :

Affecter la valeur 2.25 à la variable x

Afficher le contenu de x et son type


Affecter la puissance de x par 3 à la
variable y
Affecter un entier au hasard entre 10 et
20 à z
Arrondir la valeur de Pi à deux chiffres
décimaux et l’affecter à la variable a
Application 2 :

Réorganiser les lignes du code suivant pour que le programme affiche le montant à
payer pour un élève qui a acheté q cahiers, sachant que le prix d’un cahier est p=2.5 et
qu’il a eu une remise de 10% :

a) print ("le montant à payer est : " , m) N Instruction python


°
b) m= p*q
c) q=int (input("donner le nombre de cahiers :
" ))
d) r= (10*m)/100
e) p = 2.500
f) m=m-r

Application 3 :

Ecrire un algorithme puis un script Python qui permet de calculer et d’afficher la distance
« d » entre deux points M et N dans un repère de coordonnées respectives (x, y) et (x1, y1).
Sachant que d ¿ √ (x 1−x)²+( y 1− y )²

3) Le type booléen (bool):


a) Définition :
En Python, une variable de type bool peut prendre soit la valeur True (vrai) soit
False (faux).
2ème SI – 2020/2021(Sfax) 6 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

Exemple 1 :
1ère exécution ; 2ème exécution ;

Exemple 2 :
Exécution ;
Contatation ;
La variable booléenne « x »
(True) est ………………… de
la variable « y » (" True").

Exemple 3 :
Exécution ;

b) Les opérateurs logiques sur les booléens :


Python définit 3 opérateurs logiques :
Syntaxe
Syntaxe en Python
Algorithmique
NON not
ET and
OU or
Ci-dessous la table de vérité des opérations logiques de deux variables booléennes A et B :
Variable Type A B NON(B) A ET B A OU B
Faux Faux …………… Faux Faux
Faux Vrai …………… ………… ……………
A, B Booléen
Vrai Faux …………… Faux ……………
Vrai Vrai …………… …………… ……………

c) Ordre de priorité entre les opérateurs logiques :

Opérateur Opérations Exemple Priorité

() Parenthèses __ 1
Non Négation Non (3>4) =………. 2
ET Conjonction Non (3>2) ET (5 <7) = …….. 3
OU Disjonction Non ( 4=4) OU (-1 < 5) = …….…. 4

Remarque :
 Les opérations mises entre parenthèses sont les plus prioritaires.
 Si deux opérateurs de même priorité se succèdent, la priorité s’accorde à celui qui est à
gauche…vers la droite.

Evaluation :

A  (2 < 5 OU 15 > 24) ET ( 0 < 1) ………………………………………….…


………………………………………….…
………………………………………….… B  2 < 5 OU (15 > 24 ET 0 < 1)
2 ème
SI – 2020/2021(Sfax) 7 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

………………………..………………… ……………………..……………………
………………………………………….. ……………………..……………………
C  (Arrondi (0.05) = 0) OU ( (2**2) < 2 ) ET (7 DIV 3 > 2 )
………………………………………………………………..……
……………………………………………………………..………
…………………………………………………………………..…
Exemples d’applications :
Soit l’affectation en « Python » suivante : a, b, c = 6, 7, 42
Évaluer les instructions ci-dessous en donnant à chaque fois le résultat de Bx obtenu :
Instructions Evaluation
B1= (a == 6) B1= ……….
B2= (a==42) B2= ……….
B3= (a == 6 and b == 7) B3= ……….
B4=( a == 7 and b == 7) B4= ……….
B5= (not (a != 7) and (b <= 7) ) B5= ……….
B6= (a == 7) or (c == 42) B6= ……….
B7=(not (a == 7)) and (not (c != 6)) B7= ……….

4) Le type chaîne de caractères : (str)

1. Définition :
- Un caractère est un symbole unique, qui peut être une lettre minuscule "a", une lettre
majuscule "B", un symbole spécial "&", un chiffre "7", un espace " ".
- Une chaîne de caractères (string en anglais) est une suite de caractères placée entre
guillemets (simple ou double). Une chaîne de caractères peut contenir 0, 1 ou plusieurs
caractères.
- Une chaine ne contenant aucun caractère est dite chaine vide. (ch=’’ ).
- Une chaine représentée par un seul caractère est de longueur 1.
Exp : ch =’a’ : ch est représentée par la lettre ‘a’. ch = ‘1’, ch =’#’ , …
- La chaine ‘ali’ est une chaine de longueur 3 (contient 3 lettres).
NB : pour savoir la longueur d’une chaine, on peut utiliser la fonction len ( ) :

>>> ch = ‘python’
>>> print ( len (ch) )
…………
>>> ch1 = ‘p’
>>> print ( len(ch1))
…………
>>> ch2 = ‘’
>>> print ( len(ch2))
…………

Remarque : une chaîne de caractères est un objet immuable (c-à-d non modifiable) ;
ni changement, ni suppression et ni insertion.

2. Opérations sur les chaînes de caractères


a. Concaténation & multiplication :
Activité : Compléter le script ci-dessous :
>>> x= ’Mohamed ’

2ème SI – 2020/2021(Sfax) 8 Prof : Mme MKAOUAR L.


Module 3 : Les Structures & les types de Données Cours & TP

>>> y = ‘Ali’
>>> x+y # concaténer deux chaines (str)
…………………..………..
>>> y = 3
>>> x * y # multiplier (ou répéter) une chaine y fois
…………………………………………..

b. Les Fonctions standards sur les chaines :


Activité N°1 : lancer IDLE Python, saisir la séquence d’affectations suivante et compléter le
tableau ci-dessous :
ch="langage"
c="a"
ch1="python"
x = "2020"
y = 52
ph="13.75"
ch2= "4201"

Fonction Résultat à
Rôle
en Python afficher

a = ord(c) Renvoie le code ASCII du caractère c

b = chr(a) Renvoie le caractère dont le code ASCII est a

y = str(y) Convertit y en une chaine de caractère

n = int(ch2) Convertit la chaîne ch2 en un nombre entier

r = float(ph) Convertit la chaîne ph en un nombre réel

l = len(ch) Renvoie la longueur de ch

c. Les Méthodes de recherche sur les chaines :


p=ch.find(c) Renvoie la position de c dans ch

Application1 : écrire un script Python qui permet de saisir un caractère « c », une chaine
« ch », de chercher et d’afficher la position de « c……………………………………………………
» dans « ch » :
……………………………………………………
…………………………………………………….
……………………………..………………………

Application 2 : écrire un script Python qui permet de saisir un entier, de déterminer et


d’afficher le nombre de de chiffres dans cet entier.
……………………………………………………………
……………………………………………………………
…………………………………………………………….
……………………………..………………………………

2ème SI – 2020/2021(Sfax) 9 Prof : Mme MKAOUAR L.


Module 3 : Les Structures & les types de Données Cours & TP

Application 3 : écrire un script Python qui permet de saisir une chaine, de choisir un caractère
au hasard de cette chaine et d’afficher le code ASCII correspondant de ce caractère.
……………………………………………………………
……………………………………………………………
…………………………………………………………….
……………………………..………………………………

d. Les méthodes de changement de casse sur les chaines :


ch.upper() Convertit ch en Majuscule

ch.lower() Convertit ch en Minuscule

Remarque :
1) Les deux fonctions chr et ord s’appliquent aux caractères et permettent respectivement de
retourner le caractère dont le code ASCII est donné et le code ASCII d’un caractère donné.
Tel que :
"0" … "9" … "A" … "Z" … "a" … "z"
48 57 65 90 97 122
2) La comparaison entre deux chaines de caractères se fait caractère par caractère selon leur
code ASCII.
Exp ; print ("bonjour">"BONJOUR") # affiche ……………….
print ("formatage" >"formation") # affiche ………………
3) print ( chr ( ord("!") ) ) # affiche "!"
print ( ord ( chr(130) ) ) # affiche 130

e. Les Méthodes de vérification :


Activité N° 2 : Ci-dessous le début d’un script python incomplet :
ch="informat-2020"
c="a"
ch1="TI"
x = "1234"

Résultat à
Méthode Rôle
afficher
ch.isalnum( ) Renvoie True si ch est alphanumérique sinon False
c.isalpha( ) Renvoie True si ch est alphabétique sinon False
x.isdigit( ) Renvoie True si ch est numérique sinon False
ch1.islower( ) Renvoie True si ch est en Minuscule sinon False
ch1.isupper( ) Renvoie True si ch est en Majuscule sinon False
Renvoie True si la chaine est formée uniquement par
ch.isspace( )
des blancs sinon False.
 Compléter le script en exécutant toutes ces opérations afin d’en déduire le résultat :

2ème SI – 2020/2021(Sfax) 10 Prof : Mme MKAOUAR L.


Module 3 : Les Structures & les types de Données Cours & TP

3. L’accès à un caractère d’une chaîne :


- Une chaîne de caractères est une séquence indexée de caractères à partir de 0.
- Pour accéder au ième caractère d’une chaîne, il suffit de donner le nom de la chaîne
suivi de l’indice « i » entre 2 crochets et se note : ch [ indice ]
Exemple : ch[0] : est le 1er caractère (le plus à gauche) de la chaine ch.
Activité N°3 : Soit ch une chaîne de caractère et C un caractère. ch = "Bonjour"
Indice positif 0 1 2 3 4 5 6
Ou bien B o n j o u r
Indice négatif -7 -6 -5 -4 -3 -2 -1
c = ch[0] c = ‘’….. ‘’ c = ch[-1] ; c = ‘’….. ‘’
c = ch [3] ; c = ‘’ …..‘’ c = ch[len(ch)-1] c = ‘’….. ‘’

4. Les sous-chaînes [slicing]:


Il est possible de découper une chaine en tranches. Une tranche est une sous-chaine qui
commence par l’indice début et se termine par l’indice fin-1 et se note : ch [début : fin].
Activité : Exécuter ces instructions en Shell Python, puis donner le résultat avec :
ch = ''le loup lape le lait''
Instructions Résultat à afficher Rôle
5. ch[3 :7]
ch[ 8 :12 ]
ch[ 0 :-2]
ch[3 :]
ch[-1 :]
ch[ -4 :]
ch[ : :-1] pas=-1
ch[ : :-2] pas=-2
ch [ :]

Appartenance d’un caractère dans une chaine.


Exécuter ces instructions en Python, puis donner le résultat :

in Vérifient l’existence d’un


not caractère ou d’une chaine dans
in une autre chaine.

6. Affichage d’une chaine de caractères :


Séquence Signification
"\n" Saut de ligne
"\\" Antislash
"\’" - "\"" Apostrophe - Guillemet
"\t" Tabulation
2ème SI – 2020/2021(Sfax) 11 Prof : Mme MKAOUAR L.
Module 3 : Les Structures & les types de Données Cours & TP

Exemples :
 \n permet d’insérer des marques de passage à la ligne dans une chaîne non
délimitée par des cotes simples.
print ("Une chaîne\nsur plusieurs\nlignes.")
.........................
……………………
……………………
 \t permet d’insérer des marques de tabulation dans une chaîne.
print ("Une chaîne\n\tsur plusieurs lignes\n\tavec tabulations")
.......................................................
…………………………………………………………
………………………………………………….
 \\ permet d’insérer des antislashs dans une chaîne.
print ("Une chaîne de caractères avec \\antislash\\")
.......................................................
…………………………………………………………
………………………………………………….
 \' permet d’insérer des apostrophes dans une chaîne délimitée par des
apostrophes.
print ('Une chaîne avec des \'apostrophes\' et \''guillemets\''.')
……………………………………………………………..

2ème SI – 2020/2021(Sfax) 12 Prof : Mme MKAOUAR L.

Vous aimerez peut-être aussi