0% ont trouvé ce document utile (0 vote)
3 vues11 pages

Notions et démarches en algorithmique

Le chapitre 2 présente la démarche algorithmique pour résoudre un problème, incluant la compréhension de l'énoncé, la décomposition en sous-problèmes, et l'élaboration d'un algorithme. Il décrit également le formalisme d'un algorithme, comprenant l'en-tête, les déclarations de constantes, types, variables, ainsi que les fonctions et procédures. Enfin, il aborde les structures algorithmiques, notamment les structures linéaires, de contrôle, et les boucles, en fournissant des exemples pratiques.

Transféré par

Wangui Celestin Wc
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)
3 vues11 pages

Notions et démarches en algorithmique

Le chapitre 2 présente la démarche algorithmique pour résoudre un problème, incluant la compréhension de l'énoncé, la décomposition en sous-problèmes, et l'élaboration d'un algorithme. Il décrit également le formalisme d'un algorithme, comprenant l'en-tête, les déclarations de constantes, types, variables, ainsi que les fonctions et procédures. Enfin, il aborde les structures algorithmiques, notamment les structures linéaires, de contrôle, et les boucles, en fournissant des exemples pratiques.

Transféré par

Wangui Celestin Wc
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 Notion et démarche algorithmique

2.1. Les étapes de résolution d’un problème

Face à un problème quelconque, nous devons nous poser au préalable un certain nombre de
questions. La réponse à ces questions facilitera la résolution du problème c'est-à-dire aboutir à
un résultat. Les étapes de résolution d’un problème sont les suivantes :
 Comprendre l’énoncé du problème
 Décomposer le problème en sous-problèmes plus simples à résoudre
 Associer à chaque sous problème, une spécification :
o Les données nécessaires
o Les données résultantes
o La démarche à suivre pour arriver au résultat en partant d’un ensemble de données.
 Elaboration d'un algorithme.

2.2. Le formalisme général d’un algorithme

Un algorithme est écrit en utilisant un Langage de Description d’Algorithme (LDA).


L’algorithme ne doit pas être confondu avec le langage proprement dit. Il comprend les parties
suivantes :
 En-tête : nom de l’algorithme
 Déclarations des constantes, des types et des variables.
 Déclarations des fonctions, procédures
 Corps de l’algorithme : il est constitué des actions du traitement. Il est délimité par les
termes Début et Fin.

2.2.1. L’entête

Il permet tout simplement d’identifier l’algorithme. La syntaxe est la suivante :


Algorithme <nom de l’algorithme> ;
Exemple d’entête : Algorithme Preparer_gateau ;
Autres exemples Algorithme Calcul_surface_cercle ; Algorithme somme_entier ;

2.2.2. Déclaration des constantes, types, variables

La déclaration : c’est une liste exhaustive des objets, grandeurs utilisés et manipulés dans le
corps de l’algorithme. Cette liste est placée en début d’algorithme.

a) Déclaration des constantes

Les constantes représentent des objets (nombre, caractères, …) dont la valeur ne peut pas être
modifiée pendant l’exécution de l’algorithme.
Le mot clé est const ou constante.
10

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
La syntaxe est la suivante : const <Nom de la constante> = Valeur ;

Exemple : const pi = 3.14 ;


const N = 100 ;
const MAX = 10 ;

b) Déclaration des types

C’est dans cette section qu’on fait la déclaration des types structurés. Exemple de types
structurés : les enregistrements.
Pour créer des enregistrements, il faut déclarer un nouveau type, basé sur d'autres types
existants, qu'on appelle type structuré. Après avoir défini un type structuré, on peut l'utiliser
comme un type normal en déclarant une ou plusieurs variables de ce type.

c) Déclaration des variables

Elles représentent les objets (des nombres, des caractères, des chaînes de caractères, des
booléennes ; …) dont la valeur peut être modifiée au cours de l’exécution de l’algorithme. Cette
instruction permettant de réserver de l’espace mémoire pour stocker des données. Elle dépend
du type des données : entier, réel, caractère, chaine de caractères, tableau, etc.

Le mot clé permettant d’effectuer la déclaration d’une variable est Var ou Variable. la syntaxe
est la suivante :
Var <Nom de la variable> : Type de la variable ;

Exemples : Var i : entier ;


Var nb : réel ;
Var lettre : caractère ;
Var trouve : booléen ;
Var rayon : réel ;
Var nom, prenom : chaine de caractères ;

Noms de variables
 Un nom de variable est une séquence de lettres (a → z, A → Z) et de chiffres (0 → 9),
qui doit toujours commencer par une lettre.
 Seules les lettres ordinaires sont autorisées. Les cédilles, les espaces, les caractères
spéciaux tels que $, #, @, etc. sont interdits, à l'exception du caractère _ (souligné).

2.2.3. Déclaration des fonctions, procédures

a) Déclaration de la fonction
Une fonction est un bloc d’instructions nommée et paramétrée, réalisant une certaine tâche. Elle
admet zéro, un ou plusieurs paramètres et renvoie toujours un résultat. La syntaxe de déclaration
d’une fonction est la suivante :
Fonction nom_fonction (parametre1 : type,…, parametren : type): type valeur ;
Début
….

11

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
nom_fonction  …
Retourner (nom_fonction) ;
FinFonction ;

Exemple : Ecrire une fonction qui calcule la moyenne de trois notes.

Fonction moyenne (note1 : réel, note2 : réel, note3 : réel) : réel ;


Début
moyenne  (note1 + note2 + note3) / 3 ;
retourner (moyenne) ;
FinFonction ;

b) Déclaration de la procédure

Tout comme une fonction, une procédure est un ensemble d’ordre accomplissant une tâche
particulière. Elle peut être utilisée pour calculer zéro ou plusieurs résultats.
La syntaxe de déclaration d’une procédure est la suivante :
Procédure nom_procédure (parametre1 : type, …, parametren : type) ;
Début

FinProcédure ;
Exemple :

Procédure moyenne2 (note1 : entier, note2 : entier, note3 : entier, var moy : réel) ;
Début
moy  (note1 + note2 + note3) / 3 ;
FinProcédure

2.3. Langage algorithmique

Algorithme NomAlgorithme ;
/*Ceci est un commentaire*/
/*déclaration de constante*/
/*déclaration de types*/
/*déclaration de variables*/
/*déclaration de procédures, fonctions*/

Début
Instruction1 ;
.
.
Instructionn ;
Fin

 Il faut avoir une écriture rigoureuse


 Il faut avoir une écriture soignée
 Il est nécessaire de commenter les algorithmes

12

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
 Il existe plusieurs solutions algorithmiques à un problème posé : il faut rechercher
l’efficacité de ce que l’on écrit

NB : L’écriture algorithmique est un travail de programmation à visée universelle : un


algorithme ne dépend pas du langage dans lequel il est implémenté, ni de la machine qui
exécutera le programme correspondant.

2.4. Phase d’analyse

Elle consiste à extraire de l’énoncé du problème des éléments de modélisation.

Technique : Distinguer en soulignant de différentes couleurs :


 Quel est le but du programme (traitement à réaliser)
 Quelles sont les données en entrée du problème
 Où vont se situer les résultats en sortie

Exemple d’énoncé d’un problème

On souhaite calculer et afficher le salaire brut d’un ouvrier. Le salaire brut dépend du nombre
total d’heures de travail effectué par l’ouvrier et le tarif par heure.

Analyse du problème

On souhaite calculer et afficher le salaire brut d’un ouvrier. Le salaire brut dépend du nombre
total d’heures de travail effectué par l’ouvrier et le tarif par heure.

Données en entrée

Données en sortie

13

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Chapitre 3 Les structures algorithmiques

3.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 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 : réel ;
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

3.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.
 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.

3.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 :

14

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
 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 calcule la valeur absolue d’un nombre réel (utilisation
de la structure alternative si...Alors…sinon).

Algorithme Valeur_absolue ;
Var x : réel ;
resultat : réel ;
Début
Ecrire ("Saisir le nombre x") ;
Lire (x) ;
Si (x < 0) Alors
resultat -1 * x ;
Sinon
resultat x ;
FinSi ;
Ecrire ("La valeur absolue de x est : ", resultat) ;
Fin

3.2.2. Disjonction multiple

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

15

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
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

3.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
Action1
….
Actionn
Jusqu’à <condition>

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

Algorithme Affiche_Nombre ;
Const N = 5 ;
Var i : entier ;
16

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
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 5 premiers nombres naturels (utilisation de
la boucle Tant que).

Algorithme Affiche_Nombre ;
Const N = 5 ;
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


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

17

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
Actionn
FinPour ;
Exemple 1 : algorithme qui affiche les 5 premiers nombres naturels (utilisation de la boucle
Pour).

Algorithme Affiche_Nombre ;
Const N = 4 ;
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

3.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.

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 ;

18

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
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.

3.3. Structure conditionnelle à choix multiple

Syntaxe :

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 :
19

Algorithmique –ENSP - Humanité numérique & Art numérique ingénieur – Mme NINKO Lidwine
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

20

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

Vous aimerez peut-être aussi