Vous êtes sur la page 1sur 8

Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc

Les structures de données


Exercice1 : Ecrire l’algorithme qui permet de calculer et d’afficher la surface d’un cercle.
Algorithme: Implémentation Au niveau Python
Algorithme surface from math import*
Début r = float(input("Saisir rayon = "))
Ecrire("Saisir rayon = "), Lire(r)
S  pi * r * r
S = pi * r **2
Ecrire("La Surface est = ", S) print("La Surface est = ", S)
Fin
TDO
Objet Type/Nature
r réel
S réel
pi Constante = 3.14

 Remarque : Un programme utilise des objets. Un objet peut être une constante ou une variable .
I- Les constantes :
 Définition : Une constante est un objet ayant une valeur fixe tout le long de l'exécution d'un algorithme ou
d'un programme, une constante est caractérisée par Son nom (identificateur) et Sa valeur .
 Remarque : La valeur d’une constante renseigne sur son type, d’où sur les opérations qu’on peut
appliquer sur cette constante.
1) Déclaration Au niveau Algorithme (T.D.O):
Objet Type/Nature
En général
Nom_constante Constante = valeur_constante

Objet Type/Nature
Exemple
pi Constante = 3.14

x = 3.5 # création d'une variable de type nombre réel appelée x initialisée à 3.5 x est de type "float"
ch = "chaîne" # création d'une variable chaîne de caractères appelée ch initialisée à "chaîne", ch est de type
"str".
II-Les variables :
1. Définition : Une variable est un objet pouvant prendre différentes valeurs tout le long de l’exécution
d’un algorithme ou d’un programme, elle est caractérisée par Son nom (un identificateur unique), Son
type et Son contenu.
2. Déclaration Au niveau Algorithme (T.D.O):
Objet Type/Nature
En général
Nom_variable Type_variable

Objet Type/Nature
Exemple
nb_eleve entier
 Remarques :
1- Une constante où une variable est représentée (mémorisée) dans une case mémoire dans la RAM de
l’ordinateur selon le type de la variable, la grandeur de case varie.
2- L’identificateur (nom) d’un objet doit être court, significative, monobloc (pas d’espace, un seul mot : x1,
note_1, Moy_classe, …), commence obligatoirement par une lettre et ne contient que des lettres et des chiffres
(de préférence), Le symbole '_' est aussi considéré comme une lettre et ne doit pas comporter un caractère
accentué.
3- Le langage Python distingue les majuscules et les minuscules dans un nom d’une variable.
Exemple: Bac, BAC et bac ne désigne pas la même variable.

Lycée Jendouba 1 A.S :2021/2022


Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
4- Les valeurs ( , , ) n’existent pas.
III- Les types de données : Le type permet :
De déterminer l’ensemble des valeurs qui peuvent être affectées à la variable.
De Fixer implicitement l’ensemble des opérateurs valides sur ses variables. Les types standard sont
(Entier, réel, caractère, Booléen, chaîne de caractères).
Exercice2 : Ecrire l’algorithme nommé fusion qui permet de saisir deux nombres X et Y de deux chiffres chacun
puis de les fusionner dans un troisième nombre R comme le montre de l’exemple suivant :
Exemple : X=12 et Y=34 leur fusion donne R=1342.
Explication : l’entier R est obtenu en insérant l’entier Y entre les chiffres de X.
Algorithme: Implémentation Au niveau Python
Algorithme fusion
Début X = int(input("Saisir X = "))
Ecrire("Saisir X = "), Lire(X) Y = int(input("Saisir Y= "))
Ecrire("Saisir Y = "), Lire(Y) a = X // 10
a  X div 10
b = X % 10
b  X mod 10
c  Y div 10
c = Y // 10
d  Y mod 10 d = Y % 10
R  a*1000 + c*100 + d*10 + b R = a*1000 + c*100 + d*10 + b
Ecrire("Le résultat R = ", R) print ("Le résultat R = ", R)
Fin
TDO
Objet Type/Nature
X,Y,a,b,c,d,R entier
1. Les types numériques :
1.1- Le type entier :
a- Définition: Le type entier int permet de représenter n’importe quel nombre entier, peu importe sa taille.
b- Déclaration Au niveau Algorithme (T.D.O):
Objet Type/Nature
En général
Nom_variable Entier
Objet Type/Nature
Exemple
nb_pages entier
Les opérateurs arithmétiques appliqué sur les entiers :
Notation Notation Exemple Ordre de priorité des opérateurs
en algorithme en Python Ordre Opérateur
+ + 2 + 9 = 11 1 ()
- - 15 – 3 = 12 2 Div, mod, *
* * 3 *6 = 18 3 +,-
Div // 17 // 3 = 5 4 Op. relationnels (<, >, <=, >=, ==, ( !=), Dans (in))
Mod % 15 % 4 = 3 Remarque : dans le cas ou les opérateurs ont le même priorité, on
Dans € in 5 dans [0..10] peut effectuer l’opération de gauche à droite)

Exercice3 : Soit dans un plan rapporté à un repère orthonormé : deus point A et B d’abscisses respective XA et XB, Ecrire
l’algorithme correspondant qui saisi les XA et XB, calcul les ordonnées YA et YB par la fonction : f(x) = avec x > 1,
puis calculer et afficher la distance dAB entre les deux points A et B avec : dAB =
Algorithme distance Implémentation Au niveau Python
Début
Ecrire("Saisir XA= ") , Lire(XA) XA=float(input("Saisir XA = "))
Ecrire("Saisir XB= ") , Lire(XB)
YAracine carrée(XA-1) /abs(XA) XB=float(input("Saisir XB = "))
YBracine carrée(XB-1) /abs(XB) YA= sqrt(XA-1) /abs(XA)
dAB racine carrée((XA-XB)* (XA-XB)+ (YA-
YB)* (YA-YB)) YB= sqrt(XB-1) /abs(XB)
Ecrire("La distance entre A et B = ",dAB) dAB = sqrt((XA-XB)**2+ (YA-YB)**2)
Fin
print("La distance entre A et B = ",dAB)
T.D.O

Lycée Jendouba 2 A.S :2021/2022


Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
Objet Type/Nature
XA,XB,YA,YB,dAB Réel

1.2- Le type réel :


a- Présentation : Le type flottant float permet de représenter des nombres comportant une partie
décimale (comme 3.14 ou 2.1e − 23), compris entre 10−324 et 10308.
b- Déclaration Au niveau Algorithme (T.D.O):
Objet Type/Nature
En général
Nom_variable Réel
Objet Type/Nature
Exemple
Moy_tr1 réel
Les opérateurs sur les réels :
Notation Notation Exemple Ordre de priorité des opérateurs
en algorithme en Python Ordre Opérateur
+ + 1.5 + 2.1 = 3.6 1 ()
- - 5.5 - 1.3 = 4.2 2 /,*
* * 1.5 * 2.5 =3.75 3 +,-
/ / 10 / 3 = 3.33 4 Op. relationnels (<, >, <=, >=, ==, ( !=), Dans (in))

Opérateurs arithmétiques :
Opération En Algorithmique En Python
Addition + +
Soustraction - -
Multiplication * *
Division réelle / /
Division entière div //
Rester de la division mod %
entière
Exponentiation ^ **
Autres :
Exemple en Algorithmique / Exemple en Python
exemple
Addition puis affectation xx+2 x+=2
Soustraction puis affectation xx-2 x-= 2
Multiplication puis affectation xx*2 x*= 2
division puis affectation xx/2 x/=2
Opérateurs de comparaison :
Opération En Algorithmique En Python
Egal = ==
Diffèrent ≠ !=
Strictement supérieur > >
Strictement inferieur < <
Supérieur ou égal ≥ >=
Inférieur ou égal ≤ <=
Appartient ∈ (dans) in
N’appartient pas ∉ not in
Exercice4 : Completer le tableau suivant :
Instruction en algorithmique Implémentation en python Valeur de x
x 12 DIV 5 * 2 + 1 - 6 x= 12 // 5 * 2 + 1 - 6 -1
x (18 mod 5 ) / 2 x= (18 % 5 ) / 2 1.5
x  (3 mod 5 ) div 2 x = (3 % 5 ) // 2 1
x  (15 DIV 7) MOD (2 * 3) / 4 x = (15 DIV 7) MOD (2 * 3) / 4 0.5
x ((11 MOD 6) DIV 2) - 3 x= ((11 MOD 6) DIV 2) - 3 1
x2 , xx + 5 x+= 5 7
Lycée Jendouba 3 A.S :2021/2022
Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
x3 , xx / 4 x/= 4 0.75
x-1 , xx -2 x-=2 -3
x5 , xx * 3 x*= 3 15

c- Les fonctions arithmétiques standard appliquées sur les types numériques:


Syntaxe en Syntaxe en Type de
Rôle Type de résultat Exemples
algorithme python paramètre (x)
round(7.5)= 8
Donne un entier qui est la round (6.5)= 6
Arrondi(x) round(x) valeur du réel x arrondie à la Réel/Entier Entier round(-4.50)= -4
plus proche valeur. round (2.50)= 2
round (-1.25)= -1
Donne la partie entière d’un int(3.35) = 3
Ent(x) int(x) Réel/Entier Entier
int(-6.2) = -6
réel.
Donne la racine carrée de x, si
Réel/Entier sqrt (2) =1.41...
Racine Carrée(x) sqrt (x) x est positif sinon un message Réel
(positif) sqrt (9) = 3.0
erreur.
abs(-33) = 33
Abs(x) abs(x) Donne la valeur absolue de x. Réel/Entier Réel/Entier
abs(2.75) = 2.75
randint(4,8) = 6
Aléa(vi,vf) randint(vi,vf) donne un entier entre vi et vf. Entier Entier
randint(10, 99) = 23

2) Le type booléen :
Exercice5 :

1. Evaluer les expressions logiques suivantes : 2. Compéter le tableau de vérité suivant :


 (1>5) et (3<6) Vaut F X Y NON (X) X ET Y X OU Y
 (10>5) et (5>2) Vaut V V V F V V
 (10>5) ou (20>40) et (3>2) Vaut V V F F F V
 (10 ≠ (9+1)) ou (12 > -1) Vaut V F V V F V
F F V F F

a- Défintion: Une variable ou expression de type booléen ne peut prendre que deux valeurs logiques
vrai (True) et fauxs (False).
Les Opérateurs logiques sont :
Opération En Algorithmique En Python
Négation non not
Conjonction et and
Disjonction ou or
b- Déclaration Au niveau Algorithme (T.D.O):
En Objet Type/Nature
général Nom_variable Booléen
Objet Type/Nature
Exemple
trouve / existe booléen
Exercice6:Donner les résultats des affectations suivantes: Opérateur () NON ET OU
1) Xnon (3 > 7) et (2 < 4) X=V Ordre 1 2 3 4
2) Y (5 < 12) ou (2 > 1) Y= F Op.
3) Z (9 > 2) ou (7 < 3) Z= V relationnels Non (< , > , <= , >= , == , !=)
4) W Non ((3 > 7) et (2 < 4)) ou (7 < 3) W=V = ( >= , <= , > , < , != , = = )
5) T((12 > 5) ou (8 < 4 ) et (10 ≥ 6)) T=V
ouex (arrondi (2.50) > 2)

3) Le type caractère :
a- Définition :
- Un caractère est représenté par le caractère lui-même placé entre guillemets en algorithme ("A", "?",
"4", ….) et entre apostrophes (ou cotes) en Python (‘A’, ‘?’, ‘4’, …).
- Un caractère peut être :
 Une lettre alphabétique minuscule ou majuscule, ou
 Un chiffre de 0 à 9, ou
 Un symbole comme : ?, !, #, &,…,

Lycée Jendouba 4 A.S :2021/2022


Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
- Les caractères sont ordonnés selon leurs codes ASCII (American Standard Code for Information
Interchange) et variant de 0 à 255.

b- Déclaration Au niveau Algorithme (T.D.O):


Objet Type/Nature
En général
Nom_variable caractère
Objet Type/Nature
Exemple
c1 caractère
 Remarque : - L’espace est un caractère blanc dont le code ASCII est égal à 32.
Les fonctions prédéfinies :
Syntaxe en Syntaxe en
algorithme Python
RÔLE EXEMPLE
Retourne le code ASCII du caractère c. Le résultat est un ord ("A") vaut 65
ord(c) ord(c) ord ("a") vaut 97
entier positif. ord ("0") vaut 48
chr(77) vaut "M"
chr(d) chr(d) Renvoie le caractère dont le code ASCII est n. chr(101) vaut "e"
chr(115) vaut "s"
Remarques : chr(ord ("M") ) = "M" et ord( chr (118) ) = 118
Application:
1. Convertit un caractère c ="f" minuscule en un caractère majuscule.  chr(ord("f") - 32)
2. Convertit un caractère c = "N" majuscule en un caractère minuscule  chr(ord("N") + 32)
4) Le type chaîne de caractères :
Exercice7: Soit une chaîne de caractère ch = "Bonjour"
1. Accéder le 1ème et 5ème caractère à partir chaîne de caractère ch. Avec deux méthodes

Réponse :
1. M1 : M2 :
ch[0]= "B" ch[-7]= "B"
ch[5]= "u" ch[-2]= "u"

 On pourra accéder en lecture au i ième caractère d’une chaîne de caractère ch en utilisant la notion suivante : ch[i]
avec 0 ≤ i ≤ (longueur (ch) – 1). (i est l’indice d’un caractère).
a- Présentation : Une chaîne de caractère est une entité composée de n caractères, si n = 0 on dit que la chaîne
est vide "".
Remarque : "Hello" < "hello" car le code ASCII de "H" < "h"  on peut appliquer Les op. relationnels
(comparaison) : (< , >, ≤ , ≥ , = , ) sur les chaînes de caractères.
b- Déclaration Au niveau Algorithme (T.D.O):
En général Objet Type/Nature
Nom_variable chaîne[Taille_max]

Exemple Objet Type/Nature


Les fonctions standard sur les chaînes :
ch Chaine de caractères
Algorithme Python Rôle Exemple :
Permet la concaténation d’un ch1 = 'Infor' et ch2 = matique'
+ + ensemble de chaînes de ch = ch1 + ch2 donne : 'Informatique'
caractères
Retourne le nombre de ch = 'Code Python'
Long (ch) len(ch) caractères de la chaîne ch. L1 = len(ch) donne : 11
(commence par 1) L2 = len('chart') donne : 4
Pos (ch1,ch2) ch2.find(ch1) Retourne la première position ch1= 'Bonjour' ; ch2= 'jour' ch3= 'bon'
de la chaîne ch1 dans la chaîne p1 = ch1.find(ch2) donne : 3
Lycée Jendouba 5 A.S :2021/2022
Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
ch2.Si ch1 n’est pas dans ch2, p2 = ch1.find(ch3) donne : -1
elle retourne -1. p3 = ch1.find(‘o’) donne : 1
Retourne la conversion d’un x=2021 x2=12.45
Convch (x) str(x) nombre x en une chaîne de ch1= str(x) ch1 contient '2021'
caractères. ch2= str(x2) ch1 vaut '12.75'
Retourne la conversion d’une ch1= '2021' et ch2 = '13.75'
int(ch) chaine ch en un entier, sinon int (ch1) : donne 2021
elle provoque une erreur. int (ch2) : donne Erreur
Valeur (ch) Retourne la conversion d’une ch1= '2021' et ch2 = '17.5 ' ch2 = '4.5r '
chaine ch en un réel, sinon float (ch1) donne 2021.0
float(ch) float (ch2) donne 17.5
elle provoque une erreur.
float (ch3) donne erreur
Retourne Vrai si la chaîne ch ch1='1254' ch1.isdigit () = True
ch.isdigit() est convertible en une valeur ch2 = '1.5n' ch2.isdigit () = False
Estnum (ch)
numérique, sinon elle ch3 = '214' ch3.isdigit () = True
retourne Faux. ch4 = '6.75' ch4.isdigit () = False
Retourne une partie de la ch='informatique'
Sous_chaîne(ch,d,f chaîne ch à partir de la ch[2 :7] donne 'forma'
ch [d:f]
) position d jusqu’à la position
f (f exclue).
Efface des caractères de la ch='informatique'
chaîne ch à partir de la position - ch[ :2]+ch[ 7:] donne 'intique'
Effacer (ch, d, f) ch=ch[:d]+ch[f:] d jusqu’à la position f (f ≡ ch1=ch[ :-10]+ch[-5:]
- ch[ :4]+ ch[ 12:] donne 'infoque'
exclue).
≡ ch2=ch[ :-8]+ch[ -3:]
Convertit la chaîne ch en ch='salut'
Majus (ch) ch.upper() ch.upper() donne 'SALUT'
majuscules.
Exercice8: Soit la chaine suivante : ch = "python"
compléter le tableau suivant par la valeur de x relative à chaque instruction :
Instruction Valeur de x
x= ch.upper() 'PYTHON'
x=ch[ :2]+ch[ 4:] 'pyon'
x= ch[ :2] 'py'
x= ch.find("th") True
x= ch.isdigit() False
x="hon" in ch True
5) Les types Structurés :
5.1- Tableaux à une dimension:
A. En algorithme :
Exercice9: Soit le tableau de Moyennes (des élèves).
Moyennes : 12.25 8.75 9.66 14.75 11.50
1. Quelsest le nombre des éléments du tableau Moyennes?
2. Quels est le type des éléments du tableau Moyennes ?
3. Accéder à la moyenne du 3ème élève.
4. Modifier la moyenne du 2ème élève par : 10.60
Réponse :
Le nombre des éléments du tableau Moyennes est 5

 Le type des éléments du tableau Moyennes est réel
 Moyennes [3]= 14.75 => Accès Lecture
 Moyennes [2] 10.60 => Accès écriture
Remarque : En algorithme les tableaux possèdent des indicent qui commence toujours par 0,
Pour accéder à l’ième case du tableau, on écrit : nom_tableau[i-1]
1. Définition d’un tableau :

Lycée Jendouba 6 A.S :2021/2022


Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
Un tableau unidimensionnel (ou Vacteur) est une structure de données permettant de ranger

(regrouper) un nombre fini d’éléments de même type.
2. Déclaration d'un tableau :
1ère Méthode :
En algorithmique (T.D.O)
Objet Type/Nature
En général
Nom_tableau Tableau de taille type_éléments

Objet Type/Nature
Exemple
Moyennes Tableau de 5 réels

2ème Méthode : En utilisant un nouveau type (création d’un nouveau type)


Cas général Exemple
Tableau de Déclaration de Nouveau Type (T.D.N.T) Tableau de Déclaration de Nouveau Type (T.D.N.T)
Type Type
Non_type = Tableau de taille type_éléments M = Tableau de 5 réels
T.D.O T.D.O
Objet Type/Nature Objet Type/Nature
Nom_tableau Non_type Moyennes M
B. En Python : (Les tableaux numpy)
1. Définition : un tableau numpy est un ensemble structuré d’éléments qui peuvent êtres de mêmes
types. (Contrairement aux listes en Python qui peuvent avoir des éléments de types différents).
NB : dans un programme on doit écrire : from numpy import*
2. Déclaration d'un tableau :
Python offre plusieurs méthodes pour déclarer un tableau numpy :
Cas général: nom_tableau = array ([valeur1,valeur2,….])
 1ère méthode:
Exemple: t = array ([1,2,3])
 3ème méthode: Cas général: nom_tableau = array ([type] * n)
Exemple: t = array ([int] * 4)
[ <class 'int'>, <class 'int'>, <class 'int'>, <class 'int'> ]
for i in range(4):
t[i]=input( ' t[ '+str(i)+' ]= ' )
for i in range(4):
print(str(t[i ])
3. Accès aux éléments d’un tableau :
Les tableaux en python sont indicés de deux manières :
- Soit croissante de (0 vers le dernier élément)
- Soit de manière décroissante de -1 (dernier élément) vers le premier élément : Si t un tableau de
n éléments on obtient des indices comme suit :

Remarques: - Pour accéder à une valeur d’un tableau on écrit nom_tableau[indice]


- Python offre la possibilité d’accès à plusieurs éléments d’un tableau en utilisant la technique
de tranche ou (Slicing).
En générale : non_tableau[indice_debut : indice_fin] ou nom_tableau[indice_debut : indice_fin :pas]
Ou : indice_debut est inclus (indice de debut)
indice_fin est exclu (indice de fin)

Lycée Jendouba 7 A.S :2021/2022


Chapitre 1: Les structures de données(N) (Prof) Classe : 4èmeSc
Pas c’est le pas pour se déplacer d’un indice à un autre)

Exercice10: En utilisant THONNY, donner le résultat de chacune des instructions suivantes :


Instructions Résultat (sur écran)
from numpy import*
t=array([2, 5, 8, 11, 14, 17]) [2 5 8 11 14 17]
print(t])
print(t[:]) [ 2 5 8 11 14 17]
print(t[1:5]) [ 5 8 11 14]
print(t[:5]) [ 2 5 8 11 14]
print(t[2:3]) [8]
print(t[-1:]) [17]
print(t[-2:]) [14 17]
print(t[ : :-1]) [17 14 11 8 5 2]
print(t[-1:-1:4]) []
print(t[-1:-5:-2]) [17 11]
t[2]=0
[2 5 0 11 14 17]
print(t)
t[1:5:2]='98'
[2 98 0 98 14 17]
print(t)
t[1 :5 :2]=[9,8]
[2 9 0 8 14 17]
print(t)
print(t[:-1]) [2 9 0 8 14]
Exercice11: Soit la séquence d'affectations suivantes :
T[0]  2 T[5]  Long("Devoir" )
T[1]  10 T[6]  (T[0] mod 5 * 6 - T[1] ) div 2
T[2]  T[0] * T[1] Div 6 T[7] T[6] - T[2] Mod 20
T[3]  3* T[2] - T[1] T[8] T[4] - 1
T[4]  Pos("venu","Bienvenu") + 4

1. Quel est le contenu du tableau T à la fin de l'exécution de ces affectations?


T: 2 10 3 -1 8 6 1 -2 7
0 1 2 3 4 5 6 7 8

2. Déclarer le tableau T :
T.D.O 2ème méthode avec T D Nouveau Type !
Objet Type/Nature
T Tableau de 9 entiers

Remarque :
- Les opérations possible sur un élément d’un tableau sont les mêmes que celles définies sur une variable de même type.

Lycée Jendouba 8 A.S :2021/2022

Vous aimerez peut-être aussi