Essentiel I : Introduction à l'algorithmique

print this page
send email
I. Définitions
Algorithme
ü Description en langage naturel de la suite des actions effectuées par un programme structuré. 
ü Un algorithme est écrit en utilisant un langage de description d’algorithme (LDA).
Algorigramme
Traduction graphique de l’algorithme. Aussi appelé Organigramme. 
SYMBOLE
DESIGNATION
SYMBOLE
DESIGNATION
Symboles de traitement
Symboles auxiliaires

Symbole général
Opération sur des données, instructions,...

Renvoi connecteur
utilisé à la fin et au début de la ligne pour en assurer la continuité

Sous-programme
Portion de programme

Début, fin ou interruption d’un algorithme

Entrée-Sortie
Mise à disposition ou enregistrement d’une information

Liaison
Les différents symboles sont reliés entre eux par des lignes de liaison, le cheminement va haut en bas et de gauche à droite.
Un cheminement différent est indiqué à l’aide d’une flèche.
Symbole de test


Branchement
Décision d’un choix parmi d’autres en fonction des conditions



II. Structure d’un programme
1. L’en-tête
Algorithme nom de l’algorithme ;
2. Déclaration des constantes, variables
Const
           Listes des constantes ;
Var
            Listes des variables ;
Struct
            Listes des structures ;
3. Définition des fonctions et procédures
Fonction
           Listes des fonctions ;
Procédure
            Listes des procédures ;
4. Définition du corps de l’algorithme
Début
           action 1 ;
           action 2 ;
                 .
                 .
                 .


           action n ;
Fin
II.1. Type de données:
booléen : valeur pouvant être soit vraie, soit fausse.
entier : valeur numérique entière.
réel : valeur numérique codée avec une mantisse et un exposant.
caractère : octet correspondant à un code ASCII.
chaîne de caractères : ensemble de caractères.
tableau de données : ensemble de données de même type (exemple : tableau d’entiers, tableau de réels).

Toutes ces données sont codées sous forme d'octets en mémoire.
II.2. Syntaxe de déclaration:
Déclaration des constantes :
Const NomConstante : [Type] = Valeur ;

Exemple : Const Pi=3.141559 ;
                   Const NombreLettres : Entier = 10 ;
Déclaration des variables :
Var NomVariable : [Type] ;

Exemple : Var Lettre : Caractère ;
Définition des fonctions et des procédures :
Fonction NomFonction (NomV1 : [Type], NomV2 : [Type],…) : [TypeDeRetour] ;

        
 Const ~ déclaration des constantes locales ~ 
        
 Var ~ déclaration des variables locales ~

        
 Début 
        
          ~ description des actions effectuées par la fonction ~ 
        
 Fin

Exemple :
Fonction Moyenne (Note1 : Réel, Note2 : Réel) : Réel ; 

         Var Intermediaire : Réel ;
         Début 
                  Intermediaire <-- Note1 + Note2 ;
                  Intermediaire <-- Intermediaire / 2 ;
                  Moyenne <-- Intermediaire ;
         Fin

Les procédures : Une fonction se différencie d’une procédure par le fait qu’elle fournit un résultat. 
Syntaxe de l’appel d’une fonction :
Variable <-- NomFonction (NomEntrée1, NomEntrée2,…) ; 
Définition du programme principal :
·   Le programme principal consiste en une suite d’opérations élémentaires faisant souvent appel à des fonctions ou procédures. Ces différentes opérations sont mentionnées en utilisant les structures algorithmiques décrites au .
·   Le programme principal est délimité par les mots-clefs Début et Fin.

III. Les opérateurs :
Nature
Variables utilisées
Notation
Signification
Opérateurs arithmétiques
Entier
Réel
+
Addition
-
Soustraction
*
Multiplication
/
Division (résultat réel)
DIV
Division (résultat entier)
MOD
Reste de la division entière
Opérateurs logiques
Booléen
Entier
et
Fonction ET
ou
Fonction OU
ouex
Fonction OU EXCLUSIF
non
Fonction NON
Opérateur de concaténation
Chaîne de caractères
+
Concaténation
Opérateurs de comparaison
Booléen
Entier
Réel
Caractère
Chaîne de caractères
=
Egal
#
Différent
< 
Inférieur
> 
Supérieur
<=
Inférieur ou égal
>=
Supérieur ou égal
Opérateur d’affectation
Les deux variables doivent être du même type.
ß
Affectation


IV. Les Structures algorithmiques
Les structures algorithmiques sont réparties en 3 catégories :

- structures linéaire d'opérations;
- structures alternatives (ou conditionnelles) ou de choix : en fonction d'une condition, le programme exécute des opérations différentes;
- structures itératives ou répétitives: sous contrôle d'une condition, une séquence d'opérations est exécutée répétitivement.
IV.1. Structure linéaire :
Les actions successives sont mentionnées les unes après les autres. 

Syntaxe :   

Action1
 
Action2
 
...
 
ActionN 

Exemple : Calcul d’un produit de 2 nombres

Algorithme Calcul du produit ;
Var
        a,b : réel ;
        p : réel;
Début 
        Afficher (‘Saisir le nombre a ‘)
 ;
        Saisir (a)
 ;
        Afficher (‘Saisir le nombre b ‘)
 ;
        Saisir (b)
 ;
        p <-- a * b
 ;
        afficher (p) ;
Fin
IV.2. Structure alternatives :
Structure SI ... ALORS ...
Une condition est testée pour déterminer si l’action ou le groupe d’actions suivant doit être exécuté.

Syntaxe :            
Si Condition   Alors
Actions
FinSi
Exemple : Calcul d’une racine carrée

 Algorithme Racine carrée ;
Var
        x: réel ;
        r: réel ;
Début
        Afficher (‘Saisir le nombre x‘) ;
        Saisir (x) ;
        Si x > 0 Alors
                r <-- racine (x) ;
                afficher (r) ;
        FinSi
Fin
Structure SI ... ALORS ...SINON ...
Une condition est testée pour déterminer quelle action ou quel groupe d’actions doit être exécuté.

Syntaxe :          
Si Condition  Alors
Actions1
  Sinon
Actions2
FinSi
 
Exemple : Calcul d’une racine carrée
Algorithme Calcul racine carrée ;
Var
        x: réel ;
        r: réel ;
Début
        Afficher (‘Saisir le nombre x‘) ;
        Saisir (x) ;
        Si x < 0 Alors
                afficher (‘x est négatif’) ;
        Sinon
                r <-- racine (x) ;
                afficher (r) ;
        FinSi
Fin
Structure de choix multiple 
Une donnée est comparée successivement à des valeurs constantes :

Syntaxe 1 :      
Suivant Donnée faire
Valeur1 : Actions1
Valeur2 : Actions2
...
ValeurN : ActionsN
Sinon 
ActionsN+1
FinSuivant
Syntaxe 2 :      
Cas Donnée
Valeur1 : Actions1
Valeur2 : Actions2
...
ValeurN : ActionsN
Sinon 
ActionsN+1
FinCas
Syntaxe 3 :      
Si Donnée=Valeur1 alors
             Actions1
     Sinon Si Donnée=Valeur2 alors
            Actions2
...
    Sinon Si Donnée=ValeurN alors
            ActionsN
Sinon 
    ActionsN+1
    FinSi
    FinSi
     ...
     FinSi
FinSi
Remarques : la partie « ActionsN+1 » peut ne pas exister.
                        Toutes ces syntaxes sont équivalentes.

Plusieurs valeurs différentes peuvent être regroupées sur une même ligne si les actions correspondantes sont identiques.

Exemple : Affichage de la nature d’un caractère
Algorithme Affichage nature ;
Var
        c: caractère ;
Début
        Afficher (‘Taper un caractère‘) ;
        Saisir (c) ;
        Suivant c Faire
                ‘A’..’Z’ : afficher (‘Lettre majuscule’) ;
                ‘a’..’z’ : afficher (‘Lettre minuscule’) ;
                ‘0’..’9’ : afficher (‘Chiffre’) ;
        Sinon 
                afficher (‘Ni Lettre Ni Chiffre’) ;
        FinSuivant
IV.3. Structure itératives (ou répétitives)
Structure REPETER ... JUSQUA ...
Une action ou un groupe d’actions est exécuté répétitivement jusqu'à ce qu’une condition soit vérifiée.

Syntaxe :
Répéter 
Actions
Jusqu’à Condition

Remarque : la vérification de la condition s’effectue après les actions. Celles-ci sont donc exécutées au moins une fois.

Exemple : exécution répétitive d’un programme
Algorithme exécution répétitive ;
Var
        a,b : réel ;
        p : réel ;
        c : caractère ;
Début         
Répéter
                Afficher (‘Saisir le nombre a ‘) ;
                Saisir (a) ;
                Afficher (‘Saisir le nombre b ‘) ;
                Saisir (b) ;
                p <-- a * b ;
                afficher (p) ;
                afficher (‘encore un calcul ? Non touche N ; Oui autre touche’) ;
                saisir (c) ;
        Jusqu'à c = ‘N’
Fin
Structure TANT QUE ... FAIRE ...
TantQue Condition
Faire 
Actions
FinFaire /FinTantque

Remarque : la vérification de la condition s’effectue avant les actions. Celles-ci peuvent donc ne jamais être exécutées.

Exemple : Exécution répétitive d’une action.
Algorithme Exécution répétitive d’une action ;
Début
        Tant Que Non (ToucheAppuyée)
                Faire
                        Afficher (‘Attente’) ;
                FinFaire
Fin
Structure POUR Indice DE ... A .... FAIRE ...
Une action ou un groupe d’actions est exécuté répétitivement un certain nombre de fois : le nombre dépend des valeurs initiale et finale données à la variable « Indice ».

Syntaxe :
Pour Indice De Val1 A Val2
Faire
Actions
FinFaire / Fin pour

Remarques : les valeurs initiale (Val1) et finale (Val2) sont incluses dans le comptage.
                       Il est éventuellement possible de spécifier un autre pas d’incrémentation (+2,+10,-1....)

Exemple : Affichage d’une ligne d’étoiles
Algorithme Affichage d’une ligne d’étoiles ;
Var
        i : entier ;
Début
        Pour i de 1 à 80
        Faire
                  Afficher (‘*’) ;
          FinFaire
Fin
 
Remarque : cette structure algorithmique peut en fait être remplacée par une structure TANT QUE ... FAIRE …

Var
        i : entier ;
Début
        i <-- 1
        Tant Que i ≥ 80
        Faire
                Afficher (‘*’) ;
                i <-- i +1 ;
        FinFaire

0 commentaires:

Enregistrer un commentaire