IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Algorithmes et Programmation structurée.

Date de publication : 05/03/2005 , Date de mise a jour : 05/03/2005

Par Selkis (selkis.developpez.com)
 

Dans le cours qui va suivre, nous allons utiliser un pseudo-langage, comportant toutes les structures de base d'un langage de programmation.


I. Introduction
II. Notion d'objets
II.a. Les types
II.b. Les constantes
II.c. Les variables
II.d. Les tableaux
II.e. Les procédures et fonctions
II.e.1. Les procédures
II.e.2. Les fonctions
III. Notion d'actions
III.a. Les actions d'observation
III.b. Les actions de modification
III.c. Les actions alternatives
III.d. Les actions répétitives
III.d.1. Le TantQue
III.d.2. Le Faire jusqu'à
III.d.3. Le pour


I. Introduction

Un programme est une suite d'instruction exécutées par la machine.
Ces instructions peuvent soit s'enchaîner les unes après les autres, on parle alors de SEQUENCE D'INSTRUCTION, ou bien s'éxécuter dans certains cas et pas dans d'autres, on parle alors de STRUCTURE ALTERNATIVE; ou se répéter plusieurs fois, c'est une STRUCTURE REPETITIVE.

L'Algorithme va donc permettre d'exprimer comment résoudre les problèmes, en se centrant sur la nature du travail, cad, sans soucis des spécificités dues à la machine ou au langage de programmation.


    Il se défini en quatre axes :
  • Définition des objets que l'on va manipuler (declaration)
  • Utilisation des objets définis (actions)
  • Présentation des Algorithmes (commentaires et indentation)
  • Esprit dans lequel l'algorithme est construit.

II. Notion d'objets

Les objets forment l'ensemble des éléments manipulés dans un algorithme. Il existe différents types d'objets.


II.a. Les types

Il est obligatoire en algorithmes de classer les objets dans des familles, ces familles s'appellent des types.
un type est défini par un nom et une référence à des types connus.
Il est caractérisé par :

  • l'ensemble des valeurs que les objets de ce type peuvent prendre.
  • l'ensemble des actions que l'on peut faire sur les objets de ce type.
en conclusion, le rôle d'un type est de permettre de classer les objets dans des familles et de permettre ainsi des manipulations unique entre objets d'une même famille


II.b. Les constantes

Elles sont définies par un identificateur et une valeur. le nom représente la manière de faire référence à la valeur.
La valeur représente le contenu de notre constante qui est invariable.


II.c. Les variables

Elles sont définies par un identificateur pour pourvoir les référencer, par un type pour savoir à quelles familles elles appartiennent, et un contenu.
Son rôle est de stocker les valeurs de certaines informations pour pourvoir les relire, les comparer, les modifier au cours d'un programme.

Types Details Declarations
ENTIER il s'agit de variable destinées à contenir un nombre entier positif ou négatif ENTIER variable, variable
REEL Variables numériques qui ne sont pas des entiers, cad qui comportent des décimales REEL variable, variable
CARACTERE Les variables de type caractère contiennent des caractères alphabétiques ou numériques (de 0 à 9), mais dans ce cas, ils ne sont pas considérés comme étant des nombres et on ne peut pas faire d'opérations dessus. CAR variable, variable
BOOLEEN Variables qui prennant les valeurs VRAI/FAUX ou OUI/NON BOOLEEN variable, variable

II.d. Les tableaux

On peut regrouper plusieurs variables sous un même nom, chacune étant alors repérée par un numéro.
On peut faire un tableau avec n'importe quel type de variable.

Dans tous les cas, le ième élément d'un tableau appelé TAB sera adressé par TAB(i).
Généralement on fait des tableaux à une dimension, mais il existe également des tableaux à deux dimensions , dans ce cas TAB(i,j) représente la Jème colonne et la ième ligne.

déclaration d'un tableau : TABLEAU type variable[longueur]

Exemple de declaration d'un tableau
TABLEAU CAR mot[10]; TABLEAU ENTIER liste_nbr[25]; TABLEAU CAR MOTS[10][20]

II.e. Les procédures et fonctions

Ce sont des outils definis par le programmeur qui permettent lorqu'un algorithme devient trop complexe de le découper de manière à ce que chaque partie de code soit plus simple et plus lisible.
De même lorsque qu'une partie de code doit être exécutée plusieurs fois à des endroits différents , ou réutilisée ultérieurement.


II.e.1. Les procédures

Une procédure est une suite d'instruction servant à réaliser uen tâche précise en fonction d'un certain nombre de paramètre.
Les paramètre sont de 2 types :

  • le type VAL : qui contient une valeur qui sera utilisée dans la procédure
  • le type VAR : qui represente une variable du programme appelant qui pourra être lue et modifiée si nécessaire.
Exemple de déclaration de procédure
PROCEDURE nom de la procédure ( VAL type nom, type nom,...VAR type nom, type nom,..) déclaration de variables locales DEBUT actions FIN
Les variables que l'on déclare localement à la procédure ne sont connues que dans cette procédure.
pour utiliser une procédure dans un programme appelant, on écrit :
L'appel d'une procédure s'ecrit : Nom de la procédure (variable1, valeur2, ... , variable3, variable4, ...) ;
A chaque paramétre de type VAR on associe un nom de variable connue dans le programme appelant,
A chaque paramétre de type VAL on associe une variable ou une valeur.


II.e.2. Les fonctions

Une fonction est une procédure dont le but est de déterminer une valeur et de la retourner au programme appelant

Exemple de déclaration d'une fonction
type FONCTION nom de la fonction (VAL type nom, type nom,... VAR type nom, type nom, ...) déclarations de variables locales DEBUT actions RETOURNE valeur FIN
Les même remarques que pour la procédure s'appliquent.
De plus, il faut noter que la fonction retourne une valeur on doit donc à la déclaration indiquer le type de cette valeur.
l'appel d'une fonction s'ecrit :
variable : nom de la fonction (valeur1, valeur2,..)
Une fonction ne peut donc pas retourner un tableau


III. Notion d'actions


III.a. Les actions d'observation

Elles permettent de comparer deux objets de même type. Sont-ils égaux? L'un est il plus grand que l'autre?


III.b. Les actions de modification

elles donnent une valeur à une variable. Cette valeur peut être celle d'une autre variable, d'une constante, le résultat de l'appel d'une fonction, ou le résultat d'opérations entre plusieurs de ces objets.


Variable <-- Valeur i<--1 Termine <-- Vrai
les opérations arithmétiques courantes, additions, soustractions, multiplication et division s'écrivent ainsi :

variable <-- val1 + val2 variable <-- val1 - val2 variable <-- val1 * val2 variable <-- val1 / val2

III.c. Les actions alternatives

elles permettent d'effectuer des actions (de n'importe quelle catégorie) suivant certaines conditions.

En effet , il est souvent nécessaire lorsque l'on écrit un programme de distinguer plusieurs cas conditionnant l'éxécution de telles ou telles instructions.
Pour ce faire, on utilise une structure alternative : si on est dans tel cas, alors on fait cela sinon on fait ceci.

La syntaxe est la suivante : SI condition Alors actions [ SINON actions] FSI les crochets indiquent que la partie SINON est falcultative


Exemple
SI (a <--0) ALORS ABS <-- a*(-1) SINON ABS <-- a FSI
SI (a <>0) ALORS RES <-- B/a FSI
    Pour exprimer ces conditions on utilise les opérateurs conditionnels suivant :
  • = Egal
  • <= Inférieur ou églal
  • < Inférieur
  • >= Supérieur ou égal
  • > Supérieur
  • <> Différent
On peut combiner des conditions à l'aide des opérateurs logiques suivants :
ET OU NON XOR

Exemple : ((a<2) ET ((b=0) ou (c<>a)) XOR (d=1))

Lorsque l'on écrit de telles conditions , il est recommandé de mettre toutes les parenthèses afin d'éviter les erreurs.

    Les actions qui suivent le sinon ou le ALORS peuvent être
  • Une simple instruction
  • Une suite d'instructions séparées par des ";"
  • Une autre alternative
  • Une répétitive

III.d. Les actions répétitives


III.d.1. Le TantQue

TantQue condition
Faire actions
FTQ

Ce qui signifie : tant que la condition est vraie, on exécute les actions.

Exemple :
fini <-- faux; TantQue (NON fini) Faire i <--i+1 Si (x/i < epsilon) Alors fini <-- VRAI SINON x <-- x/i FSI FTQ

III.d.2. Le Faire jusqu'à

FAIRE
actions
JUSQUA condition

Ce qui signifie : que l'on exécute les actions jusqu'a ce que la condition soit vraie

Exemple :
fini <-- faux; Faire i <--i+1 Si (x/i < epsilon) Alors fini <-- VRAI SINON x <-- x/i FSI Jusqua (fini=VRAI)

III.d.3. Le pour

Trés souvent, on utilise une structure répétitive avec un compteur et on s'arrête lorque le compteur a atteint sa valeur finale.

i <-- 1
TantQue (1<10)
Faire
p <-- p*X
i <-- i+1
FTQ

C'est pourquoi la plupart des languages de programmation offrent une structure permettant d'écrire cette répétitive plus simplement, c'est la structure POUR

POUR variable ALLANT DE valeur initiale A valeur finale [PAS valeur du pas]
Faire actions
FinPour


Lorque le PAS est omis, il est supposé égal à +1
Exemple :
POUR i ALLAN de 1 A 10 Faire p <-- p * X FinPour