• Aucun résultat trouvé

2. Un premier exemple d’algorithme

N/A
N/A
Protected

Academic year: 2022

Partager "2. Un premier exemple d’algorithme"

Copied!
3
0
0

Texte intégral

(1)

Lyc´ee Benjamin Franklin PTSI−2012-2013

D. Blotti`ere Algorithmique

TD n˚1 Introduction

1. Qu’est-ce que l’algorithmique ?

L’articleAlgorithmiquede l’Encyclopædia Universalis d´ebute comme suit.

L’objet de l’algorithmique est la conception, l’´evaluation et l’opti- misation des m´ethodes de calcul en math´ematiques et en informa- tique. Un algorithme consiste en la sp´ecification d’un sch´ema de calcul, sous forme d’une suite d’op´erations ´el´ementaires ob´eissant

`

a un enchaˆınement d´etermin´e.

En math´ematiques, on peut par exemple s’int´eresser `a des algorithmes r´epondant aux probl`emes suivants.

– Calculer ungrand nombre de d´ecimales de nombres tels queπoue.

– R´esoudre un syst`eme lin´eaires d’´equations (e.g. algorithme du pivot de Gauß).

– ´Etant donn´ee une fonctionf d´efinie sur un intervalleI, telle que l’´equationf(x) = 0 admette une unique solutionαdansI, d´eterminer une valeur approch´ee (avec une pr´ecision fix´ee `a l’avance) deα(cf. m´ethode de dichotomie).

– Calculer une valeur approch´ee d’une int´egrale (cf. m´ethode des rectangles, m´ethode des trap`ezes).

2. Un premier exemple d’algorithme

(a) ´Enonc´e du probl`eme `a r´esoudre

On se propose de construire un algorithme, sans utiliser la fonction racine carr´ee, qui ´etant donn´e un entier naturel nfix´e, affiche 1 sinest le carr´e d’un entier naturel et 0 sinon.

(b) Analyse du probl`eme

Dans un premier temps, on peut penser `a calculer les carr´es 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 l’entier n donn´e au d´epart apparaˆıt dans cette liste. Le probl`eme de cette approche quelque peu na¨ıve est que la liste des carr´es est infinie, or un algorithme doit s’arrˆeter apr`es un nombre fini de calculs.

Pour corriger ce d´efaut, on observe quenest le carr´e d’un entier si et seulement s’il apparaˆıt dans la liste des carr´es des entiers naturelsktels quek2≤n. Le nombre d’entiers naturelsktels quek2≤n´etant fini, on a bien r´esolu le probl`eme soulev´e pr´ec´edemment.

Voici donc comment on peut proc´eder.

1. On calcule la liste desk2, o`uk est un entier naturel tel quek2≤n(nombre fini de calculs).

2. On regarde si l’entier napparaˆıt dans la liste pr´ec´edente : si c’est le cas, alors on affiche 1, sinon on affiche 0.

(c) Un algorithme r´epondant au probl`eme pos´e, bas´e sur l’analyse pr´ec´edente On commence par dresser la liste des variables qui seront utiles :

– variablesi, j,nbeltcontenant un entier ; – variableres contenant un bool´een ; – variableL contenant une liste.

1

(2)

On donne alors un algorithme ´ecrit en m´etalangage (langage `a mi-chemin entre le fran¸cais et un langage de programmation).

Algorithme 1 1 i←0

2 res←0 3 L←liste vide 4

5 Tant que (i2≤n) Faire

6 L←(L augment´ee de l’´el´ementi2 plac´e en bout de liste)

7 i←i+ 1

8 Fin du Faire 9

10 nbelt←nombre d’´el´ements de la listeL 11 j←1

12

13 Tant que ((j ≤nbelt)et(res= 0)) Faire

14 Si lej-i`eme ´el´ement de listeLest ´egal `a nalors

15 res←1

16 Fin du Si

17 j←j+ 1

18 Fin du Faire 19

20 Afficher(res)

Question 1 :Commenter ligne `a ligne l’algorithme 1 et le critiquer.

(d) Impl´ementation de l’algorithme pr´ec´edent en Maple

A titre d’exemple, on traduit ci-dessous l’algorithme 1 en Maple.` Programme 1 1 i :=0 :

2 res :=0 : 3 L :=[ ] : 4

5 while (i**2<= n) do 6 L := [op(L),i**2] :

7 i :=i+1 :

8 od : 9

10 nbelt :=nops(L) : 11 j :=1 :

12

13 while ((j<= nbelt) and (res=0)) do

14 if (L[j]=n) then

15 res :=1 :

16 end if :

17 j :=j+1 :

18 od : 19

20 print(res) :

Question 2 :Comparer ligne `a ligne le programme 1 et l’algorithme 1.

2

(3)

3. Exercices

Exercice 1

Soienti, j deux variables contenant chacune un entier. On consid`ere l’algorithme suivant.

Algorithme 2 1 i←2 2 j←1 3 i←2∗i−j 4 i←2∗i−j 5 i←j 6 j←i

Donner ligne `a ligne les valeurs des variablesietj.

Exercice 2

Soienta,b deux variables contenant des valeurs enti`eres que l’on ne connaˆıt pas.

Ecrire un algorithme qui ´´ echange les valeurs contenues dansaetb.

Exercice 3

Soientx,y deux variables contenant chacune un nombre r´eel.

Ecrire un algorithme qui affiche 1 si le produit des deux valeurs contenues dans´ xety est positif et 0 sinon.

Exercice 4

On introduit des variables :

– variablei contenant un entier ; – variableres contenant un bool´een ; et on consid`ere l’algorithme suivant.

Algorithme 3 1 i←0

2 res←0 3

4 Tant que (i2≤n) Faire 5 Si (i2=n) alors

6 res←1

7 Fin du Si

8 i←i+ 1

9 Fin du Faire 10

11 Afficher(res)

1. Que fait cet algorithme ?

2. Comparer les algorithmes 1 et 3 (nombres de variables, tailles des variables, temps d’ex´ecution, . . . ).

3

Références

Documents relatifs

La procédure DIS opère sur deux tableaux-lignes notés : TAB1CM1,1],. c) Calcul du tableau EFN à partir du tableau NAFI. NAFI donne les classes d'affectation des individus ; EFN

Toutes les justifications doivent figurer sur votre copie, mais la r´edaction doit rester sobre.. Vous pouvez admettre un r´esultat, `a condition de le signaler

Si l’une des famille ci-dessus est libre mais n’est pas une base de R 3 , la compl´ eter en une base de R 3.. D´ eterminer une base et

Pour faire l’analogie avec l’exemple du jeu de cartes, lorsqu’on est ` a la i-` eme ´ etape du parcours, le i-` eme ´ el´ ement est la carte saisie, les ´ el´ ements pr´

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

On souhaite ´ ecrire une fonction recherche mot qui, ´ etant donn´ es deux tableaux m et t, d´ etermine la position de la premi` ere occurrence de m dans t, si elle existe, et

Donner le nombre d’unit´es de caoutchouc et d’acier n´ecessaires. On suppose qu’il veut construire 35 grosses voitures et 25 petites. Quel serait son chiffre d’affaire ?

Exemple 3 (probabilités) : Proposons un algorithme qui simule le lancer d’un dé cubique équilibré un certain nombre de fois et affiche le nombre d’apparitions de