0% ont trouvé ce document utile (0 vote)
82 vues7 pages

Algorithmique Chap 2

Transféré par

naparadoxe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
82 vues7 pages

Algorithmique Chap 2

Transféré par

naparadoxe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2 Les structures algorithmiques

2.1. Les structures linéaires


Elles sont caractérisées par une suite d’instructions à exécuter successivement dans l’ordre
énoncé. Les actions successives sont mentionnées les unes après les autres.

Exemple 1 d’algorithme : Ecrire un algorithme qui permet de calculer la soustraction de deux


nombres réels.

Algorithme Soustraction_Nombre ; // ici c’est le nom de l’algorithme


// déclaration des variables du problème
Var a, b, s : réel ;
/* Maintenant nous allons débuter avec le déroulement de l’algorithme proprement dit avec le
mot clé Début*/

Début
Ecrire ("Saisir le nombre a ") ;
Lire (a) ;
Ecrire ("Saisir le nombre b ") ;
Lire (b) ;
s a - b ; //affectation d’une valeur à la variable s
Ecrire ("le résultat de la soustraction est : ", s) ; //Affichage de la valeur de s
Fin

Exemple 2 d’algorithme : Ecrire un algorithme qui permet de calculer la surface d’un cercle
connaissant son diamètre.

Algorithme calcul_surface_cercle ; // ici c’est le nom de l’algorithme


// déclaration des constantes et variables du problème
const PI = 3.14 ;
var s, d : réel ;
/* Maintenant nous allons débuter avec le déroulement de l’algorithme proprement dit avec le
mot clé Début*/
Début
Ecrire(‘‘Entrer le diamètre du cercle’’) ;
Lire(d) ;
sPI*d*d/4 ; // calcul de la surface du cercle
Ecrire(‘‘Entrer la surface du cercle est :’’, s) ; //affichage du résultat
Fin

2.2. Les structures de contrôle

Il en existe trois types principaux :


 Les disjonctions permettent, en fonction de l’occurrence d’un certain évènement, de
spécifier plusieurs lignes différentes d’exécution d’un programme. En fonction de la
réalisation de l’évènement ou non, l’algorithme suit un cheminement différent dans
l’architecture du code.
11

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
 Les boucles sont utilisées pour répéter un grand nombre de fois une série d’instructions
(on parle d’itération pour définir une passe dans la boucle).
 Les débranchements permettent de quitter prématurément l’exécution d’une boucle
d’instructions.

Ces trois types d’instructions de contrôle sont alors combinés pour créer un algorithme
complexe.

2.2.1. Les disjonctions ou traitements conditionnels ou structure alternative simple


Si…Alors… Sinon
Dans cette structure, l’exécution d’une des deux actions distinctes ne dépend que du résultat
d’un test effectué sur la condition qui peut être une variable ou un événement. Elle comporte
trois parties :
 Une condition, exprimée sous forme booléenne, et dont le résultat (vrai ou faux)
indiquera le branchement à suivre dans le programme. Il s’agit d’une expression
algébrique dont le résultat est un booléen.
 Une liste d’instructions à exécuter lorsque la condition est remplie (Action1, ..,
Actionn).
 Une liste alternative d’instructions à exécuter dans le cas contraire (Action1, ..,
Actionn)..

Syntaxes :

Si condition Alors
Action 1

Actionn
FinSi

Si condition Alors
Action 1

Actionn
Sinon
Action 1

Actionn
FinSi

Exemple d’application : algorithme qui teste l’âge d’un individu entré au clavier et affiche s’il
est un enfant ou un adulte (utilisation de la structure alternative si...Alors…sinon).

Algorithme Test_age ;
Var age : entier ;
Début
Ecrire ("Saisir l’âge de l’utilisateur") ;
Lire (age) ;
12

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Si (age < =18) Alors
Ecrire ("l’utilisateur est un enfant") ;
Sinon
Ecrire ("l’utilisateur est un adulte") ;
FinSi ;
Fin

2.2.2. Disjonction multiple

On parle aussi de branchement multiple. Une disjonction multiple désigne une instruction du
type :

Si condition1 Alors
Action 1

Actionn

Si condition2 Alors
Action 1

Actionn

Si conditionn Alors
Action 1

Actionn

Sinon
Action 1

Actionn

FinSi
FinSi

FinSi

2.2.3. Les boucles ou structures répétitives ou itératives

Les structures répétitives sont encore désignées sous le nom de boucle.

a) La structure Répéter action Jusqu’à condition


La séquence d’actions est exécutée au moins une fois et est répétée tant que la condition reste
fausse.
On sort de la boucle dès lors que le test de la condition s’avère vraie.

Syntaxe :

Répéter
13

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Action1
….
Actionn
Jusqu’à <condition>

Exemple : algorithme qui affiche les 10 premiers nombres naturels (utilisation de la boucle
Répéter….Jusqu’à).

Algorithme Affiche_Nombre ;
Const N = 10 ;
Var i : entier ;
Début
i0 ;
Répéter
Ecrire(i) ;
ii+1 ;
Jusqu’à i==N ;
Fin

b) La structure Tant que condition faire action


Contrairement à la boucle Répéter….Jusqu’à, la structure Tant que permet de tester d'abord la
condition et la séquence d’actions est exécutée tant que la condition est vraie.

Syntaxe :
Tant que <condition> faire
Action1

Actionn
FinTantque

Exemple d’application : algorithme qui affiche les 10 premiers nombres naturels (utilisation de
la boucle Tant que).

Algorithme Affiche_Nombre ;
Const N = 10 ;
Var i : entier ;
Début
i0 ;
Tant que i<N faire
Ecrire(i) ;
ii+1 ;
FinTantque ;
Fin

c) La structure : Pour variable de index_debut à index_fin [par <pas>] faire action


14

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Dans ce cas, on connait à l’avance le nombre d’itérations. On a un index de début et un index
de fin. Pas est la valeur à ajouter à index_debut à chaque passage dans la boucle. L’instruction
pour :
 Initialise une variable de boucle (le compteur)
 Incrémente cette variable de la valeur de « pas »
 Vérifie que cette variable ne dépasse pas la borne supérieure (index_fin)

Syntaxe :
Pour <variable> de index_debut à index_fin [par <pas>] faire
Action1

Actionn
FinPour ;
Exemple 1 : algorithme qui affiche les 10 premiers nombres naturels (utilisation de la boucle
Pour).

Algorithme Affiche_Nombre ;
Const N = 9 ;
Var i : entier ;
Début
Pour i de 0 à N faire //0 est l’index de début et N est l’index de fin
Ecrire(i) ;
FinPour ;
Fin

Exemple 2 : algorithme qui affiche les 12 premiers nombres naturels en sautant un nombre à
chaque fois (utilisation de la boucle Pour).

Algorithme Affiche_Nombre2 ;
Const N = 22 ;
Var i : entier ;
Début
Pour i de 0 à N par 2 faire //0 est l’index de début et N est l’index de fin, le pas c’est 2
Ecrire(i) ;
FinPour ;
Fin

2.2.4. Les débranchements de boucle

Il existe trois types de débranchement de boucle : les sorties de boucle, les passages à l’itération
suivante et les réitérations.

a) Les instructions de sorties de boucles (break et continue)

break permet de sortir directement de la boucle (pour, tant que ou répéter) la plus interne.
continue permet de passer directement à l'itération suivante de la boucle la plus interne.

15

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Exemple

Algorithme test ;
Var i entier ;
Début
Pour i de 1 à 5 faire
Si i == 1 alors
continue ;
Finsi ;
Ecrire ("ok") ;
Si i == 3 alors
break ;
Finsi ;
Finpour ;
Fin

b) L’instruction aller à (goto)

L'instruction goto permet de brancher (inconditionnellement) à une ligne du programme. Celle-


ci doit avoir été étiquetée (précédée d'une étiquette constituée d'un identificateur suivi de :).

Syntaxe :

goto Etiquette ;

Fonctionnement :
Le système interrompt l'exécution séquentielle du programme, remonte ou descend à la ligne
appelée étiquette et poursuit l'exécution à partir de celle-ci.

Exemple :

Algorithme test2 ;
Var i entier ;
Début
i 0 ;
Ecrire (i) ;
goto message ;
i i+1 ;
Ecrire (i) ;
message : Ecrire ("Ok") ;
Ecrire ("Fin") ;
Fin // Le programme affiche 0, Ok, Fin

Remarque : goto a la réputation de rendre les programmes moins lisibles. Néanmoins, son
utilisation est importante dans des cas qui l'impose.

2.3. Structure conditionnelle à choix multiple

Syntaxe :

16

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Selon <sélecteur> faire
<liste de valeurs1> : <traitement 1>
<liste de valeurs2> : <traitement 2> …..
…..
<liste de valeursN> : <traitement N>
[Sinon
<traitement N+1>]
FinSelon ;
Le sélecteur est un identificateur. <traitement i> est une séquence d’actions. <liste de valeurs
i> peut être une constante ou un intervalle de constantes de même type que sélecteur. La partie
sinon est facultative. Elle est exécutée si aucune des valeurs n’est égale au sélecteur.

Exemple 1 :
Ecrire un algorithme qui permet de lire un numéro de jour de la semaine (compris entre 1 et 7)
et d’afficher le nom du jour en toute lettre.

Algorithme Jour_Semaine ;
Var jour : entier ;
Début
Ecrire ("Entrer le numéro du jour de la semaine ") ;
Lire (jour) ;
Selon jour faire
1 : Ecrire (" Lundi ") ;
2 : Ecrire (" Mardi ") ;
3 : Ecrire (" Mercredi ") ;
4 : Ecrire (" Jeudi ") ;
5 : Ecrire (" Vendredi ") ;
6 : Ecrire (" Samedi ") ;
7 : Ecrire (" Dimanche ") ;
FinSelon ;
Fin

Exemple 2 :
Ecrire un algorithme qui permet de lire un caractère correspondant à une saison et d’afficher le
nom de la saison en toute lettre.

Algorithme Afficher_Saison ;
Var S : caractère ;
Début
Ecrire (" Entrer le caractère : ") ;
Lire(S) ;
Selon S faire
"E", "e " : Ecrire ("Été") ;
"A", "a " : Ecrire ("Automne") ;
"H", "h " : Ecrire ("Hiver") ;
"P", "p " : Ecrire ("Printemps") ;
Sinon
Ecrire ("saison introuvable ") ;
FinSelon ;
Fin
17

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine

Vous aimerez peut-être aussi