LCSTP3 3

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 3

I J S

s=0; 0
TP : Langage de calcul scientifique
for i=1:3 1 1 1
TP 3: Structures de contrôle. for j=1:3 2 2
Matlab dispose de structures de contrôle suivantes : for (boucle avec s=s+1; 3 3
compteur), while (repétitive prétestée), if (alternative), switch (choix end 2 1 4
ventilé). Toutes ces structures se terminent par un end. 2 5
end
1) La boucle FOR 3 6
s I J S
La syntaxe de la répétitive avec compteur de Matlab est la suivante. 3 1 7
For compteur = debut :pas :fin
s= 9 2 8 0
exemple 2 : Remarquer bien la 3 9 1 1
Instruction 1
déférence 2
.
s=0; 3
.
for i=1:3 1
Instruction n for j=1:3 2 1
End
2
Les constantes réelles début et fin sont les bornes inf et sup de l'intervalle
End 3
à parcourir. La constante (positive ou négative) pas est l'incrément, qui
s=s+1; 2
vaut 1 par défaut. L'exécution de la boucle se termine lorsque la variable end
compteur devient plus grande que fin (cas d'un incrément positif ), ou plus 3 1
S 2
petite que début (cas d'un incrément négatif). Exemple 3 :
Exemple 1 : I J S 3
s=0;
s=0; for i=1:3
0 3
1 -1
for i=1:10 s=s-1; 2 -2
s=s+4; end
Résultat S=40 3 -3
end for j=1:5 1 -2
s s=s+1; 2 -1
Exemple 2: end 3 0
Calculer le 5ième terme de la suite de Fibonacci (u0 = u1 = 1) s 4 1
UN = UN-1 + UN-2, s= 2 5 2

n=5; Exemple 4 : 1 0 0 0 0 0
u(1)=1; u(2)=1; Le triangle de Pascal 1 1 0 0 0 0
a=eye(6);
for i=3:6 Résultat u = 1 1 2 3 5 8 a(:,1)=1;
1 2 1 0 0 0
u(i)=u(i-1)+u(i-2); 1 3 3 1 0 0
end for i=3:6 1 4 6 4 1 0
for j=2:i-1
u a(i,j)= a(i-1,j)+a(i-1,j-1); 1 5 10 10 5 1
2) Boucles imbriquées : end
Ces boucles peuvent être imbriquées comme dans l’exemple suivant : end
a
3) La boucle WHILE: 4) La structure alternative if :
La boucle while consiste à executer une sequence d’instruction tant qu’une La syntaxe de cette alternative est la suivante :
condition est vérifiée. If expression_logique
La syntaxe de la boucle while est : Instructions I
While expression-logique Else
……. Instructions II
end End
ou expression_logique est en général un test . pour éviter une boucle sans
fin, les instruction dans le corps de la boucle doivent impérativement agir La séquence d'instructions instructions I est exécutée si expression_logique
sur le résultat de expression_logique. est vraie, sinon c'est la séquence d'instructions instructions II qui est
Exemple 1 : exécutée. A noter que la partie else peut être facultative. Dans ce cas
s=0; l'alternative se réduit à
i=1; if expression_logique
while i<=10 instructions I
Résultat S=40
s=s+4; end
i=i+1; L'alternative complète a pour syntaxe
end
if expression_logique 1
s
instructions I
Exemple 2:
Elseif expression_logique n
Ce programme calcul les termes de la suite de Fibonacci (u0 = u1 = 1) et
instructions N
s’arrête si Un>8 : UN = UN-1 + UN-2,
u(1)=1; u(2)=1; i=2 ; else
while u(i)<=8 instructions par défaut
résultat : u=1 1 2 3 5 8 13 end
i=i+1
u(i)=u(i-1)+u(i-2); L’instruction switch : exécute des groupes d’instructions selon la valeur
end d’une variable ou d’une expression. Chaque groupe est associé à une
u clause case qui définit si ce groupe doit être exécuté ou pas selon l’égalité
Boucles while imbriquées : de la valeur de ce case avec le résultat d’évaluation de l’expression de
Ces boucles peuvent être imbriquées comme dans l’exemple suivant : switch. Si tous les cases n’ont pas été acceptés, il est possible d’ajouter une
i=0;s=0 clause otherwise qui sera exécutée seulement si aucun case n’est
while i<=3 exécuté.
j=0;
while j<=3
s=s+1;
j=j+1; Résultat s = 16
end
i=i+1;
end s
Syntaxe Exemple
switch (expression) mois = 7; % Par exemple, 7 correspond
case valeur_1 à juillet
Groupe d’instructions 1 switch mois 5) Étude expérimentale
case valeur_2 case {12, 1, 2} Exercice1
Groupe d’instructions 2 disp('Hiver');
... case {3, 4, 5}
En utilisant la boucle for écrire un programme qui
case valeur_n disp('Printemps'); demande un nombre N puis calcule et affiche la
Groupe d’instructions n case {6, 7, 8}
otherwise disp('Été');
somme suivante :
Groupe d’instructions si tous case {9, 10, 11}
les cases ont échoué disp('Automne');
end otherwise
disp('Mois inconnu');
end
. Réécrire le programme avec la boucle while.
3.2 Exercice 2
En utilisant la boucle for écrire un programme Matlab
Remarque : qui lit un d’un nombre N puis
Les opérateurs de comparaison sont : calcule et affiche son factoriel N!. Réécrire le
== : égale à (X==Y) ; > : Strictement supérieur à (X > Y) ; < programme avec la boucle while.
: Strictement 3.3 Exercice 3
inférieur à (X< Y) ; >= : supérieur ou égale à (X>= Y) ; <= : Ecrire un programme sous Matlab qui résout le
inférieur ou égale à problème suivant :
(X<= Y) ; = : différent de (X =Y) ; Lire la valeur de x
Les opérateurs logiques sont : Si x < 0 alors y = 1
& : et (and) (X&Y ) ; | : ou (or) (X | Y ) Si x > 0 alors y = -1
Si x = 0 alors y = 0
Affiche la valeur de y

Vous aimerez peut-être aussi