Avant-propos VII
des ordinateurs compatibles PC et en Think Pascal sur des ordinateurs Macintosh.
Nous avons retenu la version 4 pour Turbo Pascal et la version 2 pour Think Pascal;
dans les deux cas, il s’agit d’un compromis entre ce qui est disponible sur le march´e et
ce qui est disponible dans les salles de travaux pratiques. Les diff´erences entre les deux
compilateurs sont faibles et sont report´ees, dans la mesure o`u elles sont pertinentes pour
nos programmes, dans l’annexe A.
Le langage de programmation
L’enseignement de la programmation dans les classes pr´eparatoires constitue une in-
troduction `a l’utilisation des ordinateurs pour la r´esolution de probl`emes scientifiques.
Dans cette optique, l’apprentissage de l’informatique est limit´e `a un petit nombre de
concepts, et la pratique de la programmation s’appuie sur un sous-ensemble assez limit´e
du langage Pascal. Ce sous-ensemble comprend les types de base bool´een, entier, r´eel
et, comme type compos´e, les tableaux. Sont en particulier exclus les pointeurs et les en-
registrements, les proc´edures et fonctions r´ecursives. Les d´eclarations de proc´edures et
fonctions se limitent au niveau du programme principal (pas de d´eclaration `a l’int´erieur
d’une proc´edure). Dans la mesure o`u il ne s’agit pas d’enseigner l’informatique, mais
seulement de familiariser les ´el`eves avec l’usage des ordinateurs, les consid´erations sur
les structures de donn´ees ainsi que sur la complexit´e ou la validit´e des algorithmes mis
en œuvre ne figurent pas au programme.
Nous nous effor¸cons, dans ce livre, de respecter ces contraintes. Dans certaines situations,
nous donnons, en plus des programmes it´eratifs, des proc´edures ou fonctions r´ecursives,
pour montrer combien cette ´ecriture peut ˆetre confortable. Parfois, nous d´eclarons aussi
des proc´edures locales `a d’autres proc´edures ou fonctions, dans le but d’en diminuer le
nombre de param`etres. En revanche, nous avons syst´ematiquement respect´e les limita-
tions sur les donn´ees structur´ees.
Les restrictions sur Pascal dans le programme des classes pr´eparatoires sont par ailleurs
fort int´eressantes du point de vue p´edagogique, puisqu’elles mettent `a jour les contorsions
auxquelles on doit se livrer pour repr´esenter des donn´ees structur´ees. Par exemple, un
polynˆome `a coefficients r´eels est naturellement repr´esent´e par un couple form´e d’un entier
qui est le degr´e du polynˆome et d’un tableau de r´eels. La notion de couple (record) ne
figurant pas au programme, le degr´e doit ˆetre int´egr´e dans le tableau des r´eels. Ce genre
de ph´enom`enes a d’ailleurs contribu´e au d´eveloppement de langages de programmation
plus ´evolu´es. Le lecteur averti pourra sans peine introduire, `a de nombreux endroits, des
structures de donn´ees plus appropri´ees.
L’efficacit´e
Quant `a la complexit´e des programmes, on peut faire plusieurs remarques. Les pro-
grammes que nous donnons ne sont pas les plus rapides possibles, loin s’en faut. Notre
souci principal ´etant la clart´e et la structuration, nos programmes comportent de nom-
breux appels de proc´edures ou de fonctions l`a o`u une affectation simple aurait fait gagner
Version 15 janvier 2005