Académique Documents
Professionnel Documents
Culture Documents
Reproduction interdite
Présentation DE L’ENSEIGNANT
M. Olyvier NZIGHOU
Master 2 Gestion de Projets Informatiques de l’Université de
Strasbourg.
Enseignant vacataire à l’IST, EPL, IAI, ESIITECH
Tél. : 066049840 / 077684285
Email : olyvier.nzighou@gmail.com
Reproduction interdite
Objectifs du cours
Muhammad Ibn Être capable de mettre en œuvre ces concepts pour analyser
Musa Al-Khwarizmi
des problèmes simples et écrire les algorithmes
correspondants.
Reproduction interdite 3
Evaluation
Reproduction interdite 4
Enseignement
Cours Magistral
Muhammad Ibn
Musa Al-Khwarizmi TD/TP
Reproduction interdite 5
COMPETENCES À ACQUERIR
Etc.
Reproduction interdite 6
Contenu du cours
Concepts de base
Muhammad Ibn
Expression et instructions élémentaires
Musa Al-Khwarizmi
Structures de contrôle
Tableaux & Chaîne de caractères
Enregistrements et pointeurs
Fonctions et procédures
Reproduction interdite 7
ALGORITHMES & PROGRAMMATION I
Muhammad Ibn
Musa Al-Khwarizmi
CHAPITRE I Introduction A
L’INFORMATIQUE
Reproduction interdite 8
QU’EST-CEQUE L’INFORMATIQUE
Reproduction interdite 9
QU’EST-CEQUE L’INFORMATIQUE
Reproduction interdite 10
QU’EST-CEQUE L’INFORMATIQUE
Reproduction interdite 11
QU’EST-CEQUE L’INFORMATIQUE
tique = Automatique
Muhammad Ibn
Musa Al-Khwarizmi
L'informatique est la science qui permet de traiter
automatiquement et rationnellement les
informations à l'aide d’une machine électronique (par
exemple, un ordinateur.
Reproduction interdite 12
QU’EST-CEQUE L’INFORMATIQUE
Muhammad Ibn
L’Informatique est la Science du traitement
Musa Al-Khwarizmi automatique et rationnel de
l'information, considérée comme le support des
connaissances et des communications.
L’ensemble des applications de cette science, mettent en
œuvre des matériels (ordinateurs) et des
logiciels.
Reproduction interdite 13
DOMAINE D’APPLICATION DE L’INFORMATIQUE
Muhammad Ibn
Sciences : prévisions, météo, simulation ...
Musa Al-Khwarizmi
Reproduction interdite 15
QU’EST-CEQUE L’INFORMATION
Reproduction interdite 16
QUE SIGNIFIE LE « TERME » TRAITEMENT
Reproduction interdite 17
QU’EST-CE QU’UN ORDINATEUR ?
Reproduction interdite 18
QU’EST-CE QU’UN ORDINATEUR ?
Reproduction interdite 19
QU’EST-CE QU’UN ORDINATEUR ?
Types d’ordinateurs :
Toute machine capable de manipuler des
Muhammad Ibn informations binaires peut être qualifiée d'ordinateur.
Musa Al-Khwarizmi
Reproduction interdite 20
QU’EST-CE QU’UN ORDINATEUR ?
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 21
COMPOSANTS DE BASE D’UN ORDINATEUR
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 22
LE PROCESSEUR (CPU)
Reproduction interdite 23
LE PROCESSEUR
Reproduction interdite 24
LE FONCTIONNEMENT D’UN ORDINATEUR
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 25
ALGORITHMES & PROGRAMMATION I
Muhammad Ibn
Musa Al-Khwarizmi CHAPITRE II
LE CONCEPT D’ALGORITHME
Reproduction interdite 26
DEFINITION
Contexte
Problème réel
Algorithme
Programme
Résultats (solution du
problème)
Reproduction interdite 27
RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
Reproduction interdite 28
RESOLUTION D’UN PROBLEME REEL AVEC UN PROGRAMME INFORMATIQUE
Reproduction interdite 30
QU’Est-ce QU’UN ALGORITHME INFORMATIQUE
Reproduction interdite 31
POURQUOI UTILISER UN ALGORITHME
Reproduction interdite 32
INPUT ET OUTPUT D’UN ALGORITHME
D’entrées (input) et
Muhammad Ibn
Musa Al-Khwarizmi
Sortie (output).
Reproduction interdite 33
INPUT ET OUTPUT D’UN ALGORITHME
Muhammad Ibn
Musa Al-Khwarizmi
Input Outpu
t
Traitement
Reproduction interdite 34
Structure GENERALE d’un algorithme
Algorithme <Nom de l’algorithme> L’entête
Constantes
<Liste des constantes avec leurs valeurs>
La partie
Types déclarativ
<définition des types définis par
e
Muhammad Ibn l’utilisateurs>
Musa Al-Khwarizmi
Variables
<Liste de variables suivis de leurs types>
DEBUT
Le corps de
<Séquence d’actions>
l’algorithme
FIN
Reproduction interdite 35
COMPOSANTS D’UN ALGORITHME
Un algorithme est composé de trois (3) parties principales :
Reproduction interdite 37
PROPRIETES D’UN ALGORITHME
Reproduction interdite 38
PROPRIETES D’UN ALGORITHME
4. Répétitivité : généralement, un algorithme contient
plusieurs itérations, c’est-à-dire des actions qui se répètent
plusieurs fois.
Muhammad Ibn
5. Efficacité : Idéalement, un algorithme doit être conçu de
Musa Al-Khwarizmi
telle sorte qu’il se déroule en un temps minimal et qu’il
consomme un minimum de ressources.
Remarque :
Attention, certains problèmes n’admettent pas de solution
algorithmique exacte et utilisable. On utilise dans ce cas des
algorithmes heuristiques qui fournissent des solutions approchées.
Reproduction interdite 39
Convention D’ECRITURE : L’ORGANIGRAMME
Reproduction interdite 40
Convention D’ECRITURE : L’ORGANIGRAMME
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 41
Convention D’ECRITURE : le pseudo-code ou LDA
Reproduction interdite 42
Convention D’ECRITURE : le pseudo-code ou LDA
Reproduction interdite 43
Convention D’ECRITURE : le pseudo-code ou LDA
DEBUT
Ecrire("saisir un entier a : ")
Lire(a)
Muhammad Ibn Ecrire("saisir un entier b : ")
Musa Al-Khwarizmi
Lire(b)
SI ((a = 0) OU (b = 0)) ALORS
Le corps de
Ecrire ("Le produit est nul") l’algorithme
SINON SI ((a < 0) ET (b < 0) OU (a > 0) ET (b > 0))
ALORS
Ecrire ("Le produit est
positif")
SINON Ecrire ("Le produit est
négatif")
FINSI
FINSI
FIN Reproduction interdite 44
NOTION DE PROGRAMME
Reproduction interdite 45
NOTION DE PROGRAMME
Le langage de programmation est l'intermédiaire entre
l'humain et la machine, il permet d'écrire dans un langage proche
de la machine mais compréhensible par l'humain les opérations
que l'ordinateur doit effectuer.
Muhammad Ibn
Un langage de programmation est un langage
Musa Al-Khwarizmi
comprenant un ensemble de caractères, de symboles et de mots
régis par des règles qui permettent de les assembler, utilisé pour
donner des instructions à une machine.
Il existe plusieurs langages de programmation, la plupart d'entre
eux étant réservés à des domaines spécialisés. Exemple : Fortran,
C, C++, Java, Pascal , Python…
Reproduction interdite 46
LANGAGE DE PROGRAMMATION
QUESTION : Puisque l’ordinateur ne comprend que le langage
binaire (langage machine) comment va-t-il faire pour exécuter
un programme écrit dans un langage de programmation
(langage évolué) ?
REPONSE : Le programme écrit en langage évolué (C, C++,
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 47
LANGAGE DE PROGRAMMATION
Compilateur :
Traduit une fois pour toutes les programmes dans leur
ensemble :
tout le programme est fourni au compilateur pour la traduction
Muhammad Ibn
et son résultat sera un nouveau fichier autonome, c'est-à-dire
Musa Al-Khwarizmi
qui n'aura plus besoin d’un programme autre que lui pour
s'exécuter; on dit d'ailleurs que ce fichier est exécutable peut
être soumis au processeur pour traitement.
Un langage de programmation pour lequel un compilateur est
disponible est appelé un langage compilé.
Reproduction interdite 48
LANGAGE DE PROGRAMMATION
Interpréteur :
Traduit les programmes instruction par instruction et
soumet chaque instruction traduite au processeur pour
Muhammad Ibn
exécution.
Musa Al-Khwarizmi
Reproduction interdite 49
LANGAGE DE PROGRAMMATION
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 50
ALGORITHMES & PROGRAMMATION I
Muhammad Ibn
CHAPITRE III
variables & ACTIONS DE BASE
Musa Al-Khwarizmi
Reproduction interdite 51
C’est quoi une variable ?
Au cours de l’exécution d’un programme informatique on aura
besoin de stocker des informations en mémoire :
Reproduction interdite 52
Les types de DONNEES
Les données sont contenues dans des cases mémoires de
l’ordinateur;
La longueur de la case mémoire dépend du type de
données qu’elle contient.
Muhammad Ibn
Il existe cinq (5) types de base ou primitifs avec lesquels on
Musa Al-Khwarizmi peut construire d’autres types dits « types construits »
Type de base de variable Exemple de valeurs à Mot clé
contenir
Entier -50; 0; 600; 1000 Entier
Numérique
Réel 20; -4; 36,123; 3,14 Réel
Caractère ‘a‘; ‘D‘; ‘+‘; ‘1‘ Car
Alphanumérique Chaîne de ˝Algorithme˝; ˝variable˝; Chaîne
caractères
Reproduction interdite 53
Les types NUMERIQUES
Reproduction interdite 54
CHOIX DES IDENTIFICATEURS
Muhammad Ibn
exemple valide : A1 exemple invalide : 1A
Musa Al-Khwarizmi
Reproduction interdite 56
Les constantes
Reproduction interdite 57
EXPRESSION & OPERATEURS
Une expression peut être une valeur, une variable ou une opération
constituée de variables reliées par des opérateurs :
Exemples : 1, b, a*2, a+3*b-c, …
L'évaluation de l'expression fournit une valeur unique qui est le résultat
Muhammad Ibn
Musa Al-Khwarizmi
de l'opération
Les opérateurs dépendent du type de l'opération, ils peuvent être :
des opérateurs arithmétiques :
+, -, *, /, div, modulo, ^ (puissance)
• a = b * q + r avec r < b, q = a div b, r = a
modulo b
17 div 5 = 3 et 17 modulo 5 = 2
Reproduction interdite 58
PRIORITE DES OPERATEURS
Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de
priorité est le suivant (du plus prioritaire au moins prioritaire) :
1) ^ (élévation à la puissance)
2) * , / , div (multiplication, division, division
Muhammad Ibn
Musa Al-Khwarizmi
entière)
3) % (modulo)
4) + , - (addition, soustraction)
exemple : 2 + 3 * 7 vaut 23
En cas de besoin (ou de doute), on utilise les parenthèses pour
indiquer les opérations à effectuer en priorité
exemple : (2 + 3) * 7 vaut 35
Reproduction interdite 59
L’instruction d’affectation
Reproduction interdite 60
L’instruction d’affectation
Permet d’attribuer des valeurs aux variables en utilisant le symbole suivant
Syntaxe Exemples de déclaration Exemples d’affectation
Variable PI : Réel PI 3,14
Muhammad Ibn
Variable Prenom : Chaîne Prenom ˝Sylvie˝
Musa Al-Khwarizmi
Reproduction interdite 61
Les types d’affectation : Type 1
Possibilité d’affecter une valeur de même
type à une variable
Nom_variable valeur_de_meme_type
Reproduction interdite 62
Les types d’affectation : Type 2
Possibilité d’affecter une variable de même
type à une variable
Nom_variable variable_de_meme_type
Muhammad Ibn
Musa Al-Khwarizmi Exemples :
Prenom1˝Snoopy˝
Prenom2˝Daniel˝
Prenom2prenom1
Reproduction interdite 63
Les types d’affectation : Type 3
Muhammad Ibn
C’est le cas quand elles sont du même type ou quand
Musa Al-Khwarizmi
l’expression est entière et la variable réelle.
réel entier (juste)
Reproduction interdite 64
Les types d’affectation : Type 3
Nom_variable expression_retournant_meme_type
Exemples :
Muhammad Ibn k i+j
Musa Al-Khwarizmi
Consommation nouvel_index –
ancien_index
Moyenne somme_notes/nombre_eleves
TVA HT*0,2
Reproduction interdite 65
EXERCICE SIMPLE SUR L’affectation
Donnez les valeurs des variables A, B et C après exécution
des instructions suivantes ?
Variables A, B, C: entier
DEBUT
Muhammad Ibn A -3
Musa Al-Khwarizmi
B 7
A B
B A-5
C A + B
C B – A
FIN
Reproduction interdite 66
EXERCICE SIMPLE SUR L’affectation
Donnez les valeurs des variables A et B après exécution
des instructions suivantes ?
Variables A, B : entier
DEBUT
Muhammad Ibn
Musa Al-Khwarizmi
A 4
B 9
A B
B A
FIN
Reproduction interdite 67
EXERCICE SIMPLE SUR L’affectation
Reproduction interdite 68
Instructions d’ENTREES / SORTIES
L’interaction
Le dialogue
Reproduction interdite 69
Instructions d’ENTREES / SORTIES
Reproduction interdite 70
Instructions d’ENTREES / SORTIES
On appelle donc :
L’utilisateur (user)
Reproduction interdite 71
Instructions d’ENTREES / SORTIES
Lire(V)
L’instruction Lire(V) indique que la valeur stockée
dans la variable V va être affichée à l’écran.
Reproduction interdite 73
Lecture
lecture Saisir au clavier et affecter ce qui est saisi aux variables déjà
définies
Syntaxe Exemples
Muhammad Ibn Lire(a)
Lire(nom_variable)
Musa Al-Khwarizmi
Lire(TVA)
Lire(note)
Reproduction interdite 74
ecriture
Ecriture Afficher à
l’écran
Reproduction interdite 75
Exercice
Muhammad Ibn
Musa Al-Khwarizmi Écrire un algorithme qui demande à l’utilisateur de saisir deux
nombres entiers et de calculer leur somme et l’afficher à
l’écran.
Reproduction interdite 76
Solution de l’exercice
Algorithme Somme
Variables a, b, S : Entier
DEBUT
Muhammad Ibn
Ecrire(˝Saisir a :˝)
Musa Al-Khwarizmi
Lire(a)
Ecrire(˝Saisir b :˝)
Lire(b)
S a + b
Ecrire(˝La somme est :˝,S)
FIN
Reproduction interdite 77
ALGORITHMES & PROGRAMMATION I
Muhammad Ibn
CHAPITRE IV
Musa Al-Khwarizmi
Les STRUCTURES DE CONTROLE
Reproduction interdite 78
INTRODUCTION
En programmation impérative, une structure de
contrôle est une commande qui contrôle l’ordre dans
lequel les différentes instructions d’un algorithme
ou d’un programme informatique sont exécutées.
Muhammad Ibn
Musa Al-Khwarizmi
On appelle aussi cet enchaînement d’instructions le
flot d’exécution d’un programme.
Reproduction interdite 79
INTRODUCTION
Reproduction interdite 80
INTRODUCTION
Il existe trois (3) structures de contrôles
différentes :
La séquence
Muhammad Ibn
Musa Al-Khwarizmi La sélection (Structure Conditionnelle)
La répétition ( Les boucles)
Un algorithme est une combinaison de séquences,
répétitions, de sélection et d’actions propres de
l’opérateur (actions élémentaires)
Reproduction interdite 81
LA SEQUENCE
Muhammad Ibn
DEBUT
Musa Al-Khwarizmi
action 1
action 2
…
action n
FIN
Reproduction interdite 82
LA SEQUENCE
Reproduction interdite 83
LA SELECTION (STRUCTURE CONDITIONELLE)
Reproduction interdite 84
LA SELECTION (STRUCTURE CONDITIONELLE)
Reproduction interdite 85
ALTERNATIVE SI…ALORS…SINON
On utilisera la forme
suivante :
SI (condition) ALORS
Muhammad Ibn
Instruction(s) 1
SINON
Musa Al-Khwarizmi
Instruction(s) 2
FINSI
Reproduction interdite 86
ALTERNATIVE SI…ALORS…SINON
Reproduction interdite 87
EXEMPLE
Algorithme : Test
Variable X : entier
DEBUT
Écrire(" Saisir un entier X ")
Muhammad Ibn
Musa Al-Khwarizmi
Lire(X)
SI (X > 0) ALORS
Écrire(" X est un nombre positif ")
SINON
Écrire(" X est un nombre négatif ou
nul ")
FINSI
FIN
Reproduction interdite 88
EXERCICE
Reproduction interdite 89
SOLUTION DE L’EXERCICE
Algorithme Affichage_Valeur_Absolue (version1)
Variable x : réel
DEBUT
Ecrire(" Entrez un réel : ")
Muhammad Ibn
Lire(x)
Musa Al-Khwarizmi
SI (x < 0) ALORS
Ecrire("La valeur absolue de ", x, "est :",-
x)
SINON
Ecrire("La valeur absolue de ", x,
"est :",x)
FINSI
FIN
Reproduction interdite 90
ALTERNATIVE SI…ALORS
La partie SINON n'est pas obligatoire, quand elle n'existe
pas et que la condition est fausse, aucun traitement n'est
réalisé
On utilisera dans ce cas la forme simplifiée suivante :
Muhammad Ibn
SI (condition) ALORS
Musa Al-Khwarizmi
Instruction(s)
FINSI
Reproduction interdite 91
EXEMPLE
Algorithme Affichage_Valeur_Absolue
(version2)
Variable x,y : réel
DEBUT
Ecrire(" Entrez un réel : ")
Muhammad Ibn
Musa Al-Khwarizmi Lire(x)
y x
SI (x < 0) ALORS
y -x
FINSI
Ecrire("La valeur absolue de ", x,
"est :",y)
FIN
Reproduction interdite 92
EXERCICE
Reproduction interdite 93
SOLUTION DE L’EXERCICE
Algorithme Divsible_par3
Variable n : entier
DEBUT
Ecrire(" Entrez un entier : ")
Muhammad Ibn
Lire(n)
Musa Al-Khwarizmi
SI (n modulo 3 = 0) ALORS
Ecrire(n," est divisible par 3")
SINON
Ecrire(n," n'est pas divisible par 3")
FINSI
FIN
Reproduction interdite 94
Conditions COMPOSEES
Reproduction interdite 95
TABLES DE VERITE
Muhammad Ibn
Musa Al-Khwarizmi
Reproduction interdite 96
EXEMPLE (1)
Expression Résultat
(47) ET (90) Vrai
Muhammad Ibn (10) OU (11) Faux
Musa Al-Khwarizmi
NON(13.415) Faux
Reproduction interdite 97
ALTERNATIVE SI…ALORS…SINON IMBRIQUES
Les tests peuvent avoir un degré quelconque d'imbrications
SI (condition1) ALORS
SI (condition2) ALORS
instruction(s) A
SINON
instruction(s) B
Muhammad Ibn
Musa Al-Khwarizmi
FINSI
SINON
SI (condition3) ALORS
instruction(s) C
FINSI
FINSI
Reproduction interdite 98
EXEMPLE (VESRION 1)
Variable n : entier
DEBUT
Ecrire("entrez un nombre : ")
Lire(n)
SI (n < 0) ALORS
Ecrire("Ce nombre est négatif")
Muhammad Ibn
Musa Al-Khwarizmi SINON
SI (n = 0) ALORS
Ecrire("Ce nombre est nul")
SINON
Ecrire("Ce nombre est positif")
FINSI
FINSI
FIN
Reproduction interdite 99
EXEMPLE (VESRION 2)
Variable n : entier
DEBUT
Ecrire("entrez un nombre : ")
Lire(n)
SI (n < 0) ALORS
Ecrire("Ce nombre est négatif")
Muhammad Ibn
Musa Al-Khwarizmi FINSI
SI (n = 0) ALORS
Ecrire("Ce nombre est nul")
FINSI
SI (n > 0) ALORS
Ecrire("Ce nombre est positif")
FINSI
FIN
Muhammad Ibn
Musa Al-Khwarizmi Ecrire un algorithme qui affiche la mention dans les
bulletins de note des étudiants selon la note obtenue
Muhammad Ibn
Musa Al-Khwarizmi Ecrire un algorithme qui lit trois entiers A, B et
C, et affiche le plus grand.
FINSI
SINON
SI (B > C) ALORS
Ecrire("Le plus grand nombre est : ", B)
SINON
Ecrire("Le plus grand nombre est : ", C)
FINSI
FINSI
FIN
Muhammad Ibn
Musa Al-Khwarizmi Ecrire un algorithme qui calcule le carré
d’un nombre entier positif
Algorithme carré
Variables Nombre, Carre : Entier
DEBUT
Ecrire(˝Saisir le nombre :˝)
Muhammad Ibn
Musa Al-Khwarizmi
Lire(Nombre)
SI (Nombre > 0) ALORS
Carre Nombre*Nombre
Ecrire(˝Le carré est˝, Carre)
FINSI
FIN
taxe CA*0,1
SINON
taxe CA*0,2
FINSI
Ecrire(˝La taxe est˝, taxe)
FIN
Muhammad Ibn
Un opérateur de comparaison et a 50
Musa Al-Khwarizmi
Une seconde valeur
Les valeurs peuvent être de n’importe quel type
Numériques
Chaîne de caractères
Etc.
Muhammad Ibn
Si la condition est vraie, on exécute les instructions
Musa Al-Khwarizmi
(corps de la boucle), puis, on retourne tester la
condition. Si elle est encore vraie, on répète l'exécution,
…
Muhammad Ibn i 2
Musa Al-Khwarizmi
TANTQUE (i > 0)
i i+1 (attention aux erreurs de frappe : + au lieu
de -)
FINTANQUE
Variable i : entier
DEBUT
i 0
Muhammad Ibn
TANTQUE (i < 3)
Musa Al-Khwarizmi
Variable A : entier
DEBUT
A 10
Muhammad Ibn
Musa Al-Khwarizmi
TANTQUE (A > 0)
A A - 2
FINTANTQUE
Ecrire(" La valeur de A est : ", A)
FIN
Variables c : entier
DEBUT
REPETER
Lire(c)
Muhammad Ibn
Musa Al-Khwarizmi
c c*c
Ecrire(c)
JUSQU’À (c = 0)
Ecrire("Fin")
FIN
Muhammad Ibn
Musa Al-Khwarizmi
POUR i 1 à 5 FAIRE
POUR j 1 à i
Muhammad Ibn FAIRE
Musa Al-Khwarizmi
Ecrire("O")
FINPOUR
Ecrire("X")
FINPOUR
Muhammad Ibn
Si on doit tester la condition de contrôle avant de
Musa Al-Khwarizmi
commencer les instructions de la boucle, on utilisera
TANTQUE…FAIRE
CHAPITRE IV
Muhammad Ibn
Musa Al-Khwarizmi
Les tableaux
Exemple :
Muhammad Ibn
Musa Al-Khwarizmi
variable tableau notes[30] : réel
On peut définir des tableaux de tous types : tableaux
d'entiers, de réels, de caractères, de booléens, de chaînes de
caractères, …
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Algorithme qui permet de saisir et d'afficher les éléments d'un
Musa Al-Khwarizmi
tableau de 30 notes:
Muhammad Ibn
Ecrire("Saisie de l'élément ", i )
Musa Al-Khwarizmi
Lire(notes[i])
FINPOUR
POUR i 1 à 30 FAIRE
Ecrire(" notes[",i,"]=", notes[i])
FINPOUR
FIN
Muhammad Ibn
somme 0
Musa Al-Khwarizmi
POUR i 1 à 20 FAIRE
somme somme + T[i]
FINPOUR
Ecrire(" La somme de tous les éléments du tableau est : " ,
somme)
FIN
max T[i]
FINSI
FINPOUR
Ecrire(" Le plus grand élément de ce tableau : " , max)
FIN
Muhammad Ibn
Algorithme qui calcule la somme de deux
Musa Al-Khwarizmi
matrices de vingt lignes et cinquante colonnes.
Algorithme Somme_Matrices
Variables i, j : entier
Tableau A[20][50], B[20][50], C[20][50] : réel
Muhammad Ibn
DEBUT
POUR i 1 à 20 FAIRE
Musa Al-Khwarizmi
POUR j 1 à 50 FAIRE
C[i][j] A[i][j]+B[i][j]
FINPOUR
FINPOUR
FIN
Syntaxe :
Muhammad Ibn
CHAPITRE IV
Musa Al-Khwarizmi
Les STRUCTURES OU ENREGISTREMENTS
Syntaxe de la déclaration :
Muhammad Ibn
<identificateur champ> :
<type>
...
<identificateur champ> :
<type>
<identificateur champ> :
<type>
FINSTRUCTURE (ENREGISTREMENT)
Reproduction interdite 168
EXEMPLE
Il peut être pratique de définir des types puis d'utiliser ces noms
dans des déclarations de variables.
Syntaxe pour définir un type :
Muhammad Ibn
Musa Al-Khwarizmi
Définition de type :
Type t_tab = tableau[15] d'entiers
Déclaration de variable :
Muhammad Ibn
Musa Al-Khwarizmi
Variable tab : t_tab
Définition de type :
Type t_matrice = tableau[3][5] de caractères
Déclaration de variable :
Variable mat : t_matrice
Définition de type :
Type t_elt = STRUCTURE (ENREGISTREMENT)
nom : chaîne de caractères /* nom de
l'élément */
symbole : chaîne de caractères /* symbole
Muhammad Ibn
Musa Al-Khwarizmi
chimique */
Z : entier /* numéro atomique */
masse : réel /* masse atomique
*/
FINSTRUCTURE (ENREGISTREMENT)
RemarqueDéclaration
: les nomsdede
variable
types: suivent les règles des
Variable elt : t_elt
identificateurs.
C'est par simple commodité, pour les distinguer des identificateurs
des variables, que ceux des exemples commencent par t_.
Reproduction interdite 173
TYPES COMPLEXES
Muhammad Ibn
Musa Al-Khwarizmi Définitions des types :
Type t_elt = STRUCTURE (ENREGISTREMENT)
nom : chaîne de caractères /* nom de
l'élément */
symbole : chaîne de caractères /* symbole
chimique */
Z : entier /* numéro atomique */
masse : réel /* masse atomique
*/
FINSTRUCTURE (ENREGISTREMENT)
Reproduction interdite
Variable t_table : tableau[120] de t_elt 175
TABLEAUX DE STRUCTURES OU D’ENREGISTREMENTS)
Déclaration :
Variable table_periodique : t_table
Muhammad Ibn
Musa Al-Khwarizmi
Accès à un élément :
table_periodique[4].masse //Contient la
valeur 10,8
table_periodique[2].symbole //Contient la valeur
'Li'
Muhammad Ibn
Musa Al-Khwarizmi Définitions des types :
Type t_temp = tableau[100] de réel
Type t_liste = STRUCTURE
temp : t_temp /* tableau des températures */
nb : entier /* nombre de températures */
tmin : réel /* température minimale */
tmax : réel /* température maximale */
FINSTRUCTURE
Déclaration :
mesures.nb vaut 5
CHAPITRE V
Muhammad Ibn
Musa Al-Khwarizmi
Les POINTEURS
Muhammad Ibn
Musa Al-Khwarizmi
La mémoire centrale (MC), qui peut être vue
comme un vecteur, est formée de plusieurs cases
ou cellules numérotées (0, 1, 2, 3, 4, 5, etc.)
Chaque variable occupe les cases mémoires qui lui sont dédiées.
Variable x : entier
P : pointeur sur entier (P va contenir l’adresse d’un
entier) ou P : ^Entier
Exemple : x = P^
DEBUT
x 10
Muhammad Ibn
P Adr(x)
Musa Al-Khwarizmi
P^ 5
P^ 5
Muhammad Ibn
Musa Al-Khwarizmi
Libérer(P)
Allouer(ptx1) Ecrire(ptx2^)
Lire(ptx1^) Libérer(ptx2)
Pˆ.j 14
Pˆ.m 09
Pˆ.a 2022
Muhammad Ibn
Musa Al-Khwarizmi
Libérer(P)
CHAPITRE VI
Muhammad Ibn
Musa Al-Khwarizmi
PROCEDURES & FONCTIONS
Muhammad Ibn
Instruction(s)
FINPROCEDURE
Musa Al-Khwarizmi
DEBUT
POUR i de 1 à 15 FAIRE
Ecrire("*")
FINPOUR
Ecrire(" retour à la ligne ")
FINPROCEDURE
FIN
DEBUT
A A * 2
Ecrire(A)
FINPROCEDURE
Syntaxe :
FONCTION nom_Fonct (liste de paramètres) :
type
Muhammad Ibn
Musa Al-Khwarizmi Variables identificateur : type
DEBUT
Instruction(s)
Retourner Expression
FINFONCTION
Note :
Les paramètres sont facultatifs, mais s'il n'y pas de
paramètres, les parenthèses doivent rester présentes.
SI (X > Y) ALORS
Retourner X
SINON
Retourner Y
FINSI
FINFONCTION
Ceci est très similaire aux suites définies par récurrence, qui existent
en mathématiques.
Muhammad Ibn
Musa Al-Khwarizmi
Exemple d’une suite définie par récurrence :
SI (n > 1) ALORS
Retourner (n * Fact(n-1))
SINON
Retourner 1
FINSI
FINFONCTION
Muhammad Ibn
Musa Al-Khwarizmi
CHAPITRE VII
Muhammad Ibn
Musa Al-Khwarizmi
LES LISTES LINEAIRES CHAINEES
P P
Init(P)
? NI
Muhammad Ibn L
Musa Al-Khwarizmi
P Allouer(P) P
? 10
0 100
P Libérer(P) P
10 5 ?
Muhammad Ibn 0 100
Musa Al-Khwarizmi
P x
x Val(P) P x
10 5
10 5 5
0 100 0 100
P Aff_Val(P,3) P
Muhammad Ibn
Musa Al-Khwarizmi
1 3
P x Aff_Val(P,x) P x
5 5 5
Q P Q P
Aff_Val(P,Val(Q))
-1 3 -1 -1
Q P Q
P
100 100 100
200
Muhammad Ibn
Musa Al-Khwarizmi
Q P
3
-1 200 P -1 3
10 20 10 20
P 0 0 0 P 0
100 200
p
-1 200 3 Suiv(P) -1 200 3
10 20 10 20
0 0 0 0
Q P P
Muhammad Ibn
Musa Al-Khwarizmi 200 200 Q
100
300
Q
4 200 0 300 3 Suiv(P) 4 200 0 300 3
10 20 30 10 20 30
0 0 0 0 0 0
Muhammad Ibn
Musa Al-Khwarizmi
P
P Q 100 Q
200
100 200
Aff_Suiv(P,Q)
4 NIL 0 300 3 4 200 0 300 3
10 20 30 10 20 30
0 0 0 0 0 0
Q P Q
P 100
200 200
100
Aff_Suiv(P,Suiv(Q)
4 200 0 300 3 ) 4 300 0 300 3
10 20 30 10 20 30
0 0 0 0 0 0
Reproduction interdite 254
MODELE SUR LES LISTES
Primitives Langage algorithmique
Allouer
Libérer
FONCTION Val(P: Liste) : Typeqld
DEBUT
Val Retourner (P^.Val)
FINFONCTION
S Q P
Allouer(S)
Aff_Val(S,2)
QS …ligne 1 2
Muhammad Ibn
Musa Al-Khwarizmi
S Q P
Allouer(P)
Aff_Val(P,Val(Q)-1)
Aff_Suiv(S,P) …ligne 2 2 1
S Q P
2 1
QSuiv(S) …ligne 3
Muhammad Ibn
Musa Al-Khwarizmi
S Q P
Aff_Suiv(P,S) …ligne 2 1
4
2 NIL 1
Aff_Suiv(S,NIL) …ligne 5
Muhammad Ibn
Musa Al-Khwarizmi
Q P S
1 2 NIL
1 NIL 2 NIL
Aff_Suiv(P,Suiv(S)) …ligne 6
Muhammad Ibn
Musa Al-Khwarizmi
Q = P S
NIL
1 NIL 2 NIL
QSuiv(P) …ligne 7
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
L = Liste vide
L NIL
2 0 5 3 NIL
CHAPITRE X
Muhammad Ibn
Musa Al-Khwarizmi
LES PILES & FILES
CHAPITRE IX
Muhammad Ibn
Musa Al-Khwarizmi
LES FICHIERS
CHAPITRE X
Muhammad Ibn
Musa Al-Khwarizmi
LA COMPLEXITE ALGORITHMIQUE
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Calculer la complexité « C » (le nombre d’instructions) pour n
Musa Al-Khwarizmi
et pour n+1, et faire la différence entre les deux. (n : doit être
le plus grand possible).
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Exercice démonstratif N3 :
DEBUT
X 0
POUR i de 1 à n FAIRE
Muhammad Ibn POUR j de 1 n FAIRE
Musa Al-Khwarizmi
xx+1
FINPOUR
FNPOUR
FIN.
On a deux boucles imbriquées, dont chacune va s’exécuter n fois
donc on a n*n itérations.
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
CHAPITRE XI
Muhammad Ibn
Musa Al-Khwarizmi
INITIATION A LA COMPLEXITE
ALGORITHMIQUE
Exercice
Muhammad Ibn
Musa Al-Khwarizmi Ecrire une fonction qui prend en argument une chaine de
caractère et détermine si le caractère ‘a’ est présent dans la
chaîne (cette fonction retourne soit VRAI ou FAUX.
Questions
Définition
Muhammad Ibn
Musa Al-Khwarizmi
Comment évaluer le coût
d’exécution d’un algorithme
donné ?
1. Complexité temporelle
2. Complexité spatiale
Muhammad Ibn
Musa Al-Khwarizmi
Remarque
Dans ce cours, nous nous intéresserons uniquement à la complexité
temporelle.
Reproduction interdite 305
LA NOTATION « grand O »
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Pour cela on applique les règles suivante afin de simplifier
Musa Al-Khwarizmi
l’expression du temps d’exécution :
1. Tout d’abord on remplace les constante multiplicative par
1
2. On annule les constantes additives
3. On garde le terme de plus haut degré
C’est ainsi qu’on peut calculer facilement la complexité du
programme en question
Reproduction interdite 308
Le COÛT DES INSTRUCTIONS ELEMENTAIRES
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Exemple 3 : Que vaut le coût de l’algorithme B
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Pour cela, on distingue 3 types de complexité :
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi
Muhammad Ibn
Musa Al-Khwarizmi