Considérons les deux programmes suivants ([WIKI_LANG]),
exprimés en langages Visual Basic et Javascool,
qui calculent un prix total à partir d'une quantité et d'un prix unitaire :
Programme Visual Basic |
Programme Javascool |
Sub main( )
Dim quantite As Integer
Dim prixUnitaire As Double
Dim prixTotal As Double
quantite=2
prixUnitaire=10.5
prixTotal=quantite * prixUnitaire
MsgBox("prix total : " & prixTotal)
End Sub
|
void main() {
int quantite;
double prixUnitaire;
double prixTotal;
quantite=2;
prixUnitaire=10.5;
prixTotal=quantite * prixUnitaire;
println("prix total : " + prixTotal);
}
|
Malgré une syntaxe un peu obscure, il est facile de constater que ces deux programmes
expriment une logique commune que l'on peut résumer ainsi :
DÉBUT
quantite = 2
prixUnitaire = 10.5
prixTotal = quantite * prixUnitaire
ÉCRIRE "le prix total vaut : ", prixTotal
FIN
Ce pseudo-code intermédiaire est appelé algorithme ([PISE]).
La notion d'algorithme est antérieure à l'apparition des ordinateurs et désigne tout procédé décrit
de façon suffisamment précise pour pouvoir être appliqué par une personne : recette de cuisine, mode d'emploi,
algorithme du plus grand diviseur commun de deux nombres (Euclide)...
Dans un contexte informatique, cette notion est plus restrictive car un objectif supplémentaire
est de pouvoir ensuite facilement coder un algorithme en un programme (Visual Basic, Java...).
Un algorithme donc être décrit à l'aide de concepts génériques informatisables (entrées-sorties,
instructions conditionnelles, boucles...) dont l'étude sera l'objectif principal de ce cours.
Les notations algorithmiques, qui peuvent varier d'un enseignant à l'autre, ne sont en général
pas exécutables sur ordinateur.
Fort heureusement, il existe quelques logiciels pédagogiques (Larp notamment)
proposant une syntaxe algorithmique à la fois
exécutable et intuitive : nous privilégierons donc la syntaxe de Larp dans ce cours.