Vous êtes sur la page 1sur 69

Ingénierie Informatique et Sciences des Données : 2ISD

Fondements de la sciences des données : Algorithmes &


Structures des données

Pr : KASSABI Khadija
kassabikhadija2isd@gmail.com

Algorithmes & Structures des données 2023 – 2024


Objectifs du cours

 Comprendre les principes fondamentaux de l’algorithmique et de la programmation.


 Maîtriser la conception et l'analyse d'algorithmes.
 Apprendre à résoudre des problèmes informatiques complexes à l'aide d'algorithmes
efficaces
 Comprendre les structures de données de base et leur utilisation.
 Acquérir des compétences en programmation pour mettre en œuvre des algorithmes
et des structures de données.
 Être capable d'optimiser des algorithmes pour améliorer les performances.
 Être capable de résoudre des problèmes en utilisant des algorithmes de recherche et
de tri.
 Préparer les étudiants à résoudre des problèmes du monde réel en utilisant des
algorithmes et des structures de données.

K.Kassabi 25/10/2023 2
Plan du cours

1 Les notions fondamentales de l’algorithmique

• Les types de base


• Les instructions simples
• Structures conditionnelles et itératives
• Procédures et fonctions Langage C (Outils
de Programmation)
2 Structures des données : Tableau , Tableau 2D , Structure

3 Les algorithms de Tri, de Recherche

4 Analyse et Optimisation des Performances : Complexité (O)

K.Kassabi 25/10/2023 3
Algorithmique
Leçon 1 : Introduction à la programmation

Objectifs:

 Connaître le vocabulaire de base en programmation.


 Comprendre la démarche de programmation.

K.Kassabi 25/10/2023 4
Notions de Programmation

 La programmation d'un ordinateur consiste en effet à « expliquer » en détail à une


machine ce qu'elle doit faire, en sachant d'emblée qu'elle ne peut pas véritablement
« comprendre » un langage humain, mais seulement effectuer un traitement
automatique sur des séquences de caractères.
 Un programme n'est rien d'autre qu'une suite d'instructions, codées en respectant
de manière stricte un ensemble de conventions fixées à l'avance que l'on appelle
un langage informatique.

K.Kassabi 25/10/2023 5
Langage Informatique (2)

Un programme informatique a trois principales fonctions :

 Lecture des données en entrée: Le programme recueille les informations nécessaires à partir
de sources telles que claviers, disques durs, ou réseaux.

 Traitement des données: À partir des données d'entrée, le programme utilise des opérations
pour effectuer des calculs et manipulations, produisant ainsi un résultat.

 Écriture des données en sortie: Une fois les calculs effectués, le programme affiche le résultat
à l'écran, le stocke dans un fichier ou le conserve en mémoire pour une utilisation ultérieure.

Traitement Sortie
Entrées (a, b) a+b s
(Algorithme)

K.Kassabi 25/10/2023 6
Algorithmique : Définition

 Le terme "algorithme" tire son origine du mathématicien Arab Muhammad ibn


Musa al-Khwarizmi, dont le nom latinisé, "Algoritmi," a donné naissance au mot
« algorithme »
 Un Algorithme est une séquence d'instructions bien définies pour résoudre des
problèmes .
 Les algorithmes sont partout dans le monde de l'informatique : de la recherche sur
Internet aux recommandations de films sur les plateformes de streaming.
 Les économistes utilisent des algorithmes pour analyser d'énormes volumes de
données, identifier des tendances et prendre des décisions éclairées.

K.Kassabi 25/10/2023 7
Algorithmique : Représentation

Historiquement deux façons pour représenter un algorithme:

 L’Organigramme: représentation graphique avec des symboles (carrés, losanges, etc.)


 Offre une vue d’ensemble de l’algorithme
 Cette représentation quasiment abandonnée aujourd’hui
 Le pseudo-code: représentation textuelle avec une série de conventions ressemblant à
un langage de programmation (sans les problèmes de syntaxe)
 plus pratique pour écrire un algorithme
 représentation largement utilisée

K.Kassabi 25/10/2023 8
Algorithmique : Syntaxe

Le Syntaxe d’un algorithme est comme suit :

K.Kassabi 25/10/2023 9
Algorithmique
Leçon 2 : Types des données

Objectifs:

 Connaître les types de bases .


 Connaître les opérations fondamentales .

K.Kassabi 25/10/2023 10
Variables et Opérations

 En algorithmique, une variable est un symbole utilisé pour stocker et représenter une valeur
ou une donnée .

 Elle peut être modifiée ou mise à jour pendant l'exécution de l'algorithme pour effectuer
diverses opérations.

 Chaque variable est caractérisée par:


 un nom (Identificateur).
 un type e (nombre entier, nombre réel, caractère, suite de caractères, ou type plus
complexe).

 Une déclaration de variable a toujours la forme : Variables nom : type

K.Kassabi 25/10/2023 11
Variables et Opérations : Identificateur

Le choix des noms des variables est soumis a quelques règles qui varient selon les langages mais
en général :
 Un nom doit commencer par une lettre alphabétique :
Exemple : A1 : Valide 2ISD : Invalide
 Contient uniquement des lettres, chiffre et soulignement « _ »
Exemples : IISD_2023, MP3s_9 …
 Doit être différents des noms réservés : int , float , max, for, return…
 La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage
utilisé.
Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les données
manipulées
exemples: TotalVentes2019, Prix_TTC, Prix_HT

K.Kassabi 25/10/2023 12
Variables et Opérations : Types

 Type entier:
 Le type entier (« int » en langage C abréviation de l’anglais integer) est une représentation des
nombres entiers. Comme toute variable informatique, un int ne peut prendre qu’un nombre fini
de valeur.

 Un entier est généralement codé sur 4 octets (32 bits).

 Les valeurs sont entre − et − 1 (ce qui fait bien valeurs possibles).

 Les opérations arithmétiques binaires +, −, , / sont définies sur les ‘entiers’ et donnent toujours
pour résultat un entier .

K.Kassabi 25/10/2023 13
Variables et Opérations : Types

 Type réel et double :


 Les types réels (float en C) et double (double en C) permettent de représenter des nombres réels
avec une certaine précision (suivant une représentation des nombres appelée virgule flottante ou
nombre flottant).

 Un nombre réel tel qu’il est ainsi représenté possède une mantisse (des chiffres) et un exposant
qui correspond à la multiplication par une certaine puissance de 10.
Par exemple : 3.546E − 3 est égal à 3.546 × , ce qui fait 0.003546.

 Le type double (codé sur 8 octets) est plus précis que le type réel (codé sur 4 octets). La valeur
maximale d’un double est d’environ alors que celle d’un float est de l’ordre de .
(en C les valeurs limites exactes sont données par les constantes DBL_MAX et FLT_MAX de
la bibliothèque float.h).

K.Kassabi 25/10/2023 14
Variables et Opérations : Types

 Type Caractère :
 Le type caractère (Char en C abréviation de l’anglais character) est un type caractère codé sur
1 octet. C’est la plus petite donnée qui puisse être stockée dans une variable.

 Les valeurs (de −126 à 125) peuvent représenter des caractères conventionnels.
Par exemple, les caractères alphabétiques majuscules A, B, ..., Z ont pour valeur 65, 66, ... , 90
et les minuscules correspondantes a, b, ... ,z ont pour valeurs 97, 98, ... , 122. On appelle ce
codage des caractères le code ASCII.

 Une variable de type char peut être considérée soit comme un nombre(code ASCII), soit comme
un caractère que l’on peut afficher.

K.Kassabi 25/10/2023 15
Variables et Opérations : Types

 Type boolean :
 un booléen est un type de variable à deux états (généralement notés vrai et faux), destiné à
représenter les valeurs de vérité de la logique et l'algèbre booléenne .

 Constante :
 Une constante est une valeur qui n’est pas susceptible de varier lors de l’exécution d’un
programme.
Par exemple, 9.81 est une constante de type réel, 1024 est une constante de type entier (qui peut
aussi être affectée à une variable de type réel).

 En Algorithmique on déclare les constantes par : CONSTANTE TYPE NOM  val


Ex : CONSTANTE REEL G  9.81 CONSTANTE ENTIER H  4816

K.Kassabi 25/10/2023 16
Variables et Opérations : Opérations

 Les opérateurs sont des symboles qui permettent d'exécuter des opérations dans un algorithme
ou programme informatique entre deux opérants (variables )

 Les opérateurs sont fondamentaux pour écrire des algorithmes et des programmes. C’est ce qui
compose les instruction d’un programme .

Variable 1 Variable 2

Opérateur

Opération
K.Kassabi 25/10/2023 17
Variables et Opérations : Opérations

Opérateurs Arithmétiques
Il existe plusieurs opérateurs arithmétiques :

 + (addition) : Utilisé pour additionner deux valeurs.


 - (soustraction) : Utilisé pour soustraire la deuxième valeur de la première.
 * (multiplication) : Utilisé pour multiplier deux valeurs.
 / (division) : Utilisé pour diviser la première valeur par la deuxième.
 % (modulo) : Renvoie le reste de la division de la première valeur par la
deuxième.

K.Kassabi 25/10/2023 18
Variables et Opérations : Opérations

Opérateurs Arithmétiques
Exemple :

Variables a,b : entiers


Debut
a 8
b3
addition  a+b //addition vaut 11
soustraction  a-b //soustraction vaut 5
multiplication  a*b //multiplication vaut 24
division  a / b //division vaut 2.66666...
FIN

K.Kassabi 25/10/2023 19
Variables et Opérations : Opérations

Opérateurs de comparaison
Il existe plusieurs opérateurs de comparaison :

 == (égalité) : Vérifie si deux valeurs sont égales.


 != (différent) : Vérifie si deux valeurs sont différentes.
 < (inférieur à) : Vérifie si la première valeur est inférieure à la deuxième.
 > (supérieur à) : Vérifie si la première valeur est supérieure à la deuxième.
 <= (inférieur ou égal à) : Vérifie si la première valeur est inférieure ou égale à
la deuxième.
 >= (supérieur ou égal à) : Vérifie si la première valeur est supérieure ou égale
à la deuxième.

K.Kassabi 25/10/2023 20
Variables et Opérations : Opérations

Opérateurs de comparaison
Exemple :

Variables x,y : entiers


Debut
x 5
y10
egalite  x == y //egalite vaut False
difference  x != y //difference vaut True
inferieur x<y // inferieur vaut True
superieur x>y //Superieur vaut False
FIN

K.Kassabi 25/10/2023 21
Variables et Opérations : Opérations

Opérateurs logiques
Il existe plusieurs opérateurs logiques:

 and (et) : Renvoie True si les deux expressions sont vraies.


 or (ou) : Renvoie True si au moins l'une des expressions est vraie.
 not (non) : Inverse la valeur de l'expression.

K.Kassabi 25/10/2023 22
Variables et Opérations : Opérations

Opérateurs Logiques
Exemple :

Variables p,q : booleans


Debut

p True
qFalse
et  p AND q //et vaut False
ou  p OR q //ou vaut True
non_p  NOT p // non_p vaut False

FIN

K.Kassabi 25/10/2023 23
Variables et Opérations : Opérations

Opérateurs d'affectation
Il existe deux opérateurs d’affectation:

 = (affectation) : Utilisé pour assigner une valeur à une variable.


 *=, +=, -=, =, /=, %= (affectation avec opération) : Utilisé pour effectuer une
opération et mettre à jour la variable en une seule étape.

Exemple :
Variable x : entire
Debut
x5
x+=3 // x vaut maintenant 8 (équivaut à x  x + 3)
FIN

K.Kassabi 25/10/2023 24
Exercice

Quelles seront les valeurs des variables a, b et c


après exécution des instructions suivantes :

a1;
b5; Correction
ca–b; a=2
a2; b=5
ca+b; c=7

K.Kassabi 25/10/2023 25
Les fonctions d'entrée - Sortie

La fonction de Sortie


Pour afficher un caractère on peut utiliser la fonction Ecrire() :
Exemple :

Variable x : entire
Debut
x5
x+=3 // x vaut maintenant 8 (équivaut à x  x + 3)
Ecrire (x) //affichage d’une variable
Ecrire(“ Fin Programme . ”) //affichage d’u message
FIN

K.Kassabi 25/10/2023 26
Les fonctions d'entrée - Entrée

La fonction d’Entrée


Pour saisir une variable au clavier on peut utiliser la fonction Lire() :
Exemple :

Variable x : entire
Debut
Ecrire (“Donner la Valeur de x :”)
Lire (x) //saisir la valeur de x au clavier
x+=3 // x vaut maintenant 8 (équivaut à x  x + 3)
Ecrire (x) //affichage d’une variable
Ecrire(“ Fin Programme . ”) //affichage d’u message
FIN

K.Kassabi 25/10/2023 27
Exercices (1)
o Ecrire un algorithme qui lit deux entiers au clavier et qui affiche ensuite leur somme et leur
produit.

o Ecrire un algorithme qui permet d’échanger les valeurs de deux variables entières.

o Écrire un algorithme qui à partir de trois notes d’un étudiant (n1,n2,n3) et de trois coefficients
(c1,c2,c3) calcule la moyenne.

o Écrire un algorithme qui permet d’effectuer une permutation circulaire des valeurs entières de
trois variables x, y, z (la valeur de y dans x, la valeur de z dans y et la valeur de x dans z).

o Ecrire un algorithme qui calcule la surface et le périmètre d’un rectangle

o Écrire un algorithme qui à partir d’une somme d’argent donnée, donne le nombre minimal de
billets de 50DH et 20DH et le nombre de pièces de 2DH, 1DH qui la compose.
K.Kassabi 25/10/2023 28
Exercices (2)
o Pour convertir des degrés Fahrenheit en degrés Celsius, on a la formule suivante :
C ~ 0.55556 × (F − 32)
où F est une température en degrés Fahrenheit et C la température correspondante en degrés
Celsius.
-) Écrire un algorithme C qui convertit une température entrée au clavier exprimée
en degrés Fahrenheit et affiche une valeur approchée de la même température en degrés Celsius. Les
températures seront exprimées par des nombres réels .

o Lors d’une opération de promotion, un magasin de composants hardware applique une réduction de
10% sur tous les composants. Écrire un algorithme qui lit le prix d’un composant au clavier et
affiche le prix calculé en tenant compte de la réduction.

o Écrire un algorithme qui lit un nombre r au clavier et calcule le périmètre et l’aire d’un disque de
rayon r.
Périmètre = 2x PI x r
aire = PI x r x r
K.Kassabi 25/10/2023 29
Algorithmique
Leçon 3 : Structures Conditionnelles et Itératives

Objectifs:

 Apprendre a utiliser les structures conditionnelles


 Comprendre le syntaxe des structures itératives

K.Kassabi 25/10/2023 30
Structures Conditionnelles

QU’EST-CE L’EXÉCUTION CONDITIONNELLE ?


Dans certaines situations, on peut vouloir n’exécuter une instruction – ou une suite d’instructions –
que si une condition est vérifiée.

Par exemples :
 corriger le nombre de jours du mois de février dans le cas où l’année est bissextile.

 ne mener le calcul des racines d’une équation du second degré que si le déterminant est positif.

K.Kassabi 25/10/2023 31
Structures Conditionnelles

QU’EST-CE L’EXÉCUTION CONDITIONNELLE ?


L’exécution conditionnelle permet de faire deux choses différentes selon le cas qui
se produit. L’instruction ne sera exécutée que sous certaines conditions. Plus précisément, le
programme teste une condition, si la condition est satisfaite le programme fait une chose, dans le
cas contraire, le programme fait une autre chose.

Il nous faut pourvoir identifier :

 la condition : ce sera une valeur booléenne


 la ou les instructions à exécuter : ce sera un bloc d’instructions, repéré par une
indentation supplémentaire .

Une instruction conditionnelle peut avoir plusieurs formes.

K.Kassabi 25/10/2023 32
Structures Conditionnelles

CONDITION SI …….. Alors


Le syntaxe de cette forme des structures conditionnelles est comme suit :

série d’instructions 1 // début du programme


si (condition)
alors série d’insructions 2
fin si
série d’instructions 3 // suite du programme

La série d’instructions 2 sera exécutée seulement si la condition est réalisée.

K.Kassabi 25/10/2023 33
Structures Conditionnelles

CONDITION SI …….. Alors


L'exécution de cette structure se déroule selon l’organigramme suivant :

K.Kassabi 25/10/2023 34
Structures Conditionnelles

CONDITION SI …….. Alors


Exemple : Afficher la valeur absolue d’un nombre :
Algorithme AffichageValeurAbsolue
Variable x,y : réels
Début
Ecrire (" Veuillez saisir un réel : ")
Lire (x)
y← x
Si (x < 0) alors
y ← -x
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y)
Fin
K.Kassabi 25/10/2023 35
Structures Conditionnelles

CONDITION SI …. Alors …. Sinon


Le syntaxe de cette forme des structures conditionnelles est comme suit :

série d’instructions 1 // début du programme


si (condition)
alors
série d’instructions 2
sinon
série d’instructions 3
fin si
série d’instructions 4 //suite du programme

K.Kassabi 25/10/2023 36
Structures Conditionnelles

CONDITION SI …. Alors …. Sinon


L'exécution de cette structure se déroule selon l’organigramme suivant :

K.Kassabi 25/10/2023 37
Structures Conditionnelles

CONDITION SI …….. Alors…. Sinon


Exemple : Revenons a notre exemple de la valeur absolue d’un nombre :
Algorithme AffichageValeurAbsolue
Variable x : réel
Début
Ecrire (" Veuillez saisir un réel : ")
Lire (x)
Si (x < 0) alors
Ecrire ("la valeur absolue de ", x, "est:",-x)
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x)
Finsi
Fin
K.Kassabi 25/10/2023 38
Structures Conditionnelles

CONDITION SI …….. Alors…. Sinon


Exemple : Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et
affiche s'il est divisible par 3 Algorithme Divsible_par3
Variable n : entier
Début
Ecrire " Entrez un entier : "
Lire (n)
Si (n%3=0) alors
Ecrire (n," est divisible par 3")
Sinon
Ecrire (n," n'est pas divisible par 3")
Finsi
Fin
K.Kassabi 25/10/2023 39
Structures Conditionnelles

Les Conditions
Les conditions que l’on peut mettre dans une instruction if sont des conditions booléennes simples
ou composées , pour les conditions simples on trouve :
• x==y est vérifiée lorsque x est égal à y ;
• x<y est vérifiée lorsque x est strictement inférieur à y ;
• x>y est vérifiée lorsque x est strictement supérieur à y ;
• x<=y est vérifiée lorsque x est inférieur ou égal à y ;
• x>=y est vérifiée lorsque x est supérieur ou égal à y ;
• x !=y est vérifiée lorsque x est différent de y ;

Un nombre (entier, réel, etc.) pourra être considéré comme vrai ou faux avec la convention suivante :

• Une expression non nulle (différente de 0) est considéré comme vraie ;


• Une expression nulle (égale à 0) est considérée comme fausse.
K.Kassabi 25/10/2023 40
Structures Conditionnelles

Les Conditions Composées


Une condition composée est une condition formée de plusieurs conditions simples reliées par des
opérateurs logiques : ET, OU, OU exclusif (XOR) et NON

Exemples :
 x comprend entre 2 et 6 : (x > 2) ET (x < 6)
 n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)
 deux valeurs et deux seulement sont identiques parmi a, b et c : (a=b) XOR (a=c) XOR (b=c)

L'évaluation d'une condition composée se fait selon des règles présentées généralement dans ce
qu'on appelle tables de vérité

K.Kassabi 25/10/2023 41
Structures Conditionnelles

C1 C2 C1 ET C2 C1 NON C1
VRAI VRAI VRAI
VRAI FAUX
VRAI FAUX FAUX
FAUX VRAI
FAUX VRAI FAUX
FAUX FAUX FAUX

C1 C2 C1 XOR C2
C1 C2 C1 OU C2 VRAI VRAI FAUX
VRAI VRAI VRAI VRAI FAUX VRAI
VRAI FAUX VRAI FAUX VRAI VRAI
FAUX VRAI VRAI FAUX FAUX FAUX
FAUX FAUX FAUX
K.Kassabi 25/10/2023 42
Structures Conditionnelles

Le Selon…..Faire
Le switch (en C) permet de distinguer plusieurs cas selon les valeurs d’une variable. Le if permet de
distinguer deux cas, alors que le switch permet de distinguer un grand nombre de cas.

SELON (selecteur ) Faire


<condition 1> : <action 1>
<condition 2> : <action 2>
...
<condition n> : <action n>
SINON : <action_sinon>
FINSELON

K.Kassabi 25/10/2023 43
Structures Conditionnelles

Exemple :

Selon (Note) Faire :


Note ≥ 16 : ECRIRE (‘'TB‘’)
Note ≥ 14 : ECRIRE (‘'B‘’)
Note ≥ 12 : ECRIRE (‘'AB‘’)
Note ≥ 10 : ECRIRE (‘'Passable‘’)
SINON : ECRIRE (‘'ajourné'')
FINSELON

K.Kassabi 25/10/2023 44
Exercice
Soit une équation du second degré ax^2 + bx + c = 0. Écrire un algorithme qui lit a, b, c au clavier
et affiche les éventuelles solutions.

K.Kassabi 25/10/2023 45
Structures Itératives

Introduction :
Prenons le cas d’une saisie au clavier, par exemple, on pose une question à laquelle l’utilisateur doit
répondre par O (Oui) ou N (Non).
L’utilisateur risque de taper autre chose (une autre lettre), le programme peut soit planter par une erreur
d’exécution soit se dérouler normalement jusqu’au bout, mais en produisant des résultats fantaisistes.

Algorithme contrôle_de_saisie
Variable Rep : caractère
Début
Ecrire "Voulez vous une copie de ce cours ? (O/N)"
Lire (Rep)
Si Rep ≠ 'O' ET Rep ≠ 'N' Alors
Ecrire ("Erreur de saisie. Recommencez")
Lire (Rep)
FinSi
Fin
K.Kassabi 25/10/2023 46
Structures Itératives

Introduction :
Cet algorithme résout le problème si on se trompe qu’une seule fois, et on fait entrer une valeur correcte à la
deuxième demande. Sinon en cas de deuxième erreur, il faudrait rajouter un SI. Et ainsi de suite, on peut
rajouter des centaines de SI.

Algorithme contrôle_de_saisie
Variable Rep : caractère
Début
Ecrire "Voulez vous une copie de ce cours ? (O/N)"
Lire (Rep) La solution à ce problème consiste à
Si Rep ≠ 'O' ET Rep ≠ 'N' Alors utiliser une structure répétitive.
Ecrire ("Erreur de saisie. Recommencez")
Lire (Rep)
FinSi
Fin

K.Kassabi 25/10/2023 47
Structures Itératives

Définition :

Une structure répétitive, encore appelée boucle, est utilisée quand une
instruction ou une liste d’instructions, doit être répétée plusieurs fois.
La répétition est soumise à une condition.

Il existe plusieurs formes des structures répétitives.

K.Kassabi 25/10/2023 48
Structures Itératives

BOUCLE TantQue ... Faire


La boucle TantQue permet de répéter un traitement tant que la condition est vraie.

série d’instructions 1 // début du programme


TantQue (condition) faire
Instructions 2
FinTantQue
série d’instructions 3 // suite du programme

La série d’instructions 2 sera exécutée tant que la condition est valide.

K.Kassabi 25/10/2023 49
Structures Itératives

BOUCLE TantQue ... Faire

• L’exécution de la boucle dépend de la valeur de la condition.

• Si elle est vraie, le programme exécute les instructions qui suivent, jusqu’à ce qu’il rencontre la ligne
FinTantQue.

• Il retourne ensuite sur la ligne du TantQue, procède au même examen, et ainsi de suite.

• La boucle ne s’arrête que lorsque la condition prend la valeur fausse, et dans ce cas le programme
poursuit son exécution après FinTantQue .

K.Kassabi 25/10/2023 50
Structures Itératives

BOUCLE TantQue ... Faire


Exemple : Contrôle de saisie

Algorithme contrôle_de_saisie
Variable Rep : caractère
Début
Ecrire ("Voulez vous une copie de ce cours ? (O/N)" )
Lire (Rep)
TantQue Rep ≠ 'O' ET Rep ≠ 'N' faire
Ecrire (" Erreur de saisie")
Ecrire ("Voulez vous une copie de ce cours ? (O/N)" )
Lire (Rep)
FinTantQue
Fin
K.Kassabi 25/10/2023 51
Structures Itératives

BOUCLE TantQue ... Faire

Remarques:

 Etant donnée que la condition est évaluée avant la mise en œuvre des instructions, ce qui est
une sécurité, il est possible que celles-ci ne soient jamais exécutées.

 Si une structure TantQue dans laquelle la condition ne devient jamais fausse. Le programme
tourne dans une boucle infinie et n’en sort plus.

K.Kassabi 25/10/2023 52
Structures Itératives

BOUCLE TantQue ... Faire


Exemple : Boucle infinie

I1
Tant que I < = 10 Faire
Ecrire(" bonjour")
FinTantQue

Dans cet exemple nous avons une boucle infinie, l’ordinateur ne s'arrêtera jamais d’afficher
le message Bonjour car la variable I qui est testée dans la condition n'est jamais incrémentée.

K.Kassabi 25/10/2023 53
Structures Itératives

BOUCLE TantQue ... Faire


Exercice : Ecrire un algorithme qui calcule S = 1 + 2 + 3 + 4 + 5 + ... + N
Algorithme Somme
Variables S, I, N : Entier
Début
Ecrire ("Entrer la valeur de N : ")
Lire (N)
S0
I1
TantQue I <= N faire
SS+I
I  I +1
FinTantQue
Ecrire(''La somme des '', N, '' premiers entiers est : '', S)
Fin
K.Kassabi 25/10/2023 54
Structures Itératives

BOUCLE Pour ... Faire


La boucle Pour … Faire permet de répéter une liste d’instructions un nombre connu de fois.

série d’instructions 1 // début du programme


Pour compteur  valeur_initiale jusqu’à valeur_finale Faire
Instruction(s)
FinPour
série d’instructions 3 // suite du programme

K.Kassabi 25/10/2023 55
Structures Itératives

BOUCLE Pour ... Faire

 La variable compteur est de type entier. Elle est initialisée à la valeur initiale. Le compteur augmente
sa valeur de un (1) automatiquement à chaque tour de boucle jusqu’à la valeur finale.

 Pour chaque valeur prise par la variable compteur, la liste des instructions est exécutée.

 Lorsque la variable compteur vaut la valeur finale, le traitement est exécuté une dernière fois puis le
programme sort de la boucle.

K.Kassabi 25/10/2023 56
Structures Itératives

BOUCLE Pour ... Faire


Exemple : Table de multiplication

Pour k ← 0 jusqu’à 10 faire


Ecrire( " 7 * ", k, " = ", 7*k)
Ecrire("\")
FinPour

7*0=0 7 * 4 = 28 7 * 8 = 56
7*1=7 7 * 5 = 35 7 * 9 = 63
7 * 2 = 14 7 * 6 = 42 7 * 10 = 70
7 * 3 = 21 7 * 7 = 49

K.Kassabi 25/10/2023 57
Structures Itératives

BOUCLE Pour ... Faire


Exercice : Ecrire un algorithme permettant de calculer la somme de N nombres entiers.

Algorithme Somme
Variables S, I : Entiers
Début
Ecrire ("Entrer la valeur de N : ")
Lire (N)
S0
Pour I  1 jusqu’à N Faire
SS+I
FinPour
Ecrire(''La somme des '', N, '' premiers entiers est : '', S)
Fin

K.Kassabi 25/10/2023 58
Factoriel 1
Algorithme Factoriell
Variables Fact,I,N: Entiers
Debut
Repeter
Ecrire(“Entrer la Valeur de N:”)
Lire(N)
Jusqu’a(N>0)
Fact  1
Pour i1 jusqu’a N Faire
Fact  Fact * I
FinPour
Ecrire(“Le factoriel du nombre saisi est:”,Fact)
Fin

K.Kassabi 25/10/2023 59
Factoriel 2

Algorithme Factoriel
Variables Fact,I,N: Entiers

Debut
Ecrire(“Donner N:”)
Lire(N)
Fact1
I1
TantQue(I<=N) Faire
FactFact*I
I  I+1
FinTantQue
Fin

K.Kassabi 25/10/2023 60
Structures Itératives

BOUCLE Pour ... Faire

Remarques:

 Par défaut la variable compteur est incrémentée de 1 à chaque tour de boucle.

 Pour modifier la valeur d’incrémentation, il suffit de rajouter le mot Pas (en anglais step) et
la valeur de ce pas à la boucle Pour.

K.Kassabi 25/10/2023 61
Structures Itératives

BOUCLE Pour ... Faire


La syntaxe générale de la structure Pour est :

Pour compteur  VI jusqu’à VF Pas ValeurPas Faire


Instruction(s)
FinPour

VI c’est la valeur initiale


VF c’est la valeur finale.

K.Kassabi 25/10/2023 62
Structures Itératives

BOUCLE Pour ... Faire


Exercice : Ecrire un algorithme qui permet de saisir un nombre entier et qui calcule la somme des entiers
pairs jusqu’à ce nombre.
Par exemple, si l’on saisi 10, le programme doit calculer : 0 + 2 + 4 + 6 + 8 + 10 = 30

K.Kassabi 25/10/2023 63
Structures Itératives

BOUCLE Répéter … Jusqu'à


Cette boucle sert à répéter une instruction jusqu'à ce qu'une condition soit vraie.

Remarques :
Cette boucle ne s’utilise en général que pour des menus, elle est dangereuse car il n’y a pas de vérification
de la condition avant d’y entrer !

Syntaxe :
série d’instructions 1 // début du programme
Répéter
Instruction(s)
Jusqu’à (Condition)
série d’instructions 3 // suite du programme
K.Kassabi 25/10/2023 64
Structures Itératives

BOUCLE Répéter … Jusqu'à

 La liste d’instructions est exécutée, puis la condition est évaluée.

 Si elle est fausse, le corps de la boucle est exécuté à nouveau puis la condition est réévaluée et si
elle a la valeur vrai, le programme sort de la boucle et exécute l'instruction qui suit Jusqu'à.

K.Kassabi 25/10/2023 65
Structures Itératives

BOUCLE Répéter … Jusqu'à


Exemple :
Algorithme Somme
Variables S, I, N : Entier
Début
Ecrire ("Entrer une valeur strictement positif : ")
Lire (N)
S0
I1
Répéter
SS+I
I  I +1
Jusqu’à I >= N
Ecrire(''La somme des '',N,'' premiers entiers est : '', S)
Fin
K.Kassabi 25/10/2023 66
Structures Itératives

BOUCLE Répéter … Jusqu'à


Remarques :
 Les boucles « Répéter » et « TantQue » sont utilisées lorsqu’on ne sait pas au départ combien de
fois il faudra exécuter ces boucles.

 A la différence de la boucle « TantQue », la boucle « Répéter » est


exécutée au moins une fois.

 La condition d’arrêt de la boucle « Répéter » est la négation de la condition de poursuite de la


boucle « TantQue ».

 On utilise la boucle « Pour » quand l’on connaît le nombre d’itérations à l’avance.

K.Kassabi 25/10/2023 67
Exercices :
 Écrire une fonction qui calcule la factorielle n! d’un entier n passé en paramètre.
(Rappel : n! = 1 × 2 × · · · × n)
 Écrire un programme qui calcule la somme des 1/i pour i = 1 à n pour une valeur de n rentrée au
clavier. Faire cette somme en partant de 1 à n et la recalculer en partant de n à 1. Comparer ces
deux sommes.
 Écrire une procédure qui affiche à l’aide du signe + les figures suivantes :
1- Triangle de hauteur n (ex. n = 3) :
+
++
+++
2- Triangle de hauteur n (ex. n = 3) :
+
+++
+++++

N.B : Pour ces exercices, on considère que l’on connait la procédure retourLigne ( ).

K.Kassabi 25/10/2023 68
MERCI !

K.Kassabi 25/10/2023 69

Vous aimerez peut-être aussi