Mi Algorithme - Semestre2
Mi Algorithme - Semestre2
Mi Algorithme - Semestre2
Semestre 2
Dr A. Rahmoun
SOMMAIRE
ALGORITHMIQUE
1) Définitions. ..................................................................................................... 2
2) Organisation d’un programme. ...................................................................... 2
2.1) Déclaration des constantes ......................................................................... 2
2.2) Déclaration des variables ............................................................................ 3
2.3) Définition du programme principal................................................................ 3
2.4) Définition des fonctions et procédures.......................................................... 3
3) Affectation...................................................................................................... 4
4) Opérateurs - Conditions. ................................................................................ 4
4.1) Opérateurs................................................................................................. 4
4.2) Conditions .................................................................................................. 4
5) Les Structures algorithmiques. ...................................................................... 5
5.1) Séquencement linéaire ............................................................................... 5
5.2) Structures de choix (ou conditionnelles) ....................................................... 5
5.2.1) Structure SI ... ALORS .......................................................................... 5
5.2.2) Structure SI ... ALORS ...SINON ... ........................................................ 6
5.2.3) Structure de choix multiple..................................................................... 6
5.3) Structures itératives (ou répétitives) ............................................................. 7
5.3.1) Structure REPETER ... JUSQUA ........................................................... 7
5.3.2) Structure TANT QUE ... FAIRE .............................................................. 8
5.3.3) Structure POUR Indice ALLANT DE ... A .... FAIRE ................................ 8
1) DEFINITIONS.
Algorithme : Description en langage naturel de la suite des
actions effectuées par un programme.
Program exemple5.1 ;
Type chaine = string[20] ;
Var nom : chaine ;
age : byte ;
BEGIN
Write('Entrez votre nom : ') ;
ReadLn(nom) ;
Write('Entrez votre âge : ') ;
ReadLn(age) ;
WriteLn('Votre nom est : ',nom,'et votre âge : ',age) ;
END.
Ce programme utilise un nouveau type appelé chaîne qui sert à déclarer la
variable nom.
Program exemple3.1a ;
Const Max=100 ;Type intervalle=1..Max ;Var x : intervalle ;
BEGIN
x:=1 ;
{...} If Not(Succ(x)=Max) Then Inc(x) ;{...}
END.
Cet utilise quelques fonctions spécifiques aux types intervalles.
L'exemple suivant montre qu'on aurait pu se passer de déclarer
un nouveau type en le spécifiant directement dans la syntaxe Var.
Program exemple3.1b ;
Const Max=100 ;Var x : 1..Max ;
BEGIN
x:=1 ;
{...}
If Not(Succ(x)=Max) Then Inc(x) ;{...}
END.
5.4. Type énuméré
Un type énuméré est un type dont les variables associées n'auront qu'un
nombre très limité de valeur (au maximum 256 différentes possibles). Un type
énuméré sert de définition à un ensemble mathématique par l'intermédiaire de
la syntaxe Set Of dont ce n'est pas le sujet ici, voir chapitre Ensemble. La
définition d'un type énuméré consiste à déclarer une liste de valeurs possibles
(256 au maximum) associées à un type, c'est-à-dire qu'une variable de type
énuméré aura l'une et une seule de ces valeurs et pas une autre.
Program exemple5.4a ;
Type jours=(dim, lun, mar, mer, jeu, ven, sam) ;
Var today : jours ;
BEGIN today := mar ;
today:=Succ(today) ;
Inc(today,2) ;
Case today Of
dim : WriteLn('Dimanche') ;
lun : WriteLn('Lundi') ;
mar : WriteLn('Mardi') ;
mer : WriteLn('Mercredi') ;
jeu : WriteLn('Jeudi') ;
ven : WriteLn('Vendredi') ;
sam : WriteLn('Samedi') ;
Else WriteLn('autre, ', Ord(today)) ;
End;
END.
Remarque : La fonction Chr() réciproque de Ord()
dans le cas de la table ASCII ne s'applique pas aux
types intervalles et énumérés.
La partie déclarative de cet exemple :
Type jours=(dim, lun, mar, mer, jeu, ven, sam) ;
Var today : jours ;
aurait très bien pu être racourcie en :
Var today : (dim, lun, mar, mer, jeu, ven, sam) ;