Chapitre 1

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 16

Chapitre 1 Introduction à l’algorithmique

Objectifs

Acquérir de bons réflexes face à un problème à résoudre


Prendre conscience de l’importance de l’algorithmique en programmation

1. Définitions

Un algorithme est la description des actions (ou instructions) à effectuer pour résoudre un
problème.
Un algorithme est une suite finie d’opération élémentaires permettant de résoudre un problème
donné.
L’algorithmique est la partie de l’informatique qui traite des algorithmes.

Un bon algorithme doit être bien structuré et lisible

Notion d’organigramme et de pseudo code


L’organigramme représente graphiquement l’algorithme.
Le pseudo-code représente textuellement l’algorithme.
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

2. Notions de variable et de constante

Les variables et les constantes permettent de contenir des informations (ou données) utilisées dans
un algorithme.
Une variable ou une constante est caractérisée par :
 Un identificateur, qui est un nom unique qui permet de la désigner,
 Un type, qui correspond à la nature de l’information qu’elle contient,
 Une valeur, c’est à dire l’information qu’elle contient.
La valeur d’une variable peut être modifiée dans un algorithme, alors que celle d’une constante est
fixée une fois pour toutes.

3. Les types de données de bases

En algorithmique, on distingue les cinq types de données de base suivants :


 Caractère (valeurs possibles : lettre, chiffre, ponctuation, espace,)
 Chaîne (valeurs possibles : toute suite de 0 ou plusieurs caractères)
 Entier (valeurs possibles ; les nombres entiers positifs ou négatifs)
 Réel (valeurs possibles ; les nombres réels positifs ou négatifs)
 Booléen (valeurs possibles : VRAI, FAUX)

1
Remarque
Une valeur de type caractère doit être entre apostrophes. Par exemple : ‘A’,’3’
Une valeur de type chaîne doit être entre guillemets (double quotte).
Par exemple : ’’Bonjour’’

4. Déclaration des variables et des constantes

Une variable est constituée d'un nom et d'un contenu (d'un certain type). Avant d’utiliser une
variable ou une constante dans un algorithme il faut d’abord la déclarer en définissant clairement
son identificateur et son type.

4-1 Déclaration d’une variable

Pour déclarer une variable on utilise la syntaxe suivante :

Variable <nom variable ou identificateur> : <type>


Variables <nom var1, nom var2, nom var3…> : <type>

Un identificateur est une suite de caractères pouvant contenir des lettres, des chiffres, et le
caractère _ (tiret de 8). Mais le premier caractère ne peut pas être un chiffre.
On peut initialiser une variable (lui affecter une première valeur) lors de sa déclaration. On peut
aussi déclarer en même temps plusieurs variables de même type.

Exemple
Variable a : entier
Variable message : chaine
Variables x, y, z : réel
Variables x 5, y, z : entier

4-2 Déclaration d’une constante


Pour déclarer une constante on utilise la syntaxe suivante :
Identificateur= valeur : type
Exemple :
Constantes
N=100 : entier
Pi= 3,14 : réel

5. Structure générale d’un algorithme


Un algorithme est écrit dans un langage appelé langage algorithmique ou pseudo langage et est
généralement structuré de la manière suivante :

2
Algorithme Nom de l’algorithme

Constante

Déclaration des constantes

Début

Variable

Déclaration des variables

Instructions
Fin

6. les opérations de l’algorithmique

Le tableau suivant regroupe quelques opérations utilisées en algorithmique

3
Opérateur de chaînes de caractères

Pour concaténer deux chaînes de caractères, on doit utiliser l'opérateur de concaténation, cet opéra-
teur se note avec le signe "+" ou "&".

Mentionnons également le ^ qui signifie « puissance ».

Remarque
Une opération de comparaison donne comme résultat soit la valeur VRAI soit la valeur
FAUX.

Étant données deux variables booléennes A et B, les résultats des opérations ET, OU et NON sont
définis dans le tableau suivant :

7. Notions d’expression et de condition

Une expression est « quelque chose » qui a une valeur.


Une expression est :
 Soit une variable ou une constante,
 Soit une valeur (Par exemple : 45, ‘A’ , ’’ bonjour’’)
 Soit une combinaison de variables, de constantes, de valeurs et d’opérateurs (par exemple :
2*r*3*3.14 est de type réel et vaut 31.4)

Règle d’évaluation d’une expression : Une expression est évaluée en fonction de la priorité
des opérateurs qui la composent, en commençant par ceux de priorité plus forte. À priorité égale,
les opérateurs sont évalués de gauche à droite.
Voici les opérateurs rangés par priorité décroissante :
Non la priorité la plus forte
* , / , Div , Mod , Et
+ , - , Ou
< , > , <= , >= , = , <> priorité la plus faible

4
une condition est -une expression dont le type est booléen, c’est à dire que sa valeur est soit VRAI ,
soit FAUX . On parle aussi d’expression booléenne, d’expression logique, d’expression conditionnelle.

Exemples
Variables
a 5, b 2, c 3 : entier
a <( 2 * b-c) est -une condition dont la valeur est : FAUX
(a>0) ET (b<0) est une condition dont la valeur est : FAUX

8. Les instructions élémentaires

8-1 l’affectation

L’instruction d’affectation permet d’attribuer une valeur à une variable. Cette instruction est no-
tée « identificateur prend valeur ».
Comme il a été vu précédemment, on peut aussi noter : « identificateur ← valeur ».

Voici quelques exemples d’affectation :


rayon ←10
diamètre ← 2 * rayon
périmètre ←PI * diamètre

Exemples

Variables
x,y : entier
x←5
y←x-2
x←x+1

Exemples :

A "Bon" ;

B "jour" ;

C A&B;

5
La variable C contient maintenant la chaîne : "Bonjour".

On peut aussi la noter de cette façon : C A+B;

8-2 la lecture
L’entrée ou la lecture de données correspond à l’opération qui permet de saisir des valeurs pour
qu’elles soient utilisées par le programme. Cette instruction est notée « saisir identificateur » ou «
lire identificateur ».

Exemple : Voici quelques exemples de lecture


Lire(X) // lit la valeur entrée au clavier et l’affecte à la variable x .
Lire(X,Y) // lit la première valeur entrée au clavier et l’affecte à x, puis lit la deuxième valeur et
l’affecte à y

8-3 l’écriture
La sortie ou l’écriture des données permet l’affichage des valeurs des variables après traitement.
Cette instruction est notée « écrire identificateur » ou « afficher identificateur ».

Voici quelques exemples d’écriture

Ecrire(ch) //permet d’afficher à l’écran la valeur de la variable ch


Ecrire(’’Bonjour’’) // permet d’afficher à l’écran la chaîne Bonjour
Ecrire(a,b) //permet d’afficher à l’écran les valeurs des variables a et b .

9. Exemple d’algorithme

Algorithme pour échanger les valeurs de deux variables :

Algorithme Echange

début
variables
x, y, tmp : entier
Ecrire(’’ Donner les valeurs respectives des deux deux entiers x et y :’’)
Lire(x, y)
Ecrire (’’ Avant échange : x vaut ’’, x ,’’ et y vaut :’’, y)
tmp x

6
x y
y tmp
Ecrire(’’ Après échange : x vaut ’’, x ,’’ et y vaut :’’, y)
fin

A l’exécution, si l’utilisateur donne 2 pour la valeur de x et 5 pour celle de y, nous aurons à l’écran :
Donner les valeurs respectives des deux entiers x et y : 2 5
Avant échange : x vaut 2 et y vaut : 5
Après échange : x vaut 5 et y vaut : 2

10. Les structures de contrôle


Les structures de contrôle permettent de déterminer l’enchaînement ou la fréquence
d’exécution des instructions d’un algorithme.

10-1 la structure conditionnelle Si


La structure Si permet l’exécution d’un traitement ou d’un autre en fonction de la valeur d’une ou
plusieurs conditions suivant la syntaxe générale suivante :

Algorithme positif
Si <condition> Alors Variable
instruction A: entier
FinSi Début
Lire(A)
Si A > 0 Alors
Si <condition> Alors Ecrire(" A est positif ")
instructions FinSi
Fin
Sinon
Algorithme positif1
instructions Variable
FinSi A: entier
Début
Lire(A)
Si A > 0 Alors
Ecrire(" A est positif ")
Sinon
7Ecrire(" A est négatif ")

FinSi
Fin
Un traitement peut être constitué d’une ou de plusieurs instructions. Les conditions sont évaluées
dans l’ordre d’apparition. Dès qu’une condition est vraie, c’est le traitement associé qui sera exécuté.
Si aucune condition n’est vérifiée, alors c’est le traitement associé à la clause Sinon, si elle existe,
qui sera exécuté.

Exemple

Variable

n : entier
Ecrire( ’’ Donnez un nombre entier’’)
Lire(n)
Si (n>0) Alors
Ecrire(’’ valeur positive’’)
Sinon Si (n=0) Alors
Ecrire(’’ valeur nulle’’)
Sinon
Ecrire(’’ valeur négative’’)
FinSi

10-2 la structure Selon

8
La structure Selon permet d’exécuter un traitement ou un autre en fonction de la
valeur d’une expression qui peut être de type entier, caractère ou booléen. Sa Syntaxe
est :

La valeur de l’expression est successivement comparée à chacune des valeurs listées. Dès qu’il y a
correspondance, c’est le traitement associé qui sera exécuté. Si aucune des valeurs ne correspond à
la valeur de l’expression, alors c’est le traitement associé à la clause Sinon si elle existe qui sera
exécuté.

Exemple : affichage du jour en toutes lettres selon son numéro.

9
10- 3 les structures répétitives
Les structures répétitives, encore appelées boucles, permettent de répéter plusieurs
fois l’exécution d’un traitement.
10- 3-1 la boucle Tant Que
La boucle Tant Que permet de répéter l’exécution d’un traitement tant qu’une
condition est vraie . Sa syntaxe est :
Tant Que (condition) Faire
traitements
FinTantQue

Organigramme

10
Exemple : affichage des nombres entiers compris entre 1 et un nombre positif donné
par l’utilisateur.

Variable
n ,i : entier
Ecrire (’’Donnez une valeur entière positive’’)
Lire(n)
i←1
Tant Que (i<=n) Faire
Ecrire(i)
i←i+1
FinTantQue

10-3-2 la boucle Répéter … jusqu’à ce que

11
!!

Remarques :
Il y a toujours au moins une exécution du corps. La structure REPETER permet de
répéter un traitement 1 ou plusieurs fois.
Pour choisir entre REPETER et tant que il faut se poser la question : faut-il éventuelle-
ment ne jamais faire le traitement ? Si oui : il faut utiliser tant que, sinon utiliser la struc-
ture REPETER qui exécute au moins une fois l'action.
NB: Attention, en C, C++,JAVA, ….. :
La structure est do...while : c'est à dire Faire...TANTQUE . Alors que la structure algo-
rithmique est répéter...jusqu'à.
C'est à dire qu'en C, C++,JAVA, ….. on exécute l'action tant qu'une condition est vraie
alors qu'en algorithme on exécute une action tant que la condition est fausse, c'est à
dire jusqu'à ce que la condition inverse soit vraie.

10-3-2 la boucle Faire … Tant Que

La boucle Faire … Tant Que (Répéter … Jusqu’à ce que) permet d’exécuter un


traitement au moins une fois et de le répéter tant qu’une condition est vraie . Sa
syntaxe est :
Faire
Traitements
Tant Que (condition)

12
Organigramme

Exemple : affichage de l’inverse d’un entier non nul donné par l’utilisateur .

Variable
n : entier

Faire

Ecrire (’’ Donnez un entier non nul :’’)


Lire(n)
Tant Que (n=0)
Ecrire (’’ Son inverse est :’’, 1/n)

10-3-3 la boucle Pour

la boucle Pour permet d’exécuter un traitement pour chaque valeur prise dans un intervalle par
une variable de type entier appelée compteur . Sa syntaxe est la suivante :

Pour compteur de valeur_initiale à valeur_finale par pas de valeur_pas Faire


traitement
FinPour

13
Le compteur est initialisé à la valeur initiale. Il augmente automatiquement de la valeur du pas à
chaque exécution du traitement . Quand il atteint la valeur finale, le traitement est exécutée une
dernière fois. Si le pas n’est pas précisé, sa valeur est par défaut égale à 1. Lorsque l'on sait
exactement combien de fois on doit itérer un traitement, c'est cette boucle qui doit être privilégiée.

Organigramme

Exemple

Variable
i : entier
// affichage à l’écran des entiers pairs de 0 à 20 :

Pour i de 0 à 20 par pas de 2 Faire


Ecrire(i)
FinPour

//affichage à l’écran des entiers pairs de 20 à 0 :

Pour i de 20 à 0 par pas de -2 Faire


Ecrire(i)
FinPour

//affichage à l’écran des entiers de 0 à 20 :

14
Pour i de 0 à 20 Faire
Ecrire(i)
FinPour

10-4 les instructions de rupture de séquence


10-4-1 L’instruction Arrêter
L’instruction Arrêter permet d’interrompre le déroulement de la boucle qui la
contient.

Exemple
Pour i de 1 à 5 Faire
Ecrire(’’Etape’’,i ,’’ :’’)
Si(i=3) Alors
Arrêter
FinSi
Ecrire(’’Bonjour’’)
FinPour

A l’exécution, on obtient à l’écran :


Etape 1 : Bonjour
Etape 2: Bonjour
Etape 3:

10-4-2 L’instruction Continuer

L’instruction Continuer permet d’interrompre le déroulement de l’étape courante de


la boucle qui la contient et de passer directement à l’étape suivante.

Exemple
Pour i de 1 à 5 Faire
Ecrire(’’Etape’’,i ,’’ :’’)
Si(i=3) Alors
Continuer
FinSi

15
Ecrire(’’Bonjour’’)
FinPour

A l’exécution, on obtient à l’écran :


Etape 1 : Bonjour
Etape 2: Bonjour
Etape 3:
Etape 4: Bonjour
Etape 5: Bonjour

16

Vous aimerez peut-être aussi