Vous êtes sur la page 1sur 3

PTSI 2012-2013

Algorithmique

Lycee Benjamin Franklin


D. Blotti`ere

TD n1
Introduction
1. Quest-ce que lalgorithmique ?
Larticle Algorithmique de lEncyclopdia Universalis debute comme suit.
Lobjet de lalgorithmique est la conception, levaluation et loptimisation des methodes de calcul en mathematiques et en informatique. Un algorithme consiste en la specification dun schema de
calcul, sous forme dune suite doperations elementaires obeissant
`
a un enchanement determine.
En mathematiques, on peut par exemple sinteresser `a des algorithmes repondant aux probl`emes suivants.
Calculer un  grand nombre  de decimales de nombres tels que ou e.
Resoudre un syst`eme lineaires dequations (e.g. algorithme du pivot de Gau).

Etant
donnee une fonction f definie sur un intervalle I, telle que lequation f (x) = 0 admette une unique
solution dans I, determiner une valeur approchee (avec une precision fixee `a lavance) de (cf. methode
de dichotomie).
Calculer une valeur approchee dune integrale (cf. methode des rectangles, methode des trap`ezes).

2. Un premier exemple dalgorithme

(a) Enonc
e du probl`
eme `
a r
esoudre
On se propose de construire un algorithme, sans utiliser la fonction racine carree, qui etant donne un
entier naturel n fixe, affiche 1 si n est le carre dun entier naturel et 0 sinon.
(b) Analyse du probl`
eme
Dans un premier temps, on peut penser `a calculer les carres de tous les entiers naturels :
02 = 0, 12 = 1, 22 = 4, 32 = 9, 42 = 16, 52 = 25, 62 = 36, 72 = 49, . . .
puis `
a regarder si lentier n donne au depart apparat dans cette liste. Le probl`eme de cette approche
quelque peu nave est que la liste des carres est infinie, or un algorithme doit sarreter apr`es un nombre
fini de calculs.
Pour corriger ce defaut, on observe que n est le carre dun entier si et seulement sil apparat dans la liste
des carres des entiers naturels k tels que k 2 n. Le nombre dentiers naturels k tels que k 2 n etant fini,
on a bien resolu le probl`eme souleve precedemment.
Voici donc comment on peut proceder.
1. On calcule la liste des k 2 , o`
u k est un entier naturel tel que k 2 n (nombre fini de calculs).
2. On regarde si lentier n apparat dans la liste precedente : si cest le cas, alors on affiche 1, sinon on
affiche 0.
(c) Un algorithme r
epondant au probl`
eme pos
e, bas
e sur lanalyse pr
ec
edente
On commence par dresser la liste des variables qui seront utiles :
variables i, j, nbelt contenant un entier ;
variable res contenant un booleen ;
variable L contenant une liste.

On donne alors un algorithme ecrit en metalangage (langage `a mi-chemin entre le francais et un langage
de programmation).
Algorithme 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

i0
res 0
L liste vide
Tant que (i2 n) Faire
L ( L augmentee de lelement i2 place en bout de liste)
ii+1
Fin du Faire
nbelt nombre delements de la liste L
j1
Tant que ((j nbelt) et (res = 0)) Faire
Si le j-i`eme element de liste L est egal `a n alors
res 1
Fin du Si
j j+1
Fin du Faire
Afficher(res)

Question 1 : Commenter ligne `


a ligne lalgorithme 1 et le critiquer.
(d) Impl
ementation de lalgorithme pr
ec
edent en Maple
` titre dexemple, on traduit ci-dessous lalgorithme 1 en Maple.
A
Programme 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

i :=0 :
res :=0 :
L :=[ ] :
while (i**2 <= n) do
L := [op(L),i**2] :
i :=i+1 :
od :
nbelt :=nops(L) :
j :=1 :
while ((j <= nbelt) and (res=0)) do
if (L[j]=n) then
res :=1 :
end if :
j :=j+1 :
od :
print(res) :

Question 2 : Comparer ligne `


a ligne le programme 1 et lalgorithme 1.

3. Exercices
Exercice 1
Soient i, j deux variables contenant chacune un entier. On consid`ere lalgorithme suivant.
Algorithme 2
1
2
3
4
5
6

i2
j1
i2ij
i2ij
ij
ji

Donner ligne `
a ligne les valeurs des variables i et j.

Exercice 2
Soient a, b deux variables contenant des valeurs enti`eres que lon ne connat pas.

Ecrire
un algorithme qui echange les valeurs contenues dans a et b.
Exercice 3
Soient x, y deux variables contenant chacune un nombre reel.

Ecrire
un algorithme qui affiche 1 si le produit des deux valeurs contenues dans x et y est positif et 0 sinon.
Exercice 4
On introduit des variables :
variable i contenant un entier ;
variable res contenant un booleen ;
et on consid`ere lalgorithme suivant.
Algorithme 3
1
2
3
4
5
6
7
8
9
10
11

i0
res 0
Tant que (i2 n) Faire
Si (i2 = n) alors
res 1
Fin du Si
ii+1
Fin du Faire
Afficher(res)

1. Que fait cet algorithme ?


2. Comparer les algorithmes 1 et 3 (nombres de variables, tailles des variables, temps dexecution, . . . ).