Vous êtes sur la page 1sur 13

EXERCICES

D'ALGORITHMIQUE
1
re
et terminale L spcialit math

CONTENU DU DOSSIER

1. Dcouvrir l'algorithmique : petits algorithmes tester pas pas.
Affecter des variables
Le programme SOMME
2. Un test logique :
SI ALORS : programme DELTA
3. Les boucles :
La boucle POUR : programme SUITE arithmtique
La boucle TANT QUE : programme BASE b
4. Un programme sur tableur : l'algorithme d'Euclide.
5. Sensibiliser la vitesse d'excution :
Nombre d'oprations effectues dans un calcul : programme HORNER (calcul de
l'image d'un rel par un polynme)
Rsolution d'une quation par DICHOTOMIE ( comparer la mthode par balayage)
6. Rinvestir ces connaissances : la suite de SYRACUSE.

Prambule
ALGORITHMIQUE
tymologie : espagnol alguarismo, de l'arabe al huvarizmi, d'aprs le surnom du mathmaticien du
IX
e
sicle Abdallah Muhammad ibn Musa
ALGORITHME, n. m. En algbre, procd de calcul.

Objectif : proposer une organisation dactions (calculs souvent) conduisant un rsultat non
vident et qui va pouvoir tre cod en langage informatique, cest linterface entre la pense et le
langage informatique (binaire, hexadcimal) bien pauvre en outils syntaxiques pour comprendre le
langage naturel .

Mthode : organiser les tches (ordonnancement) tape par tape, exprimes dans un langage
simpliste le plus proche de la traduction en machine.
Structure globale : Entre Traitement Sortie

Les trois tapes incontournables de linformatique.
A. Entre des donnes (linformation traiter) au clavier, par fichier, scanner
B. Traitement : cest la partie essentielle du travail, prpare par lalgorithme afin de trouver un
rsultat (une nouvelle information) partir des donnes fournies en entre.
C. Sortie : voir le rsultat bien sur ! A lcran, sur papier

1L_TL_algorithmique.doc Page 1 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

AFFECTER UNE VARIABLE

Qu'obtient-on l'cran lorsque l'on programme l'algorithme suivant ? (Tester l'algorithme pas pas)
Programme en langage naturel Testez en parallle
Demander A
Demander B
Affecter la valeur de A B
Affecter la valeur de B A
Afficher A
Afficher B

Conclusion ?



EFFECTUER UNE SOMME
Qu'obtient-on l'cran lorsque l'on programme les algorithmes suivants ? (Tester l'algorithme pas
pas) exemple 1 :
Entre Demander A Testez en parallle
Traitement Affecter la valeur de A S

Faire 10 fois la procdure suivante
Affecter la valeur de S+1 S


Sortie Afficher S
Conclusion ?



Exemple 2 :
Programme Testez en parallle
Donner S la valeur 0

Dbut de la boucle
Demander A
Donner S la valeur S+A
Recommencer au dbut de la boucle jusqu' ce
que A=0

Afficher S

Conclusion ?





1L_TL_algorithmique.doc Page 2 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Algorithme et Programmation calculatrice
Un algorithme est un nombre fini de rgles appliquer dans un ordre dtermin un nombre fini de
donnes, pour arriver en un nombre fini dtapes, un certain rsultat.
Conversion dun nombre a donn en base 10 dans la base b
Algorithme
Organigramme en franais
Programmation TI 83
Programme de conversion en base : b


Prgm
Input a
Input b


Lbl jo


int(a/b)q

a-b*qr
Disp r
qa



If q>0 Then
Goto jo
EndIf



EndPrgm

Commentaires
crit par la calculatrice
Instruction de saisie



tiquette de branchement


Partie entire de a/b et affectation la
mmoire q

Calcul du reste affect r
Instruction daffichage
Valeur de q affecte a


SI q vaut 0 alors on branche
ltiquette
Sinon on passe



crit par la calculatrice

Recopie crans TI89
Traitement informatique : avec une calculatrice
Type dinstruction En langage naturel Casio Texas
Attente des donnes de
lutilisateur
Entrer N et B ? N
? B
Input N
Input B
Point de branchement et
Dbut de la boucle
Mettre une tiquette Lbl 0 Lbl 1
Affectation Donner Q la valeur E (N/B) Int(N/B) Q Int(N/B) Q
Affectation Donner R la valeur N B*Q NB*Q R NB*Q R
Affichage Afficher R
R
Disp R
Affectation Donner N la valeur Q Q N Q N
Branchement conditionnel Aller (dbut de la boucle) si A > 0 If Q > 0
Then Goto 0
If End
If Q > 0
Then Goto 1
EndIf
Entre
Les nombres a et b
Traitement
Calcul du quotient entier de la
division de a par b : q
Calcul du reste div. Euclid : r
Affichage de r (sortie)
q-----> a
r = 0
VRAI
FIN
1L_TL_algorithmique.doc Page 3 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net


Mmento calculatrices Casio et TI - Programmation




Traitement informatique : avec un tableur
Type dinstruction En langage naturel
Attente des donnes de lutilisateur Entrer N et B
Point de branchement et
Dbut de la boucle
Mettre une tiquette
Affectation Donner Q la valeur E (N/B)
Affectation Donner R la valeur N B*Q
Affichage Afficher R
Affectation Donner N la valeur Q
Branchement conditionnel Aller (dbut de la boucle) si A > 0
1L_TL_algorithmique.doc Page 4 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

LA BOUCLE SI ALORS SINON .

Pour un polynme donn
2
( ) P x ax bx c = + + , le programme suivant affiche le discriminant
D et les solutions ventuelles. S'il n'y en a pas, il affiche "Pas de solutions".
Rappels mathmatiques sur la forme canonique
et son intrt pour rsoudre
2
0 ax bx c + + =
2 2
2
4
( )
2 4 2 4
b c b b c b b ac
P x ax bx c a x x a x a x
a a a a a a a
( (
| | | | | |
= + + = + + = + + = +
( (
| | |
\ \ \
( (

pour
pouvoir factoriser la dernire expression il faut avoir une diffrence de carrs donc que :
2
4 0 b ac ; on appelle
2
4 b ac le discriminant, sil est positif (ou nul) on peut
factoriser et donc rsoudre avec
2 2
2
4 4
0
2 2
b b ac b b ac
ax bx c a x x
a a
| || |
+ +
+ + = + = | |
| |
\ \

L'algorithme en langage naturel :
Demander A
Demander B
Demander C
Affecter la valeur de B - 4 AC D
Afficher D
Si D > 0 Alors affiche Pas de solution
Sinon Si D = 0
Alors Afficher 1 solution : - B / 2A
Sinon Afficher 2 solutions distinctes : (- B + Racine(D))/2A ; (- B - Racine(D))/2A
Voici cet algorithme traduit en langage machine :
Commentaires TI CASIO
Il faut avant tout ouvrir une page pour crire le programme.
La calculatrice attend que vous donniez un nom au programme.
Le curseur est un A, ce qui veut dire quelle fonctionne en mode
alphabtique, comme une machine crire.
Vous pouvez maintenant commencer lcriture du programme.


La calculatrice vous demandera de rentrer les valeurs A, B et C
et les gardera en mmoire.
Elle calcule Delta et le garde en mmoire sous le nom de D.
Elle affiche Delta.
Si 0 >

Alors affiche qu'il y a deux solutions.
Elle calcule ces deux solutions puis les affiche sous forme de
fraction.
Sinon
Si 0 =
Alors
La calculatrice affiche qu'il y a une solution,
Elle affiche cette solution
Sinon
Elle affiche qu'il n'y a pas de solution.
Fin de la boucle Sialors.
PRGM DELTA
NEW
Ecrire : DELTA
Puis taper sur ENTER
La calculatrice affiche :
PROGRAM :DELTA
:PROMPT A,B,C
:B
2
-4AC D
:DISP "DELTA",D
:If D>0
:Then
:Disp "2 sol"
:Disp(- - ) /(2 ) B D A
Frac,
(- ) /(2 ) B D A + Frac
:Else
:If D=0
:Then
:Disp "1 sol",
Disp - /(2 ) B A Frac
:Else
:Disp "0 sol"
:End

MENU PRGM
NEW
Ecrire : DELTA
Puis taper sur EXE
La calculatrice affiche :
==== DELTA ====
"A?":? A
"B?":?B
"C?":?C
B
2
-4AC D
"D=":D
If D>0
Then "2 sol"
"X=":(- - ) (2 ) B D A
"Y=":(- ) (2 ) B D A +
Else If D=0
Then "1 sol"
"X=":- (2 ) B A
Else "0 sol"
I-End
I-End
Quitter aprs le dernier mot du programme sans rien crire de
plus.
QUIT EXIT
1L_TL_algorithmique.doc Page 5 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Pour excuter le programme.

TI CASIO
PRGM
Choisir le programme DELTA puis ENTER
La calculatrice affiche prgmDELTA
Faire ENTER
La calculatrice affiche A?
Entrer la valeur de A, ENTER
De mme avec B et C.
A la fin la calculatrice affiche Done
MENU PRGM
Choisir le programme DELTA puis EXE
La calculatrice affiche A?
Entrer la valeur de A, EXE
De mme avec B et C.
A la fin la calculatrice affiche FIN
O trouver les commandes pour crire les programmes ?
TI CASIO
Commandes pour les caractres alphabtiques
Les lettres et les guillemets " " sont sur le clavier de
la calculatrice et sobtiennent avec la touche
ALPHA comme tous les symboles en haut droite
des touches.
A-LOCK bloque la calculatrice en mode
alphabtique.
Attention ! Les espaces que vous voyez dans ce
programme ne sont pas obtenus par la touche
ALPHA de votre clavier mais sont
naturellement associs aux instructions des
touches de programmes.
Les lettres sont sur le clavier de la calculatrice et
sobtiennent avec la touche ALPHA comme tous les
symboles en haut droite des touches.
A-LOCK bloque la calculatrice en mode alphabtique.
Les guillemets " " sont obtenus en appuyant sur ALPHA
mais au bas de lcran.
Attention ! Les espaces que vous voyez dans ce
programme ne sont pas obtenus par la touche ALPHA
de votre clavier mais sont naturellement associs
aux instructions des touches de programmes.
Commandes pour les caractres mathmatiques
/ est la division
* est la multiplication
est le signe opratoire de la soustraction. A ne
pas confondre avec
(-) qui se met en dbut de calcul et dsigne le
signe du premier nombre.
> est dans le menu TEST.
Frac est dans le menu MATH.
est le signe opratoire de la soustraction. A ne pas
confondre avec
(-) qui se met en dbut de calcul et dsigne le signe
du premier nombre.
> est dans le menu PRGM REL.
En rgle gnrale, penser appuyer sur la en bas
droite de lcran si vous ne trouvez pas une commande.
Commandes pour les instructions usuelles des programmes
: sinscrit dans un programme chaque fois que
vous taper sur ENTER pour aller la ligne.

Prompt qui permet d'entrer les valeurs et de les
mettre en mmoire se trouve dans le menu PRGM
puis I/O. Ou bien DISP suivi de INPUT.

sobtient en appuyant sur STO, en bas gauche
de votre clavier de calculatrice.

sinscrit dans un programme chaque fois que
vous taper sur EXE pour aller la ligne.

? qui signifie invite moi entrer une valeur (et qui
sur certaine calculatrice se traduit par un ? lorsque le
programme est excut) se trouve dans le menu PRGM
(obtenu par SHIFT VARS) puis .
est un ordre que vous donnez la calculatrice et
signifie : affiche lcran la valeur calcule (lorsquil
sagit dun calcul). Il se trouve lui aussi dans le menu
PRGM puis .

est sur le clavier.
Commandes particulires pour les boucles et les tests
IF (en franais SI), THEN (en franais
ALORS) , ELSE (en franais SINON)
WHILE (TANT QUE)
se trouvent dans le menu PRGM puis CTL (il s'agit
des contrles).
IF (en franais SI), THEN (en franais ALORS) ,
ELSE (en franais SINON), I-End (fin de la boucle
SI)
WHILE (TANT QUE)
se trouvent dans le menu 2
nd
PRGM puis COM (il s'agit
des commandes).
Pour revenir un menu principal, penser utiliser la
touche 2
nd
QUIT.
Pour revenir un menu principal, penser utiliser la
touche EXIT.
1L_TL_algorithmique.doc Page 6 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Pour effacer un programme.

TI CASIO
2
nd
mem
puis choix 2 : mem Mgmt/Del
et choix 7 : prgm
Placer le curseur devant le ou les programme(s)
effacer et appuyer sur enter
puis DEL et YES.
Dans le menu PROG, placer le curseur sur le
programme effacer et choisir le menu DEL.


SUITES

Le programme suivant calcule les termes successifs d'une suite arithmtique, lorsqu'on
entre le premier terme
0
u , la raison et le nombre de termes souhaits.
Algorithme :

Demander
0
u
La raison r
Le rang n du dernier terme

Pour i allant de 1 n
Affecter la valeur de U r + U
Afficher U

Voici comment cet algorithme peut se traduire en langage machine :

Commentaires
TI CASIO







TI : Pause permet d'arrter le dfilement des valeurs
Disp "U0"
Input U
Prompt R
Prompt N
For(I,1,N)
U+RU
Disp U
Pause
End
"U0":? U
"R":? R
"N":? N
For 1 I To N
U+RU
U
Next


1L_TL_algorithmique.doc Page 7 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

La boucle TANT QUE
Le programme suivant donne l'criture en base B d'un nombre entier N crit en base 10.
1. Dterminer l'criture de 2123 en base 5.
2. Donner les valeurs successives du dividende N, du quotient Q et du reste R.
tapes N (dividende) Q (quotient) R (reste)
2123 424 5 3 = +
424 84 5 4 = +
84 16 5 4 = +
16 3 5 1 = +
3 0 5 3 = +
3. Qu'est ce qui provoque l'arrt de cette suite de divisions ? Autrement dit, quel est le test d'arrt ?
4. La fonction INT de la calculatrice donne la partie entire d'un nombre.
A l'aide de cette fonction, comment obtient-on le quotient de la division euclidienne de N par B ? En
dduire le reste de la division.
5. Complter l'algorithme :
Demander
Demander
Affecter la valeur de N Q
Tant que faire
Affecter la valeur de . Q
Affecter la valeur de . R
Afficher .
Affecter la valeur de . N
Fin Tant Que
Voici comment cet algorithme peut se traduire en langage machine :
Commentaires TI CASIO
Il faut avant tout ouvrir une page pour crire le
programme.
La calculatrice attend que vous donniez un nom au
programme. Le curseur est un A, ce qui veut dire quelle
fonctionne en mode alphabtique, comme une machine
crire.
Vous pouvez maintenant commencer lcriture du
programme.

La calculatrice vous demandera de rentrer une valeur N
puis une valeur B. Elle stockera ces valeurs dans la
mmoire N et dans la mmoire B.


Tant que le contenu de Q est strictement positif,
la calculatrice remplace le nombre N par Q.
Elle fait la division euclidienne de N par B et ne garde
que la partie entire.
Elle calcule le reste de la division euclidienne de N par B
et le stocke dans la mmoire R.
La calculatrice arrte le programme lorsque Q = 0.
PRGM
NEW
Ecrire : BASE

Puis taper sur ENTER
La calculatrice affiche :
PROGRAM :BASE


:DISP "N"
:INPUT N
:DISP "B"
:INPUT B
:NQ
:While Q>0
:Int(N/B)Q
:NQ*BR
:Disp R
:Pause
:QN
:End

MENU PRGM
NEW
Ecrire : BASE

Puis taper sur EXE
La calculatrice affiche :
====BASE ====

"N"
?N
"B"
?B
NQ
While Q>0
Int(N/B)Q
NQ BR
R
QN
WhileEnd
"FIN"
Stop
Quitter aprs le dernier mot du programme sans rien
crire de plus.
QUIT QUIT

1L_TL_algorithmique.doc Page 8 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

TESTER UN ALGORITHME
Voici un algorithme de passage de la base 10 la base B :

DEBUT
Nombre N
Base B
0I
0A
TANT QUE 0 N >

I
A+RESTE(N/B) 10 A
QUOTIENT de la division de N par B N
I+1 I
FIN TANT QUE
AFFICHER (A)
FIN
Questions :
1. Tester cet algorithme pour N =111 et B=5 (Ecrire toutes les tapes).
2. Prcisez ce que l'utilisateur obtient sur l'cran de la calculatrice pour un nombre N.
3. Cet algorithme fonctionne-t-il pour une base suprieure ou gale 10 ? Justifier.

PROGRAMMATION SUR TABLEUR
Indication : Vous pourrez utiliser la fonction MOD : MOD(nombre ; diviseur) renvoie le reste d'une
division. Voici une feuille de calcul sur tableur :







1. Que permet-elle de calculer ?
2. Quelle formule a t crite en A3, B3 et C2 ?
3. Comment obtient-on les rsultats dans les plages de cellules (A4 : A8) et (C3 : C8) ?
Expliquez le message derreur qui apparat dans cette feuille.

A B C
1 a b reste
2 4998 4746 252
3 4746 252 210
4 252 210 42
5 210 42 0
6 42 0 #DIV/0!
7 0 #DIV/0! #DIV/0!
8 #DIV/0! #DIV/0! #DIV/0!
1L_TL_algorithmique.doc Page 9 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Hrner
Remarque : Soit ( ) P x un polynme de degr 3 n = . ( ) P x peut s'crire sous la forme suivante :
2 3
0 1 2 3
2
0 1 2 3
0 1
( )
( )
( ( ))
P x a a x a x a x
a x a a x a x
a x a x
= + + +
= + + +
= + +
2 3
a + xa

On peut utiliser cette forme pour calculer l'image d'un rel x
0
par P.
C'est la mthode de Hrner.
Algorithme :
Demander le degr n du polynme
la valeur de x
0

les coefficients du polynmes
Affecter la valeur de a
n
A

Pour i allant de n 1
affecter la valeur de
1 i
Ax a

+ A
Afficher A.

Voici comment cet algorithme peut se traduire en langage machine :

Commentaires TI CASIO

prompt N,X

"N" : ? N
"X" : ? X
TI : Vide la liste L
1
du mode statistique.
clrlist L
1


casio : Annonce la dimension de la liste (sur une GRAPH 35)
N+1 Dim List1
Demande les coefficients du polynme puis les met dans la
liste 1.
TI : L'utilisateur devra entrer les coefficients sous cette
forme : { } 2;1;3
casio : donner les coefficients dans l'ordre
0 1 2
; ; ... a a a
Disp "{ }
0 1 2
; ; ; ... a a a "
input L
1





for 1 I to N+1
"coef ?" : ?
List1[I]
next

remarque : les coefficients sont indics de 0 n mais les
lments de la liste sont numrots de 1 1 n + .

Lorsque I dcrmente, il faut prciser le pas : -1
L
1
(N+1) A

for (I, N+1, 2, -1)
1
( 1) A X L I A +
end

Disp A
List1[N+1] A

for N+1 I to 2 step 1
List1[ 1] A X I A +
Next

A
Remarque : Sur une GRAPH 25 il faut remplacer l'instruction N+1 Dim List1 par :
seq(0,X,1,N+1,1) List 1
(Ce qui revient remplir la liste 1 de N+1 zros)
1L_TL_algorithmique.doc Page 10 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Questions :
1. Tester cet algorithme avec
2 3 4
( ) 2 4 3 2 0, 5 P x x x x x = + + et
0
7 x = .
2. Ecrire ce polynme sous la forme prsente en introduction puis dterminer le nombre d'oprations
effectues (additions et multiplications) pour calculer P(7).
3. Compter le nombre d'oprations effectues pour le calcul suivant :
2 3 4
(7) 2 4 7 3 7 2 7 0, 5 7 P = + +
4. Ecrire l'algorithme qui permet de calculer l'image de x
0
comme dans le calcul prcdent.
TI CASIO
prompt N,X

"N" : ? N
"X" : ? X
clrlist L
1


N+1 Dim List1
Disp "{ }
0 1 2
; ; ; ... a a a "
input L
1





for 1 I to N+1
"coef ?" : ?
List[1]
next

L
1
(1) A

for (I, 2,N+1)
1
1
( )
I
L I X A A

+
end

Disp A
List1[1] A

for 2 I to N+1
1
List1[ ]
I
I X A A

+
Next

A
Pour comparer les vitesses d'excution des deux programmes prcdents (calcul de l'image d'un
nombre par un polynme) sur les calculatrices TI, on pourra les faire tourner avec le polynme de
degr 100 et dont tous les coefficients sont 10 : seq(10,K,1,101,1)
(Avec X=2 ; 4 secondes avec Hrner et 7 secondes avec l'autre !)

Pour information : Pour un polynme de degr n :
Le nombre d'oprations avec l'criture
2 1
0 1 2 1
...
n n
n n
a a x a x a x a x

+ + + + + est de l'ordre de
2 2
3
plus prcisment
2 2 2
n n
n
| |
+
|
\

Le nombre d'oprations avec l'criture
0 1 2 3 1
( ( ( ... ( ) ... )
n n
a x a x a x a a xa

+ + + + + est de l'ordre de
2n.

1L_TL_algorithmique.doc Page 11 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Dichotomie
Le programme suivant donne un encadrement d'amplitude choisie d'une solution de
lquation ( ) 0 f x = . Il ncessite de connatre un intervalle o se situe la solution.
Algorithme :
Demander l'amplitude E
Les bornes de lintervalle : A et B
La fonction f.
Tant que l'amplitude de l'intervalle [A;B] est suprieure E :
Dterminer le centre de l'intervalle [A;B]
Affecter cette valeur C.
Regarder si la solution se situe dans l'intervalle [A ; C] ou [C ; B]
Recommencer avec l'intervalle o se situe la solution.
Afficher A et B.
Voici comment cet algorithme peut se traduire en langage machine :
Commentaires TI CASIO
TI : L'utilisateur entrera la fonction
avec des guillemets.
Par exemple : " 2X-3 "

casio : L'utilisateur devra aller
dans le mode GRAPH entrer la
fonction avant d'excuter le
programme.

casio : Pour calculer l'image de C
par Y1 :
CX
Y1Y

input "Y
1
=", Y
1
prompt E, A, B

While abs(A-B)>E
(A+B)/2 C

if
1 1
( ) ( ) 0 Y C Y A
then
CB
else
CA
end

End

Disp A, B
"A":? A
"B":? B
"E":? E

While Abs(A-B)>E:Do
(A+B)/2 C
CX
Y1Y
AX
Y1Z
If 0 Y Z
Then CB
Else CA
IfEnd
WhileEnd
A
B
Stop
Questions :

1. Tester cet algorithme pas pas avec 0,1 E = ; [ ] 0; 2 I = ; ( ) 2 3 f x x = .
Quelles sont les valeurs de A et B affiches ?
2. 1, 4375 A = et 1, 5 B = .
a) Donner une valeur approche par excs
1
10

de la solution.
b) Donner une valeur approche par dfaut
1
10

de la solution.
c) Peut-on donner une valeur arrondie
1
10

de la solution avec ces valeurs de A et B ?


Justifier.
d) Quelle amplitude faut-il prendre pour avoir une valeur arrondie
1
10

de la solution ?
3. La solution de l'quation ( ) 0 f x = est
3
2
. Quelle instruction peut-on ajouter la fin du programme
pour qu'il ne donne que A (ou que B) lorsque c'est la solution exacte ?
1L_TL_algorithmique.doc Page 12 sur 13 Dossier de travail : juillet 2008
Jacques.ourliac@laposte.net

Suite de Syracuse
La suite de Syracuse est dfinie par
0
u

et
1
n
si est pair
Pour tout , 2
3u 1 si est impair
n
n
n
u
n
n u
u
+


1) Calculer les premiers termes de la suite pour
0
1 u = ;
0
3 u = et
0
7 u = .
On ne sait pas l'heure actuelle s'il existe un entier u
0
pour lequel cette suite n'atteint jamais 1.
2) crire un programme demandant u
0
et n l'utilisateur et affichant toutes les valeurs
1 2
; ,...
n
u u u .
3) crire un programme demandant u
0
l'utilisateur et affichant toutes les valeurs
1 2
; ,...
N
u u u o N est
le plus petit entier k

tel que 1
k
u = .
4) Modifier votre programme pour qu'il affiche en plus N et le plus grand lment de la squence (u
0
,
, u
N
)
Rponses :
1) Pour
0 1 2 3
1: 4, 2, 1 u u u u = = = = u
0
=1, u
1
=4, u
2
=2, u
3
=1
2) Demander u
0

Demander n
Affecter la valeur de u
0
U
Pour i allant de 1 N
Si U est pair
Affecter la valeur de U/2 U
Sinon
Affecter la valeur de 3U+1 U
Fin Si

Afficher U
Fin de la boucle
Afficher U

3) Demander u
0

Affecter la valeur de u
0
U
Tant que 1 U
Si U est pair
Affecter la valeur de U/2 U
Sinon
Affecter la valeur de 3U+1 U
Fin Si
Afficher U
Fin Tant que

4) Demander u
0

Affecter la valeur de u
0
U
Affecter la valeur 0 N
Affecter la valeur de U V
Tant que 1 U
Affecter la valeur de N+1 N
Si U est pair
Affecter la valeur de U/2 U
Sinon
Affecter la valeur de 3U+1 U
Fin Si
Afficher U
Si U>V
Affecter la valeur de U V
Fin Tant que
Afficher V
Afficher N

Vous aimerez peut-être aussi