Partie 3&4
Partie 3&4
L’ALGORITHMIQUE
: Pseudo Langage
1
Pseudo
Code
1. Un pseudo-code est une esquisse d'un programme informatique, écrit dans un mélange d'un
programme langue et anglais. L'écriture de pseudo-code est l'une des meilleures façons de
planifier un programme informatique.
2. L’avantage du pseudo code est qu’il permet au programmeur de se concentrer sur comment le
programme fonctionne et non pas sur les règles, contraintes du langage de programmation.
3. Par exemple, voici deux pseudo code de 2 algorithmes: L’un fait l’addition de 2 nombre et le
second trouve le plus grand nombre dans une liste.
Debut
Debut
PlusGrand = LO
var A
Pour Chaque element de la liste(Longueur(L) >= 1), faire
var B
Si element >= PlusGrand, alors
Resultat = A + B
PlusGrand = element
Afficher Resultat
FinPour
Fin
retourner PlusGrand
Fin
2
Notion de Pseudo Code dans un langage de haut niveau
3
Notion de TYPE dans l’EXALGO
1. Type
Types prédéfinis : entier, car, booléen, réel
Variables
var NomDeVariable: TypePrédéfini
Exemples : var age: entier, var nom: car, var pourcentage:réel
constante MIN :entier = 100
Définition de type :
4
Notion de TYPE dans l’EXALGO
Définition d'un tableau d'entiers :
Tableau : tableau_notes[5]:entier;
Tableau : tableau_notes[5] = [5, 8, 12, 1, 20]
// Accéder au premier élément
afficher(notes[0])
// Affiche 15
// Modifier un élément
tableau_notes[2] = 14
// Change la troisième note de 12 à 14
5
EXPRESSIONS et INSTRUCTIONS
1. Expressions
Les expressions sont constituées à l’aide de variables déjà déclarées. de parenthèses et
d'opérateurs du (des) type(s) des variables concernées.
2. Instructions simples
● Affectations : NomDeVariable = ExpressionDuTypeDeLavariable;
● sortie de calcul :exit, retourne( )
6
LES STRUCTURES DE CONTRÔLE
● Bloc d'instruction :
instruction1
instruction2
............
● Alternative:
si ExpressionBooléenne alors
BlocInstruction1
sinon
BlocInstruction2
finsi; 7
ALTERNATIVE MULTIPLES
selon que
cas cas1 : BlocInstruction1
cas cas2 : BlocInstruction2
.............
autrement : BlocInstruction exit permet
d'arrêter la
finselonque répétition
8
LES STRUCTURES DE CONTRÔLE : Les
boucles
● Pour VariableIndicatrice
allant de ValeurInitiale à ValeurFinale
● tant que ExpressionBooléenne faire par pas de ValeurPas faire
BlocInstruction BlocInstruction
fintantque; finpour
● Répéter
BlocInstruction
jusqu'à ExpressionBooléenne finrépéter 9
LES FONCTIONS ET PROCÉDURES
ref ListeVariable:NomDeType
Par Référence : La fonction reçoit une référence vers la variable d'origine. Toute modification
apportée affecte directement la variable d'origine.
val ListeVariable:NomDeType
Par Valeur : La fonction reçoit une copie de la valeur. Les modifications apportées à cette copie ne
changent pas la valeur de la variable d'origine.
Passage de Paramètres par Valeur: Lorsque l’on passe un paramètre par valeur, une copie de la valeur
de ce paramètre est envoyée à la fonction. Cela signifie que la fonction travaille sur une copie distincte de
la variable d’origine. Toute modification apportée à cette copie n’affecte pas la variable originale en dehors
de la fonction.
Exemple : Pseudo-Code
Fonction IncrementerParValeur(x)
x = x + 1
Afficher "Valeur de x dans la fonction :", x
Fin Fonction
a = 10
Appeler IncrementerParValeur(a)
Afficher "Valeur de a en dehors de la fonction :", a
Explication : Dans ce pseudo-code, la fonction IncrementerParValeur reçoit une copie de la variable a (par valeur).
Elle modifie la copie locale x, mais cela n'affecte pas la variable a en dehors de la fonction. Après l'appel, a garde sa valeur
d'origine (10).
12
LES FONCTIONS ET PROCÉDURES
Passage de Paramètres par Référence: Lorsque l’on passe un paramètre par référence, c’est l’adresse
mémoire de la variable qui est passée à la fonction, et non une simple copie de sa valeur. Cela signifie
que la fonction peut directement modifier la variable d’origine, car elle travaille sur la même instance de la
variable.
Exemple : Pseudo-Code
Fonction AjouterElementParReference(liste)
[Link](10)
Fin Fonction
ma_liste = [1, 2, 3]
Appeler AjouterElementParReference(ma_liste)
Explication : Dans ce pseudo-code, la fonction AjouterElementParReference reçoit une référence vers la liste
ma_liste. En modifiant la liste directement dans la fonction (en ajoutant l'élément 10), la modification affecte également
13
ma_liste en dehors de la fonction. Après l'appel, ma_liste contient [1, 2, 3, 10].
TYPES STRUCTURES ET LES
POINTEURS
1. Un type structuré est constitué à partir de types de base ou d'autres
types déclarés.
type NomDeType: structure
champ1:NomDeType1
champ2:NomDeType2
...........................
finstructure
Après la déclaration :
var E:NomDeTypeEnregistrement
on accède au différents champs par le nom de la variable suivi d'un point
var P:^NomDeType
alors on peut obtenir un objet accessible par allouer(P). Lorsqu'on n'utilise
plus l'objet, il faut libérer l'espace qu'il utilise par desallouer(P).
15
TYPES STRUCTURES ET LES
POINTEURS
16
TYPES STRUCTURES ET LES
POINTEURS
17
Diagramme de Flux (Flow chart)
1. Le Flow Chart est un diagramme qui utilise des symboles et des mots pour décrire
un algorithme. Chaque étape de la L'organigramme est suivi d'une flèche qui indique
l'étape suivante. Les symboles suivants sont utilisés dans les Flow Charts :
i. Délais : utilisé pour indiquer un autre processus un retard ou une attente dans
le processus pour l'entrée de
18
Flow charts : avantages
2. Analyse efficace : à l'aide d'un Flow charts, le problème peut être analysé de
manière plus efficace.
4. Codage efficace : les Flow charts servent de guide ou de modèle pendant l'analyse
des systèmes et phase de développement du programme.
19
Flow charts : Quand faut-il les utiliser ?
2. Un Flow Chart est généralement utilisé lorsqu'un nouveau projet commence afin de planifier le projet.
3. Un Flow Chart aide à clarifier comment les choses fonctionnent actuellement et comment elles pourraient
être améliorées. Il aide également à trouver les éléments clés d'un processus, tout en traçant des lignes
claires entre l'endroit où un processus se termine et le suivant commence.
4. L'élaboration d'un Flow Chart stimule la communication entre les participants et établit une
compréhension commune du processus. Les Flow Charts révèlent également des étapes redondantes ou
égarées.
5. Les Flow Charts sont utilisés pour aider les membres de l'équipe, à identifier qui fournit inputs ou des
ressources et à qui; pour établir des zones importantes à monitorer ou la collecte de données, pour
identifier les zones une amélioration ou une efficacité accrue, et de générer des hypothèses sur les causes.
6. Les Flow Charts sont très utiles pour documenter un processus (simple ou complexe) car ils facilitent la
compréhension du processus.
7. Il est recommandé de créer des Flow Charts par le biais de discussions de groupe, car les individus
connaissent rarement l'intégralité du processus et la communication contribue à l'amélioration.
8. Les Flow Charts sont également très utiles pour communiquer aux autres comment un processus est
exécuté et permet de comprendre la logique d'un processus
20
Flow charts : Représentation
Affecter 12 à A
Affecter 12 à A A 12
Affectation et séquences
Incrémenter B de 1 B B+1
Incrémenter B
Si A > B
Si A est supérieur à B
Alors …
Sélection Alors …
Sinon …
Sinon …
FinSi
21
Flow charts : Représentation
Répéter …
Répéter jusqu’à ce que A
Répétitions
soit égal à B
Jusqu’à ce que A = B
22
Flow charts : Représentation
Début
Commencer le
Démarrer Démarrer
programme
Fin Fin Fin
Arrêter le programme
23
Flow charts : Exemples
Début
Lire A, B
Si A est inférieur à B
Grand=B
Petit = A
Sinon
Grand=A
Petit = B
Ecrire Grand, Petit
Fin
24
Exercices
1. Écrire un algorithme qui ayant un nombre, permet de dire si celui-ci est plus grand ou plus petit
que 100 et donnez son diagramme de flux.
2. Écrire un algorithme permettant de trouver le plus grand nombre entre A, B et C et donnez son
diagramme de flux.
3. Écrivez un algorithme qui calcule la surface d’un triangle et donnez le diagramme de flux.
25
TRAVAIL PRATIQUE 3
1. Soit 2 nombres A, B. Ecrire un algorithme qui demande à l’utilisateur d’entrer deux nombres
quelconques et trouve son PPCM ainsi que son PGCD. (5pts)
2. L’ UNH désire automatiser l’ouverture de la barrière véhicule à l’aide d’une télécommande, afin d’
éviter au portier de se mouiller en cas de forte pluie.
a. Lors de l’ouverture UNH voudrait activer une lumière clignotante verte
b. Lors de la fermeture de la barrière, une lumière rouge.
c. La télécommande comprend 2 boutons (l’un pour l’ouverture et l’autre pour la fermeture)
Ecrire un algorithme permettant de répondre au besoin de l’université et donnez-en le
diagramme de flux (flow chart). (5pts)
NB: Pour l'élaboration du diagramme de flux utiliser l’application Dia ou le logiciel en ligne lucidchart
26
INTRODUCTION A
L’ALGORITHMIQUE :
Algorithmique
27
Qu’est-ce qu’un algorithme ?
28
Classification des Langages de
programmation.
Les langages de programmation peuvent être
classifiés en deux catégories:
29
Langages de bas niveau.
30
Langages de bas niveau.
31
Avantages/inconvénients des Langages de bas
niveau.
Avantages: Inconvénients:
32
Langages de haut niveau.
● Les langages de haut niveau ont évolué au fil des ans et peuvent être regroupés en cinq
catégories: les langages de troisième génération (3GL), les langages de quatrième génération
(4GL), les langages de programmation orientés objet (OOP), les langages de cinquième
génération (5GL), les langages de script et Langues naturelles.
● Les langues naturelles sont des langues humaines comme l'anglais ou le français.
● Les langages de haut niveau sont orientés problèmes et sont faciles à écrire car les mots et la
grammaire des langages de haut niveau sont proches du langage naturel.
● Comme les syntaxes des langages de haut niveau sont standardisées, les langages peuvent être
utilisés sur différents systèmes informatiques.
● Les programmes écrits dans un langage de haut niveau doivent être traduits en langage
machine par un compilateur ou un interpréteur.
33
Langages de haut niveau.
● En POO, le programmeur regroupe les données et les procédures du programme dans une seule
unité appelée objet. Les procédures de l'objet sont appelées Opérations (Méthodes) et les
éléments de données sont appelés attributs (Variables).
34
Avantages des Langages de Haut
Niveau
1. Les programmes de langage de haut niveau sont faciles à déboguer
2. Ils sont indépendants de la machine. Fournir des programmes pouvant être utilisés sur
plusieurs ordinateurs.
3. Ils sont conviviaux et faciles à apprendre car ils sont proches du langage naturel.
35
Désavantages des Langages de Haut
Niveau
1. Ils s'exécutent beaucoup plus lentement que les langages de programmation de bas
niveau
36
Exemples de langages de programmation de haut niveau
utilisés
1. FORTRAN (FORMula TRAnslator) développé à la fin des années 1950 pour concevoir des
applications scientifiques.
2. COBOL (Common Business Oriented Language) développé au début des années 1960
pour développer des applications métiers.
3. RPG (générateur de programme de rapport) a été développé au début des années 1960
pour aider à générer des rapports et des calculs complexes.
37
Exemples de langages de programmation de haut niveau
utilisés
1. Pascal a été développé à la fin des années 1960 dans le but d'enseigner des concepts de
programmation structures.
2. C développé au début des années 1970 pour écrire des logiciels système.
3. Ada a été développé à la fin des années 1970 à l'origine pour répondre aux besoins des
systèmes embarqués et temps réel.
4. C++ développé dans les années 1980 est un langage orienté objet principalement pour
développer des logiciels d'application Notez qu'en plus des principaux langages évoqués
ci-dessus, de nombreux autres langages de programmation ont été développés tels que
JavaScript et Python.
38
Syntaxe de
Programme
● La syntaxe de programme est l'orthographe et la grammaire d'un langage de
programmation.
● Chaque programme définit ses propres règles syntaxiques qui contrôlent quels mots
l'ordinateur comprend, quelles combinaisons de mots sont significatives et quelle
ponctuation est nécessaire.
39
Sémantique des langages
d’ordinateurs
● La sémantique représente la signification des caractéristiques de la
langue. Elle décrit les processus suivis par un ordinateur lors de
l'exécution d'un programme dans ce langage spécifique.
40
Code Source
● Le code source consiste en des instructions de programme écrites sous forme de
fichier texte par le programmeur. Ce code doit être traduit par un compilateur, un
interpréteur ou un assembleur en un code objet avant exécution.
● Le code source ne peut pas être compris par l'ordinateur tant qu'il n'a pas été
traduit en code machine.
Exécution du programme
41
Le code objet
● Le code objet est un code de programme en langage machine prêt à être
exécuté par l'ordinateur.
42
Programs must be translated into machine/Object codes
before execution
1 2 3 4
1. Assembleurs
4. Interprètes
44
45
Comment fonctionne un compilateur
2 4
46
Comment fonctionne un
interprète
● Un interpréteur est un programme informatique qui exécute directement un
langage de programmation de haut niveau, une ligne à la fois sans générer
un code objet.
2 3 4
47
Environnement de développement
intégré
48
Environnement de développement
intégré
Au démarrage du logiciel IDE, le programmeur indique généralement le fichier qu'il
souhaite ouvrir pour l'édition en tant que code source. Au fur et à mesure qu'ils
apportent des modifications, ils peuvent soit faire un "enregistrer sous" ou
"enregistrer". Lorsqu'ils ont fini de saisir le code source, ils demandent généralement à
l'IDE de "compiler et exécuter" le programme. L'IDE effectue les étapes suivantes :
1. S'il y a des modifications non enregistrées dans le fichier de code source, l'éditeur
de test enregistre les modifications.
49
Environnement de développement
intégré
3. Le compilateur ouvre le fichier d'unité de traduction et effectue sa deuxième étape
qui consiste à convertir le code du langage de programmation en instructions
machine pour le CPU, une zone de données et une liste d'éléments à résoudre par
l'éditeur de liens. Tout problème rencontré (généralement une syntaxe ou une
violation des règles du langage de programmation) arrête le processus et renvoie
l'utilisateur au fichier de code source dans l'éditeur de texte avec un message
d'erreur. Si aucun problème n'est rencontré, il enregistre les instructions machine,
la zone de données et la liste de résolution de l'éditeur de liens sous forme de fichier
objet.
4. L'éditeur de liens ouvre le fichier objet du programme et le relie aux fichiers objets
de la bibliothèque selon les besoins. À moins que tous les éléments de l'éditeur de
liens ne soient résolus, le processus s'arrête et renvoie l'utilisateur au fichier de
code source dans l'éditeur de texte avec un message d'erreur. Si aucun problème
n'est rencontré, il enregistre les objets liés en tant que fichier exécutable.
50
Environnement de développement
intégré
5. L'IDE ordonne au programme du système d'exploitation appelé chargeur de
charger le fichier exécutable dans la mémoire de l'ordinateur et de faire en sorte
que l'unité centrale de traitement (CPU) commence à traiter les instructions. Au fur
et à mesure que l'utilisateur interagit avec le programme en saisissant des données
de test, il peut découvrir que les sorties ne sont pas correctes. Ces types d'erreurs
sont appelées erreurs de logique et obligerait l'utilisateur à revenir au code source
pour modifier l'algorithme.
51
Jeu d’instruction
b. Les opérations logiques (not, and, or. . .), les instructions de transferts de
données (load, store,move. . .), les instructions de contrôle du flux
d’instructions (branchements impératifs et conditionnels, boucles, appels de
procédure. . .), et les instructions d’entrée-sortie (read, write. . .).
[Link]érations arithmétiques
[Link]érations logiques
52
Traitement d’instructions par le microprocesseur en 5
étapes
1 3 5
DECODE EXECUTE
RESULT
FETCH DECODE LOAD EXECUTE WRITE
OPERAND BACK
53
Le langage machine
★ Ce langage est difficile à maı̂ triser puisque chaque instruction est codée par
une séquence donnée de bits.
54
Instructions de base
★ Dans ce cours, nous nous intéresserons aux instructions disponibles dans un langage de haut
niveau tel que Python. Les principales instructions (statements) concerneront l’affectation
(assignment), les tests (conditional statements) et les boucles (loops).
★ Le tableau suivant donne la syntaxe Python des instructions de base qui seront utilisées.
L’anglais est la
langue couramment
utilisée en
informatique. Il est
absolument
essentiel de
lire l’anglais
technique sans
problème. Vous
devez être
capable de traduire
le tableau suivant
extrait sans
traduction d’une
référence en anglais.
55
INTRODUCTION A
L’ALGORITHMIQUE :
Affectations
Variables Quelques
TD
exemples
56
Les variables
★ Pour effectuer la conversion Fahrenheit → Celcius, nous commençons par
donner un nom à la température Fahrenheit, par exemple tF , ainsi qu’à la
température Celcius, par exemple tC . Puis nous pouvons exprimer la relation
générale qui lie tC à tF :
○ tC = 5/9 (tF − 32)
★ Appliquer cette relation dans un cas particulier par exemple :
★ Une donnée apparaı̂ t ainsi sous un nom de variable (par exemple tC ou tF) : on dit
que la variable dénote une valeur.
★ Une variable peut être vue comme une case en mémoire vive, que le
programme va repérer par une étiquette (une adresse ou un nom). Pour avoir
accès au contenu de la case (la valeur de la variable), il suffit de la désigner
par son étiquette : c’est-à-dire soit par son adresse en mémoire, soit par son
nom.
58
La variable : Quelques règles
★ Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les
cédilles, les espaces, les caractères spéciaux tels que $, #, @ , etc. sont
interdits, à l’exception du caractère (souligné).
○ Addition +
○ Soustraction -
○ Multiplication *
○ Division /
○ Modulo %
★ Opérateurs d’entrée/sortie
Les opérations que nous venons d’aborder permettent juste de faire des
calculs, mais ne permettent pas encore de visualiser les résultats ou
d’afficher du texte, ou encore de faire des saisies au clavier. Pour cela, nous
utiliserons les commandes AFFICHER et SAISIR :
60
Les opérateurs d’entrée sortie
62
Attribuer une valeur
64
Types de base en Python :
Incrémentation
★ L’expression du membre de droite peut faire intervenir la variable du membre de
gauche comme dans i = i + 1.
★ Dans cet exemple, on évalue d’abord le membre de droite (i +1) puis on attribue
la valeur obtenue au membre de gauche (i) ,
65
Séquences d’affectations
1. Permutation de 2 nombres :
66
Séquences d’affectations :
solution
★ Pour effectuer la permutation, l’apprenti informaticien aurait pu utiliser une
variable temporaire (que nous nommerons tmp) et exécuter la séquence
d’instructions suivante :
tmp = x
x=y
y = tmp
➔ La première affectation (tmp = x) permet de stocker la valeur initiale de x (12),
➔ La deuxième (x = y) attribue à x la valeur de y (22)
➔ Et la troisième (y = tmp) attribue à y la valeur de tmp, c’est-à-dire la valeur
initiale de x (12).
➔ Ainsi, les valeurs finales de x et y (22 et 12) sont bien permutées par rapport En Python, les
aux valeurs initiales (12 et 22). n-uplets permettent
d’écrire plus
simplement la
permutation de
variables :
x, y = y, x
67
Séquences d’affectations :
Exemple 2
★ Le plus grand commun diviseur de 2 entiers a et b peut se calculer en appliquant la
relation de récurrence pgcd(a, b) = pgcd(b, a%b) si b est différent de 0 jusqu’à ce
que le reste (a%b) soit nul (pgcd(d, 0) =d si d différent de 0).
68
INTRODUCTION A
L’ALGORITHMIQUE :
Affectations,
opérations…TD
TD
69
Exercices (TD n°1)
1. Soit a, b, c, d , 4 variables. Effectuer une permutation circulaire droite entre les valeurs de 4
entiers a, b, c, d.
○ a = 12
○ b = 22
○ c = 32
○ d = 42
2. Quelles sont les valeurs des variables a, b, q et r après la séquence d’affectations suivante ?
a = 19
b=6
q=0 INCRÉMENT :
r=a
Quantité fixe
r=r-b dont on
q=q+1 augmente la
r=r-b valeur
d’une variable à
q=q+1 chaque phase de
r=r-b l’exécution du
q=q+1 programme.
70
INTRODUCTION A
L’ALGORITHMIQUE
Programmation
Orientée Objet (POO)
en Algorithmique
71
La Programmation orientée objet
(POO)
72
Pourquoi la POO dans l'Algorithmique ?
Maîtriser les
concepts
4. Acquérir des compétences pratiques pour d'encapsulation,
d'héritage, de
résoudre des problèmes en algorithmique avec polymorphisme et
d'abstraction
la POO.
73
Concepts de Base - Objets et Classes
3. En résumé :
74
Illustration en pseudo-code
75
INTRODUCTION A
L’ALGORITHMIQUE :
Python ?
76
Le langage Python
❖ Python est un des langages de programmation informatique qui est devenu
très populaire et très utilisé, notamment dans le domaine de la science des
données (Data Science) et de l’apprentissage automatique (Machine Learning).
❖ Python est en effet le langage informatique le plus populaire pour le traitement
Big Data, l’exécution de calculs mathématiques et l’apprentissage automatique
où il est utilisé pour la classification et la prédiction.
❖ Contrairement à HTML, CSS ou JavaScript, Python est un langage de
programmation informatique généraliste dont l’usage n’est pas limité au
développement web. Il peut être utilisé pour tout type de programmation et de
développement logiciel.
❖ En plus de son utilisation pour le développement back end d’applications web
En mathématiques,
ou mobile, Python est aussi utilisé pour le développement de logiciels et une « variable »
d’applications pour PC. est généralement
❖ Python permet également d’écrire des scripts système, afin de créer des une inconnue, qui
recouvre un nombre
instructions pour un système informatique. non précisé de
valeurs. En
informatique, une
variable possède à
un moment donné
une valeur et une
seule.
77
Le langage Python
❖ L’adoption de Python 3 a été ralentie par le manque de compatibilité avec les En mathématiques,
une « variable »
bibliothèques tierces. Un grand nombre d’entre elles ne sont prises en charge que est généralement
par Python 2. Il est donc difficile d’effectuer la transition. Ce problème s’est une inconnue, qui
résolu au cours des dernières années, et Python 3 est désormais le meilleur choix recouvre un nombre
non précisé de
pour les nouveaux projets. valeurs. En
informatique, une
variable possède à
un moment donné
une valeur et une
seule.
78
Le langage Python
79
Le langage Python
80
Exemple de code Python
81
Instructions de base Python
★ Dans ce cours, nous nous intéresserons aux instructions disponibles dans un langage de haut niveau
tel que Python. Les principales instructions (statements) concerneront l’affectation (assignment),
les tests (conditional statements) et les boucles (loops).
★ Le tableau suivant donne la syntaxe Python des instructions de base qui seront utilisées.
L’anglais est la
langue couramment
utilisée en
informatique. Il est
absolument
essentiel de
lire l’anglais
technique sans
problème. Vous
devez être
capable de traduire
le tableau suivant
extrait sans
traduction d’une
référence en anglais.
82
La variable : définition
★ Une variable est un objet informatique qui associe un nom à une valeur
qui peut éventuellement varier au fils du temps.
★ Une variable peut être vue comme une case en mémoire vive, que le
programme va repérer par une étiquette (une adresse ou un nom). Pour avoir
accès au contenu de la case (la valeur de la variable), il suffit de la désigner
par son étiquette : c’est-à-dire soit par son adresse en mémoire, soit par son
nom.
83
Les variables
★ Pour effectuer la conversion Fahrenheit → Celcius, nous commençons par
donner un nom à la température Fahrenheit, par exemple tF , ainsi qu’à la
température Celcius, par exemple tC . Puis nous pouvons exprimer la relation
générale qui lie tC à tF :
○ tC = 5/9 (tF − 32)
★ Appliquer cette relation dans un cas particulier par exemple :
★ Une donnée apparaı̂ t ainsi sous un nom de variable (par exemple tC ou tF) : on dit
que la variable dénote une valeur.
★ Seules les lettres ordinaires sont autorisées. Les lettres accentuées, les
cédilles, les espaces, les caractères spéciaux tels que $, #, @ , etc. sont
interdits, à l’exception du caractère (souligné).
Etudiant 48
Compteur_Etudiant Nom-Etudiant
_NombreEtudiant Etudiant_$omme
Etudiant46 46Etudiant
86
Les types de données strings ou chaîne de
caractère
1. Les programmes python peuvent avoir des valeur texte appelée strings ou strs.
2. Les strings sont toujours entourés du symbole ‘’ ce qui permet à python de savoir où commence et
fini la chaîne de caractère.
3. Il est possible d’avoir des string sans caractère à l’intérieur , ex: Nom =’ ‘
4. Il est à noter que l’omission d’un ‘ entraîne une erreur syntaxique qui arrête le programme
automatiquement.
❖ Dans le cas des chaînes de caractère, le rôle de l'opérateur +, est de joindre deux chaînes de
caractères. Cette opération s’appelle la concaténation. Ainsi, nous aurons :
'Alice' + 'Bob' = 'AliceBob'
❖ La concaténation de ‘Alice’ + 98 donnera automatiquement une erreur syntaxique.
87
Quelques conventions
1. Par convention, les variables python commencent par une lettre minuscule
2. La notion de camelcase est utilisée par certains codeurs pour le nom de variable en lieu et place
des underscores:
nomEtudiant vs nom_etudiant
88
Attribuer une valeur
★ L’affectation est l’opération qui consiste à attribuer une valeur à une variable.
89
Notion d’ affectation d’une valeur dans une
variable
1. La variable peut être considérée comme une boîte dans laquelle il est possible de stocker une
valeur.
2. Affecter la valeur 42 dans la variable spam équivaut à insérer dans la boite spam, la valeur 42
3. En python il sera écrit : spam = 42 . Qui se traduit par : La variable spam contient à présent la valeur
42.
4. Une variable est donc initialisée lorsqu’elle reçoit sa première valeur dans le code.
5. Nous pouvons avoir la situation suivante:
spam = ‘Hello’
spam = ‘Goodbye’
90
Séquences d’affectations
1. Permutation de 2 nombres :
91
Séquences d’affectations :
solution
★ Pour effectuer la permutation, l’apprenti informaticien aurait pu utiliser une
variable temporaire (que nous nommerons tmp) et exécuter la séquence
d’instructions suivante :
tmp = x
x=y
y = tmp
➔ La première affectation (tmp = x) permet de stocker la valeur initiale de x (12),
➔ La deuxième (x = y) attribue à x la valeur de y (22)
➔ Et la troisième (y = tmp) attribue à y la valeur de tmp, c’est-à-dire la valeur
initiale de x (12).
➔ Ainsi, les valeurs finales de x et y (22 et 12) sont bien permutées par rapport En Python,
aux valeurs initiales (12 et 22). les n-uplets
Python offre une alternative intéressante à cette question permuter les valeurs de x permettent
d’écrire plus
et y revient à écrire x,y=y,x simplement
la
permutation
de variables
:
x, y = y, x
92
Types de base en Python
93
Séquences d’affectations :
Exemple 2
★ Le plus grand commun diviseur de 2 entiers a et b peut se calculer en appliquant la
relation de récurrence pgcd(a, b) = pgcd(b, a%b) si b est différent de 0 jusqu’à ce
que le reste (a%b) soit nul (pgcd(d, 0) =d si d différent de 0).
94
Les opérateurs arithmétiques et
expressions
★ Avec ces opérateurs, les variables et les constantes, il est possible d’écrire ce
que l’on appelle des expressions : une expression est une suite d’opérateurs
et de termes qui est compréhensible et que l’on peut calculer.
○ Addition +
○ Soustraction -
○ Multiplication *
○ Division /
○ Modulo %
95
Les opérateurs d’entrée sortie
★ Opérateurs d’entrée/sortie
Les opérations que nous venons d’aborder permettent juste de faire des
calculs, mais ne permettent pas encore de visualiser les résultats ou
d’afficher du texte, ou encore de faire des saisies au clavier. Pour cela, nous
utiliserons les commandes print() et input(). Voici ci-dessous deux
exemples d’entrées/sorties dont le premier (a) sert à afficher le message j'ai
12 ans et 6 mois et le second (b) sert à saisir une valeur à partir du clavier et
l’affecter à la variable a.
96
Les opérateurs d’entrée sortie
★ AFFICHER sert, comme son nom l’indique, à afficher du texte ou les valeurs
des variables.
○ On utilise afficher, suivi entre parenthèses des différents éléments à
faire apparaître à l’écran.
○ Ces éléments sont soit du texte brut écrit entre doubles guillemets,
soit une expression.
○ Dans le cas de texte brut, ce dernier apparaît tel quel à l’écran.
○ Dans le cas d’une expression, c’est la valeur numérique du calcul de
cette expression qui est affichée. cette instruction
○ Les éléments successifs à afficher sont séparés par une virgule. fera apparaître
à l’écran le
message suivant :
t vaut 2.421 !
Exemple : Exemple python :
VAR t : réel Float t
// définition de la variable entière t // définition de la variable entière t
t ← 2.421 t = 2.421
AFFICHER ("t vaut : ", t, " !") print("t vaut : ", t, " !")
97
Les opérateurs d’entrée sortie
★ SAISIR permet d’initialiser une variable à partir d’une saisie faite au clavier.
○ On utilise saisir, suivi entre parenthèses du nom de la variable que
l’on veut saisir.
○ L’instruction saisir a pour seul effet d’attendre que l’utilisateur
entre une valeur au clavier et la valide en appuyant sur la touche «
entrée » ou « enter » ; aucun message ne s’affiche pour indiquer à
l’utilisateur ce qu’il doit faire ;
○ C’est donc au programmeur de penser à afficher un message pour
indiquer qu’une saisie doit être faite !
** Exposant 2**3 8
% Modulo 10 % 8 2
* Multiplication 2*3 6
- Soustraction 6-2 4
+ Addition 6+2 8
1. La notion de précédence en python est la même que celle en math. Nous avons **, *, /,//, % et le
reste viennent en précédence inférieure.
99
Types de base en Python :
Incrémentation
★ L’expression du membre de droite peut faire intervenir la variable du membre de
gauche comme dans i = i + 1.
★ Dans cet exemple, on évalue d’abord le membre de droite (i +1) puis on attribue
la valeur obtenue au membre de gauche (i) ,
100
Les types de données en python
1. En python, rappelons nous que les expressions sont des valeurs combinées à des opérateurs.
ex: 1+4 est une expression
1. Un type de donnée est une catégorie de valeur. Chaque valeur correspond à un seul type de
données.
101
INTRODUCTION A
L’ALGORITHMIQUE :
Les boucles en
Python ?
Professeur Antoine BAGULA
Assisté par Landry MBALE
102