Vous êtes sur la page 1sur 2

BCPST 1.

TP Matlab n6

BOUCLES CONDITIONNELLES WHILE - END

BOUCLES CONDITIONNELLES WHILE END


Il est possible de conditionner lexcution dune boucle au rsultat dun test. Il sagit de la fonction
while end qui signifie tant que .
Voici la syntaxe utiliser :

while test
instruction1
instruction2

end

Remarquer lindentation
qui facilite la lecture.

Si le test est vrifi, les instructions avant le end sont excutes. Sinon Matlab passe aux
instructions suivant le end. Il ny a jamais de else dans une boucle while.
Ne pas oublier de faire voluer la condition au cours de la boucle afin quune sortie soit possible.
Sans cela Matlab part pour une boucle sans fin (il affiche BUSY dans la barre des tches). Il faut
alors taper CTRL + C pour larrter.
1.

Saisie contrle : demander lutilisateur de saisir un entier non nul et vrifier sa saisie avant
dafficher linverse de cet entier. On procdera en trois temps :
- saisie du nombre,
- tant que ce nombre nest pas conforme, rpter la saisie,
- affichage de linverse de ce nombre.

2.

Taper une fonction qui assure la saisie contrle dun entier compris entre a et b qui sont les
paramtres dentre de la fonction.

3.

Algorithme de Syracuse :
- choisir un entier positif non nul.
- sil est pair on le divise par 2, sinon on le multiplie par 3 et on ajoute 1.
- en rptant ce processus, on constate que lon aboutit 1 (personne ne sait le dmontrer !).
- exemple ( complter la main) : 7, 22, 11, 34, 17, 52, 26, 13,

Programmer cet algorithme qui donne la suite des nombres jusqu 1 et indique le nombre
ditrations faites.
4.

Nombre cach : lordinateur pense un nombre entier compris entre 1 et 100 et loprateur
doit le trouver en proposant des nombres. La rponse chaque proposition est trop grand ,
trop petit ou gagn . Programmer ce jeu en indiquant le nombre de tentatives du joueur.

5.

Tirage au sort : lordinateur doit tirer au hasard deux entiers diffrents compris entre 1 et 5.

6.

Tirage sans remise : variante

- en utilisant des tirages rand successifs et en ne conservant que ceux qui nont pas encore
t tirs, raliser une fonction qui tire n < 10 nombres entiers tous diffrents compris entre 1 et 10.

BCPST 1.2

7.

TP Matlab n6

Limite de suite :

- la suite dfinie par u0 = 2 et n , un+1 = 0,5(un+3/un) dcrot vers 3.


- faire un programme demandant la prcision souhaite lutilisateur et calculant le plus
petit indice n tel que |un - 3| .
- en dduire une valeur approche de 3 10-4 prs.
- noubliez pas de taper format long afin que le nombre de dcimales affiches par
MATLAB soit suffisant.
Ce que lon retient :
- la syntaxe de la boucle conditionnelle : while end.
- lexemple de tirage au sort sans rptition.