Vous êtes sur la page 1sur 98

Algorithmique I

Responsable : Pr. Ayoub Ellahyani


Email: ayoub.ellahyani@yahoo.com
Plan de Cours
1. Notion d’algorithme
2. Les variables
3. Instructions élémentaires
4. Structures de contrôle
5. Tableaux
Chapitre I

Notion d’algorithme
Notion d’algorithme
Définition d’un algorithme

• Un algorithme est une suite finie d’opérations ou d'instructions permettant de résoudre un


problème ou d'obtenir un résultat.
• Un peu d'histoire :Le mot algorithme vient du nom du mathématicien Al Khwarizmi (820).
• Une recette de cuisine, par exemple, est un algorithme : une suite d'opérations simples permettant
de passer des ingrédients à un plat préparé.
1. remplir une casserole d'eau ;
2. y ajouter une pincée de sel ;
3. la mettre sur le feu ;
4. attendre l'ébullition de l'eau ;
5. mettre le riz dans la casserole ;
6. le laisser cuire 10 à 15 minutes ;
7. égoutter le riz.

4
Notion d’algorithme
Représentation d’un algorithme

2 types de notations ont représenté des algorithmes:


• L’organigramme représente graphiquement l’algorithme(avec des carrés, des losanges, etc).
C’est visuel (un dessin vaut mille mots!), mais ça exige plus de travail de mise en page et plus
d’espace sur papier.
• Le pseudo-code représente textuellement l’algorithme. Moins visuel, mais plus facile à mettre
sur papier et requiert moins d’espace.

Remarque: Le pseudo-code est généralement préféré à l’organigramme. Il est plus rapide à écrire et plus facile
à traduire en un langage de programmation

5
Notion d’algorithme
Algorithmes et langages de programmation

Pourquoi apprendre l’algorithmique pour apprendre à programmer ?


• Parce que l’algorithmique exprime les instructions résolvant un problème donné indépendamment
des particularités de tel ou tel langage.
• Apprendre l’algorithmique, c’est apprendre à manier la structure logique d’un programme
informatique.
• L’algorithmique utilise un ensemble de mots clés et de structures permettant de décrire de
manière complète, claire, l’ensemble des opérations à exécuter sur des données pour obtenir des
résultats.

6
Notion d’algorithme
Algorithmes et langages de programmation

• En informatique, un langage de programmation est une notation conventionnelle destinée à


formuler des algorithmes et produire des programmes informatiques qui les appliquent.

• D'une manière similaire à une langue naturelle, un langage de programmation est composé
d'un alphabet, d'un vocabulaire, de règles de grammaire et de significations.

• Un paradigme est une façon d'approcher la programmation. Chaque paradigme amène sa


philosophie de la programmation; une fois qu'une solution a été imaginée par un programmeur
selon un certain paradigme, un langage de programmation qui suit ce paradigme permettra de
l'exprimer. Par exemple : langage Impératif, déclaratif, orienté objet, événementiel, basé web …

7
Notion d’algorithme
Algorithmes et langages de programmation

• Un compilateur
Un programme qui traduit le texte dans un langage qui permettra son exécution, tel le langage machine, le
bytecode ou le langage assembleur.

• Un interpréteur
Un programme qui exécute les instructions demandées. Il joue le même rôle qu'une machine qui reconnaîtrait
ce langage.

• Langage machine
Les instructions permettent d'effectuer des calculs arithmétiques ou logiques, déplacer ou copier des données,
ou bifurquer vers l'exécution d'autres instructions. Ces instructions sont enregistrées sous forme de séquences
de bits, où chaque séquence correspond au code de l'opération à effectuer et aux opérandes, c'est-à-dire aux
données concernées ; c'est le langage machine.
Notion d’algorithme
Algorithmes et langages de programmation

• Le paradigme impératif ou procédural est basé sur le principe de l'exécution étape par étape des instructions.
Le C, le Pascal, le Fortran et le COBOL sont des exemples de langage de programmation qui implémentent le
paradigme impératif.
• Le paradigme orienté objet est destiné à faciliter le découpage d'un grand programme en plusieurs modules
isolés les uns des autres. Il introduit les notions d'objet et de classe. Divers langages de programmation ont
été enrichis en vue de permettre la programmation orientée objet ; c'est le cas de C++ (dérivé du langage C),
Simula, Smalltalk, Swift et Java sont des langages de programmation en paradigme orienté objet.

• Dans le paradigme basé web le programme est rarement traduit en langage machine, mais plutôt interprété
ou traduit en une forme intermédiaire, le bytecode, qui sera exécuté par une machine virtuelle, ou traduit en
langage machine au moment de l'exécution (just-in-time). Java, PHP et Javascript sont des langages de
programmation basée web.

9
Notion d’algorithme
Structure d’un algorithme

Étapes de conception d'un programme informatique


1. Identifier le problème : quelle(s) donnée(s), quel(s) résultat(s) ?
2. Organiser les actions : écrire l'algorithme (pseudo-code, organigramme)
a) réfléchir aux informations à manipuler
b) analyser le problème et le décomposer éventuellement en sous-problèmes
c) rendre l'algorithme compréhensible et efficace
d) penser à l'utilisateur
3. Traduire cet algorithme en langage de programmation
4. Compiler le programme pour qu'il puisse être exécutable
Notion d’algorithme
Structure d’un algorithme

Étapes pour écrire un algorithme :


• Analyser et comprendre le problème : étudier les données fournies et les résultats attendus.
• Résoudre le problème : trouver les structures de données adaptées ainsi que l’enchaînement
des actions à réaliser pour passer des données aux résultats.

Caractéristiques d’un algorithme:


• Il contient plusieurs instructions à exécuter (Ensemble d’actions élémentaires)
• Les instructions (étapes) se succèdent dans un certain ordre
• Il peut éventuellement exister une répétition ou une condition d’exécution
• Il est caractérisé par un début et une fin

11
Notion d’algorithme
Structure d’un algorithme

• Pseudo-code • Organigramme
Chapitre II

Les variables
Les variables

Un algorithme (ou un programme informatique), agit sur des nombres, des textes, … Ces différents
éléments sont stockés dans des variables. On peut se représenter une variable comme une boîte
portant une étiquette (« le nom de la variable ») à l’intérieur de laquelle on peut placer un contenu.

En informatique, les variables sont des emplacements réservés dans la mémoire de l’ordinateur
auxquels on attribue une étiquette.
Les variables
Une variable est un objet contenant une valeur qui peut être modifiée au cours de
l'algorithme.

Une variable est caractérisée par :


• Un identificateur (son nom) : pour le désigner cet identificateur doit être parlant : q=quotient;
Moy=Moyenne; ADR=Adresse...
• Un type (nature de l'objet : entier, caractère...) simple ou structuré. Un type détermine en particulier les
valeurs possibles de l'objet et les opérations primitives applicables à l'objet.
Exemples: Entier, Réel, caractères, chaine de caractères…;
• Une valeur (contenu de l'objet/variable) unique. Cette valeur peut varier au cours de l'algorithme ou d'une
exécution à l'autre.

15
Les variables

• La première chose à faire avant de pouvoir utiliser une variable est de créer la
boîte et de lui coller une étiquette. Ceci se fait tout au début de l’algorithme, avant
même les instructions proprement dites. C’est ce qu’on appelle la déclaration des
variables.
• Lorsqu’on déclare une variable, il ne suffit pas de créer une boîte (réserver un
emplacement mémoire) ; encore doit-on préciser ce que l’on voudra mettre
dedans, car de cela dépendent la taille de la boîte (de l’emplacement mémoire) et
le type de codage utilisé.
• Une constante est une variable dont la valeur est définie au début du programme
et reste inchangée durant toute son exécution.

16
Les variables
Identificateurs
Le choix de l’identificateur d’une variable suit 3 règles:
• Le nom d’une variable doit être constitué uniquement de lettres alphabétiques,
de chiffres et du soulignement « _ » (pas de caractères spéciaux)
• Il doit commencer par une lettre alphabétique.
• Le nom d’une variable doit être différent des mots réservés au langage de
description algorithmique

17
Les variables
Identificateurs
Exercice:

Lesquels des identificateurs suivants sont acceptés ?

• fonction-1 • _MOYENNE_du_MOIS_ • 3e_jour • Entier


• limite_inf. • lim_supérieure • __A_ • Fin
• _ • a
• 3 • Fin_A
Les variables
Identificateurs
Exemples:
• Identificateur : c • Identificateur : a
• Type : entier • Type : réel
• Valeur : 10 • Valeur : 11,2

19
Les variables
Types des variables

• Type caractère
• lettres, chiffres, ponctuation, code des opérations, espace,…
• Exemples : ‘a’ ‘+’ ‘.’

Exemple de représentants des caractères


• ’a’ -- le caractère a
• ’\’’ -- le caractère ’
• ’\\’ -- le caractère \
• ’\n’ -- retour à la ligne
• ’\t’ -- Caractère tabulation
20
Les variables
Types des variables

• Type chaîne de caractères


• suites de caractères
• Exemples : "bonjour" « IGE_S2"

Attention : Il ne faut pas confondre le nom d’une variable et une constante chaîne de
caractères !

21
Les variables
Types des variables
• Type entier
• les nombres entiers
• Exemples : 2 -165 1333252

• Type réel
• les nombres réels
• Exemples : 5,44 -2,16 25,0

22
Les variables
Types des variables

• Type booléen
• que deux valeurs possibles
• soit VRAI, soit FAUX

• Table de vérité :

23
Les variables
Sous-types de variables numériques

Si l’on réserve un octet pour coder un nombre, on ne pourra coder que 28 = 256 valeurs différentes. Cela peut
signifier par exemple les nombres entiers de 1 à 256, ou de 0 à 255, ou de –127 à +128… Si l’on réserve deux
octets, on a droit à 65 536 valeurs ; avec trois octets, 16 777 216, etc. Et là se pose un autre problème : ce
codage doit-il représenter des nombres décimaux ? des nombres négatifs ?

Tous les langages, quels qu’ils soient offrent un « bouquet » de types numériques, dont le détail est
susceptible de varier légèrement d’un langage à l’autre.
Type (exemple en C) Minimum Maximum Taille
Caractère (char) -127 127 1 octets
Entier simple(Int) -32 767 32 767 2 ou 4 octets (en fonction du
compilateur)
Entier long (long) -2 147 483 647 2 147 483 647 4 octets
Réel simple (float) -1 x1037 1 x1037 4 octets
Réel double (double) -1 x1037 1 x1037 8 octets
Les variables
Priorité des opérateurs

• Ci-dessus l'ordre de priorité des opérateurs arithmétiques : (du plus prioritaire au moins
prioritaire)
• () la priorité la plus forte
• +, -, Non (unaires) Exemple:
• 12 - 8 * 2 vaut -4
• *, /, Div, Mod, Et
• (12 - 8) * 2 vaut 8
• +, -, Ou
• <, >, <=, >=, = et <> priorité la plus faible

Remarque: à priorité égale, l’évaluation de l’expression se fait de gauche à droite.

25
Les variables
Priorité des opérateurs

• Lorsqu'une instruction contient plusieurs opérateurs logiques, NON est traité en


premier, ensuite ET et enfin OU.
• Les opérateurs de comparaison ont tous la même priorité : ils sont évalués de
gauche à droite dans l'ordre de leur apparition
• Quand des expressions contiennent des opérateurs de plusieurs catégories, les
opérateurs arithmétiques sont évalués d'abord, puis les opérateurs de
comparaison et enfin les opérateurs logiques.

26
Les variables
Types des variables
Exercice:

Analyser les expressions suivantes :

• 2+3
• 11 % 4
• 8 + 2.2
• 5+6*2
• 10 > 2
• Non (2 et 15)
• (vrai ou faux) et vrai
Les variables
Exemple

28
Chapitre III

Instructions élémentaires
Instructions élémentaires
Définition d’une instruction

Une instruction est une action élémentaire commandant à la machine un calcul, ou une
communication avec l'un de ses périphériques d'entrées ou de sorties. Les instructions de base
sont :

• L’instruction d’affectation : permet de donner une valeur à une variable (mettre cette valeur dans
la case mémoire)
• L'instruction d'entrée : permet à l’ordinateur de récupérer ce que l’utilisateur saisit au clavier
• L'instruction de sortie : permet à l’ordinateur d’afficher sur l'écran ce qu’on veut (le résultat d’un
calcul, le contenu d’une variable, un message…

30
Instructions élémentaires
Instruction d'affectation

L'affectation permet d'affecter une valeur à une variable. Elle est symbolisée en algorithmique par "←".
Le signe "←" précise le sens de l'affectation.

Syntaxe :
Variable ← Expression

Expression peut être soit :


• identificateur;
• constante;
• expression arithmétique;
• expression logique.
Instructions élémentaires
Instruction d'affectation

Exemples :
interet ← (somme * TAUX) / 100
somme ← somme + interet

Sémantique :
Une affectation peut être définie en deux étapes :
• évaluation de l'expression qui se trouve dans la partie droite de l'affectation;
• placement de cette valeur dans la variable.
Instructions élémentaires
Instruction d'affectation
Exemple 1 :
N° de ligne
Variable
1 2 3 4 5 6
A ? ? 10 10 10 10
B ? ? ? 30 30 30
C ? ? ? ? 40 40
D ? ? ? ? ? 400

Note : Les lignes sont numérotées pour faciliter l'explication.


Remarque :Les variables numériques ne sont pas forcément initialisées à zéro. Leur valeur peut être
n'importe quoi, C'est la raison de la présence du point d'interrogation avant qu'une première valeur ne
soit affectée à la variable
Instructions élémentaires
Instruction d'affectation
Exemple 2 :

N° de ligne
Variable
1 2 3 4 5
A ? ? Vrai Vrai Vrai
B ? ? ? Faux Faux
C ? ? ? ? Faux
Instructions élémentaires
Instruction d'affectation

Mécanisme :
1. Evaluation de l’expression qui se trouve à droite de la flèche
2. Rangement de ce résultat dans la variable dont l’identificateur est à gauche de la flèche

Important : le type du résultat de l’expression doit être compatible avec le type de la variable.
Exemple (application en C)
unEntier : entier unReel : réel unCar : caractère

unEntier ← 5 // 5 unReel ← 5 // 5,0000 unCar ← 5 //


unEntier ← 5,2 // 5 unReel ← 5,2 // 5,2000 unCar ← 5,2 //
unEntier ← ‘a’ // 97 unReel ← ‘a’ // 97,000 unCar ← ‘a’ // a
unEntier ← ‘5’ // 53 unReel ← ‘5’ // 53,000 unCar ← ‘5’ // 5
Instructions élémentaires
Instruction d'affectation
Exercice 1 :
Quelles seront les valeurs des variables après exécution de l’algorithme suivant ?
Instructions élémentaires
Instruction d'affectation
Exercice 2 :
Quelles seront les valeurs des variables après exécution de l’algorithme suivant ?
Instructions élémentaires
Instruction d'affectation
Exercice 3 :
Quelles seront les valeurs des variables après exécution de l’algorithme suivant ?
Instructions élémentaires
Instruction d'entrée

L'instruction d'entrée ou de lecture donne la main à l'utilisateur pour saisir une donnée au clavier. La valeur
saisie sera affectée à une variable.

• Permet à un utilisateur de communiquer des données à l’algorithme (quand on demande à l’utilisateur


de saisir une valeur)
• Stocke la valeur entrée dans l’espace mémoire réservé à la variable mentionnée
• Tant que l'utilisateur n'entre rien au clavier, le déroulement de l’algorithme est bloqué
Instructions élémentaires
Instruction d'entrée

Syntaxe :
Lire (identificateur) // Saisir (identificateur)
Exemples :
Lire (A)
Lire (A, B, C)
L'instruction Lire (A) permet à l'utilisateur de saisir une valeur au clavier. Cette valeur sera affectée à la variable
A.
Remarque :
Lorsque le programme rencontre cette instruction, l'exécution s'interrompt et attend que l'utilisateur tape une
valeur. Cette valeur est rangée en mémoire dans la variable désignée.
Instructions élémentaires
Instruction de sortie

L'instruction de sortie ou d'affichage (d’écriture) permet de fournir des résultats à l'utilisateur à travers un
périphérique de sortie (l'écran, imprimante …)

• Avant de lire une variable, il est conseillé d'écrire des libellés à l'écran, afin de prévenir l'utilisateur de ce qu'il
doit frapper (sinon, l'utilisateur passe son temps à se demander ce que l'ordinateur attend de lui).
Instructions élémentaires
Instruction de sortie

Syntaxe :
Ecrire (expression) // Afficher (expression)
Expression peut être une valeur, une résultat, un message, le contenu d'une variable, etc.

Exemples:
Ecrire (A)
• Cette instruction permet d'afficher à l'écran la valeur de la variable A.

Ecrire (A+B)
• Cette instruction permet d'afficher à l'écran la valeur de A+B.

A←2
Ecrire ("La valeur de A est =",A)
• La dernière instruction affiche à l'écran :
• La valeur de A est = 2
Instructions élémentaires
Instruction de sortie
Exercice 1 :
Quel résultat produit le programme suivant ?
Instructions élémentaires
Instruction de sortie
Exercice 2 :
Ecrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carré de ce
nombre.
Instructions élémentaires
Instruction de sortie
Exercice 3 :
Ecrire un programme qui demande son prénom à l'utilisateur, et qui lui réponde par un charmant
« Bonjour » suivi du prénom. On aura ainsi le dialogue suivant :

machine : Quel est votre prénom ?


utilisateur : John Marie
machine : Bonjour, John Marie ! .
Instructions élémentaires
Instruction de sortie
Exercice 4 :
Écrire un algorithme qui permet de saisir le prix HT (PHT) d'un article et de calculer son prix total TTC
(PTTC), TVA = 20%.
Instructions élémentaires
Instruction de sortie
Exercice 4 :
Chapitre IV

Structures de contrôle
Structures de contrôle
Les structures de contrôle décrivent l’enchaînement des instructions. Elles permettent des
traitements séquentiels, conditionnels ou répétitifs (itératifs).

Bloc et séquence
Dans les langages impératifs, les instructions d’un même bloc sont exécutées séquentiellement, c’est-à-dire,
les unes après les autres, donc dans l’ordre où elles sont écrites.

49
Structures de contrôle
Les structures conditionnelles (alternatives)

La conditionnelle permet d’exécuter une séquence d’instruction, seulement si une condition est vraie.

Il n’y a que deux formes possibles pour un test :


• La structure Si ... Alors... FinSi
• La structure Si ... Alors ... Sinon ... FinSi
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... FinSi

Syntaxe :
Si (condition) Alors
Instruction(s) 1
FinSi

La condition est nécessairement une expression booléenne.


Évaluation :
• La condition est évaluée;
• Si la condition est vraie, la séquence est exécutée puis le contrôle passe à la suite;
• Si la condition est fausse, le contrôle passe à la suite, sans exécuter la séquence.
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... FinSi

En organigramme
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi
Syntaxe :
Si (condition) Alors
Instruction(s) 1
Sinon
Instruction(s) 2
FinSi

• Une condition est une expression logique ou une variable logique évaluée à Vrai ou Faux.
• La Condition est évaluée. Si elle est vraie, la série d'instructions1 est exécutée et l'ensemble d'instructions2
est ignoré, la machine sautera directement à la première instruction située après le FinSi.
• De même, au cas où la condition était fausse (avait comme valeur Faux), la machine saute directement à la
première ligne situé après le Sinon et exécute l'ensemble d'instructions2.
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

En organigramme
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Remarques :
• Une condition peut être une expression booléenne simple ou une suite composée d’expressions booléennes,
combinée à l’aide des opérateurs logiques.
• Les valeurs peuvent être a priori de n’importe quel type (numériques, caractères…). Mais si on veut que la
comparaison ait un sens, il faut que les deux valeurs comparées soient du même type !

• si la condition est vraie alors seules les instructions de la première séquence sont exécutées
• si la condition est fausse seules les instructions de la deuxième séquence sont exécutées
• Le mot sinon indique où se termine la première séquence d'instructions et où commence la seconde.
• Le mot finsi indique où se termine la seconde séquence d'instructions.
• Quoi qu’il arrive, les instructions qui suivent finsi seront exécutées.
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Remarques :
• Certains problèmes exigent de formuler des conditions qui ne peuvent pas être exprimées sous la forme
simple exposée ci-dessus.
Par exemple : la condition "x est inclus dans l'intervalle ]10, 20[" est composée de deux conditions simples
qui sont "x est supérieur à 10" et "x est inférieur à 20" reliées par l'opérateur logique ET.
• Les deux blocs 1 et 2 d'instruction sont équivalents:
Bloc 1 Bloc 2
Si Condition Alors Si Non (Condition) Alors
Instruction(1) Le bloc 1 est équivalent Instruction(2)
Sinon au bloc 2 Sinon
Instruction(2) Instruction(1)
FinSi FinSi
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Exercice 1:
Supposant
a 1
b 2
c 3
Quel est le résultat booléen de chaque teste :
• (b > 0) ou (c > 1) ?
• (b > 9) ou (c > 1) ?
• (b > a) et (c > b) ?
• (b > a) et (c < 0) ?
• non (c < a) ?
• non ((b > a) et (c > b)) ?
• ((b > a) et (c > b)) ou (a < 0) ?
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Exercice 2:
Écrire un algorithme qui affiche si un nombre entier saisi au clavier est pair ou impair.
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Exercice 3:
Écrire un algorithme qui teste si une note saisie au clavier est comprise entre 0 et 20.
Structures de contrôle
Les structures conditionnelles (alternatives)
La structure Si ... Alors... Sinon… FinSi

Exercice 4:
Écrire un algorithme qui demande deux nombres m et n à l'utilisateur et l'informe ensuite si le produit est
négatif ou positif (sans calculer le produit). On inclut dans l'algorithme le cas où le produit peut être nul.
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si
Naturellement, il est possible d’imbriquer les structures de contrôle conditionnelles les unes à l’intérieur des
autres.
Syntaxe :
Si condition1 Alors
Instructions 1
SinonSi condition2 Alors
Instructions 2
SinonSi condition2 Alors
Instructions 3
...
Sinon
Instructions n
FinSi
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si

En organigramme
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si

Exercice:
Ecrire un algorithme qui permet d'afficher le maximum parmi 3 nombres saisis au clavier
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si

Remarque :
Une structure conditionnelle peut contenir à son tour une autre structure conditionnelle, c'est-à-dire l'une
inclure dans l'autre. Dans ce cas, les instructions à exécuter après Alors et/ou Sinon sont, à leur tour, des
instructions Si...Alors...Sinon.
Exemple :
Ecrire un algorithme permettant de calculer le montant de calculer le montant des allocations familiales sachant que le
montant dépend du nombre d'enfant :
• Si nombre d'enfants est inférieur ou égale à trois alors les allocations sont de 150 dh par enfant.
• Si le nombre d'enfants est strictement supérieur à trois et inférieurs ou égale à six alors les allocations sont de :
• 150 dh par enfant pour les trois premiers enfants
• 38 dh par enfant pour les suivants
• Si le nombre d'enfants est strictement supérieur à six alors les allocations sont de :
• 150 dh par enfant pour les trois premiers enfants
• 38 dh par enfant pour les 3 suivants
• 0 dh par enfant pour les suivants
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si
Structures de contrôle
Les structures conditionnelles (alternatives)
Imbrication de Si

Exercice:
• Ecrire un algorithme qui permet de résoudre l’équation ax+b =0
• Ecrire un algorithme qui permet de résoudre l’équation ax2+bx +c =0.
Structures de contrôle
Les structures conditionnelles (alternatives)
Structure de choix multiples

Cette structure conditionnelle permet de choisir le traitement à effectuer en fonction de la valeur ou de


l'intervalle de valeurs d'une variable ou d'une expression.
Syntaxe :
Selon sélecteur faire
Valeur 1 : action(s)1
Valeur 2 : action(s)2
Valeur 3 : action(s)3
...
Valeur n : action(s)n
Sinon : action(s) par défaut
FinSelon
Structures de contrôle
Les structures conditionnelles (alternatives)
Structure de choix multiples

Remarques :
• Sélecteur peut être une variable ou une expression arithmétique ou logique
• Action i est exécutée si le résultat du sélecteur vaut la valeur i
• Une fois l’action i est exécutée on quitte la structure Selon … faire (on n’évalue plus le reste des cas)
• Action du Sinon est exécutée si au long des cas proposés dans la structure selon …faire on a pas trouvé la
valeur correspondante au sélecteur
• L'instruction Sinon est facultative.
Structures de contrôle
Les structures conditionnelles (alternatives)
Structure de choix multiples
Exemple
Écrire un algorithme permettant d'afficher le mois en toute lettres selon son numéro saisi au clavier.
Structures de contrôle
Les structures répétitives

Idée : répéter un ensemble d'opérations, arrêter la répétition en fonction d'une condition.

Les répétitions permettent d’exécuter plusieurs fois une même séquence d’instructions. Il est important de
vérifier qu’une répétition se termine effectivement (notion de variant).

Exemple :
Demander à l’utilisateur de saisir les notes de 100 étudiants
Structures de contrôle
Les structures répétitives
La boucle TantQue
La répétition TantQue permet d’exécuter une séquence d’instructions tant qu’une condition est vraie.

Évaluation :
• La condition est évaluée.
• Si la condition est vraie, on exécute la séquence et on recommence en 1.
• Si la condition est fausse, on exécute la suite (on sort donc de la boucle).
Structures de contrôle
Les structures répétitives
La boucle TantQue
En Organigramme
Syntaxe :
TANTQUE <condition> FAIRE
<actions>
FINTANTQUE

Ces actions peuvent être simples ou composées ! !


Structures de contrôle
Les structures répétitives
La boucle TantQue

Exemple 1: Exemple 2:
i←1 i←1
Tantque ( i≤9) faire Somme ← 0
Ecrire (i) Tantque ( i≤9) faire
i ← i+1 Somme ← Somme + i
Fintantque i ← i+1
Fintantque
Structures de contrôle
Les structures répétitives
La boucle TantQue

Remarque :
• Le contenu de la structure TANTQUE peut ne jamais être exécuté. Donc cette structure permet en réalité de
répéter un traitement 0, 1 ou plusieurs fois.
• La condition étant évaluée au début, les variables utilisées dans la condition doivent avoir été initialisées.
• On doit s'assurer de la terminaison (sinon le programme ne se termine jamais)
• Pour cela, il faut nécessairement que dans le corps de la structure, la condition soit modifiée quelque part.
Structures de contrôle
Les structures répétitives
La boucle Répéter
En Organigramme
Syntaxe : Syntaxe :
Répéter Répéter
<Actions > <Actions >
JUSQU'A <condition> Tantque <condition>

Fonctionnement :
• on exécute le corps
• on évalue la condition , puis
o si la condition est vraie : on quitte le REPETER
o si la condition est fausse on recommence
Structures de contrôle
Les structures répétitives
La boucle Répéter

Exemple 1: Exemple 2:
i←1 i←1
Répéter Somme ← 0
Ecrire (i) Répéter
i ← i+1 Somme ← Somme + i
Jusqu'à ( i>9) i ← i+1
Tantque ( i≤9)
Structures de contrôle
Les structures répétitives
La boucle Répéter

Remarque :
• Il y a toujours au moins une exécution du corps. La structure Répéter permet de répéter un traitement 1 ou
plusieurs fois.
• Pour choisir entre Répéter et tant que il faut se poser la question : faut-il éventuellement ne jamais faire le
traitement ? Si oui : il faut utiliser tant que, sinon utiliser la structure Répéter qui exécute au moins une fois
l'action.

NB: Attention, en C par exemple :


• La structure est do...while : c'est à dire Faire...TANTQUE .
Structures de contrôle
Les structures répétitives
La boucle Répéter

Exercice :
Ecrire un algorithme qui demande à l’utilisateur de saisir une note (l’algorithme doit pas accepter une note
supérieure à 20 ou inferieur à 0 ).
Structures de contrôle
Les structures répétitives
La boucle Pour

Il est fréquent que le nombre de répétitions soit connu à l'avance, et que l'on ait besoin d'utiliser le numéro de
l'itération afin d'effectuer des calculs ou des tests. Le mécanisme permettant cela est la boucle POUR.

Cette boucle permet de parcourir un intervalle en répétant un traitement pour chacune des valeurs de cet
intervalle
Structures de contrôle
Les structures répétitives
La boucle Pour

Syntaxe :
Pour <id_variable> de <val_inférieure> à <val_supérieure> [ par pas de <val_pas>] faire
<actions>
Finpour

Fonctionnement :
1. Automatiquement, on a id_variable ≤ val_inférieure
Donc, on n'a pas besoin d'initialiser, la structure se charge de la faire
2. id_variable > val_supérieure ? :
Si oui alors STOP, on quitte la structure
Sinon :
• automatiquement, l'incrémentation se fait (+1 ou + pas si l'on a définit un pas particulier, par
défaut, le Pas est 1)
• on remonte au début du 2 pour tester la condition id_variable > val_supérieure ?
Structures de contrôle
Les structures répétitives
La boucle Pour

Remarques :
• Il est possible que l'action ne soit jamais exécutée.
• Il est possible aussi d'avoir un intervalle inversé à condition d'avoir un pas négatif.

Utilisation du POUR :
On s'en sert dès que l'on connaît au début de la boucle le nombre de répétitions à effectuer.
Dans les cas contraire, on utilisera des Tant que ou des Répéter
Structures de contrôle
Les structures répétitives

Exercice 1 :
Ecrire un algorithme qui permet d’afficher les nombres compris entre deux valeurs à saisir.
Par exemple si l’utilisateur a saisi 4 et 9, le programme affiche 5 6 7 8
Structures de contrôle
Les structures répétitives

Exercice 2 :
Ecrire un algorithme qui permet de vérifier le mot de passe saisi au clavier. L’utilisateur a droit à 3 chances pour
que la machine lui affiche le succès de l’authentification sinon un message de compte bloqué sera affiché.
Structures de contrôle
Les structures répétitives

Exercice 3 :
Ecrire un algorithme qui permet d’afficher les nombres paires inferieurs à une valeur saisie par l’utilisateur.
Structures de contrôle
Les structures répétitives

Exercice 4 :
Ecrire un algorithme qui calcule la factorielle d’un nombre n.
Chapitre IV

Tableaux
Tableaux
Tableaux à une dimension

Imaginons que dans un algorithme, nous ayons besoin simultanément de 12 valeurs (par exemple, des notes
pour calculer une moyenne). Evidemment, la seule solution dont nous disposons à l’heure actuelle consiste à
déclarer douze variables, appelées par exemple N1, N2, N3, etc.
Mais cela ne change pas fondamentalement notre problème, car arrivé au calcul, et après une succession de
douze instructions « Lire » distinctes, cela donnera obligatoirement une atrocité du genre :

Moy ← (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12)/12

Imaginons maintenant un programme de gestion avec quelques centaines ou quelques milliers de valeurs à
traiter.

Solution : l’algorithmique offre la possibilité de rassembler plusieurs variables dans une seule
structure de donnée appelée tableau, au sein de laquelle chaque valeur sera désignée par un
numéro (appelé encore indice)
Tableaux
Tableaux à une dimension
Définition :
• Un tableau (encore appelé table ou variable indicée) est un ensemble de données, qui sont toutes de même
type, désigné par un identificateur unique (le nom du tableau)
• Chaque valeur du tableau est repérée par un indice (de type entier) indiquant sa position dans le tableau
• Un tableau peut être à 1 ou 2 dimensions.

Représentation graphique : tableau a une dimension


Tableaux
Tableaux à une dimension
Déclaration :
La déclaration d'un tableau s'effectue en précisant 3 éléments fondamentaux :
• Nom_du_tableau : Identificateur respectant les règles classiques des identificateurs d’une variable
• La taille: Le nombre de ses valeurs
• Le type : qui correspond au type des valeurs qu’il contiendra

Syntaxe :
Nom_du_tableau [ taille ] : type

Exemple : Algorithme ex1


Variables
Notes [30] : réel
Début

Fin
Tableaux
Tableaux à une dimension
Remarque :

• La taille correspond au nombre maximum de cases composant le tableau


• On peut définir des tableaux de tous types : tableaux d'entiers, de réels, de caractères, de booléens ou de
chaînes de caractères, …
• L'accès à un élément du tableau se fait au moyen de l’indice

Exemple:

notes[i] donne la valeur de l’élément i+1 du tableau


• Le premier indice du tableau est 0
• Les données stockées dans un tableau peuvent être manipulées en utilisant les boucles
Tableaux
Tableaux à une dimension
Lecture et affichage
Pour lire ou afficher les éléments d’un tableau, on utilise les structures itératives (les boucles)

Algorithme Lecture d’un tableau Algorithme affichage d’un tableau


Tableaux
Tableaux à une dimension
Exercices
1) Ecrire un algorithme qui déclare et remplisse un tableau de 7 éléments en les mettant toutes à zéro.

2) Ecrire un algorithme qui demande à l’utilisateur de saisir six notes et qui affiche la moyenne des notes
saisies
Tableaux
Tableaux à une dimension
Solution
1 2
Tableaux
Tableaux à deux dimensions

L’algorithmique nous permet de déclarer des tableaux dans lesquels les valeurs sont repérées par deux indices.
Ceci est utile par exemple pour représenter des matrices

Déclaration :
Syntaxe : Nom_du_tableau [ taille_n ] [ taille_m ] : type

Exemple :
Tableaux
Tableaux à deux dimensions
Représentation graphique
Tableaux
Tableaux à deux dimensions

Lecture

Pour lire les éléments d’un tableau, on utilise les structures itératives (les boucles)

Exemple:
Tableaux
Tableaux à deux dimensions

Affichage

Pour afficher les éléments d’un tableau, on utilise les structures itératives (les boucles)

Exemple:
Tableaux
Tableaux à deux dimensions

Exercices
Ecrire un algorithme qui déclare et remplisse un tableau de taille (6,13) en mettant toutes ces valeurs à zéro.

Vous aimerez peut-être aussi