Vous êtes sur la page 1sur 6

Ce qui va suivre, sera la suite des TP de informatique 3 des groupes A3 et B1

TP N° 6
1- Boucles et instructions de contrôles :
Les boucles et les structures de contrôle sont des structures qui permettent le contrôle
de l'exécution des commandes. Ces structures permettent une exécution conditionnelle de
lignes de commandes. Ces lignes de commandes forment ce que l'on appelle
communément un bloc qui est délimité par un mot clé spécifique (for, while, if, …) et le
mot clé end.
1.1- La boucle ' for '
Une boucle est une structure qui permet d'exécuter un certain nombre de fois un
même bloc d'instructions. Dans le cas d'une boucle for, l'ensemble des valeurs pour
lesquelles le bloc est effectué est un ensemble fini, déclaré en début de la structure.
La boucle for possède la syntaxe suivante :
for k = val_init : pas : val_fin
liste des instructions
end
Exemple 1 : Cet exemple permet de calculer les éléments de A = n2 + m2, avec n comprend
des valeurs de 1 à 5 et m comprend des valeurs de 1 à 4.
for n=1 :5
for m=1 :4
A(n,m)=n^2+m^2; % avec indice de ligne n et de colonne m.
end
end
ou bien
for ligne=1 :5
for colonne=1 :4
A(ligne,colonne)= ligne^2+ colonne^2;
end
end >> A =
2 5 10 17
le résultat est une matrice de dimension 5x4 : 5 8 13 20
10 13 18 25
17 20 25 32
26 29 34 41

La boucle for peut s'effectuer sur une variable réelle, et pas seulement sur des entiers,
comme dans l' exemple précédent (voir exemples 2 et 3).

TP N° 6 Page 1
Exemple 2 :
Dans ce deuxième exemple, la variable n prend des valeurs décimales
(n=0.1,0.2,0.3,0.4,0.5) donc l’écriture A(n,m) n’est pas valable car les indices de la matrice
A ne sont pas repérables par des nombres décimaux (il faut utiliser des entiers), c’est pour
cette raison qu’un conteur i est créé pour la variable n et à chaque fois on ajoute le pas 0.1
à l’ancienne valeur de n.
n=0.1; >> A =
for i=1 :5 1.01 4.01 9.01 16.01
for m=1 :4 1.04 4.04 9.04 16.04
A(i,m)= n ^2+ m ^2; 1.09 4.09 9.09 16.09
end 1.16 4.16 9.16 16.16
n=n+0.1; 1.25 4.25 9.25 16.25
end

Exemple 3 (Fig. 1) :
x = -pi : 2*pi/100 : pi;
ligne = 1;
for n = [1,11,3,5,17]
y(ligne,:) = exp(-n*x .^2);
ligne = ligne + 1;
end
plot(x,y)
Fig. 1.
Le vecteur n de cet exemple contient des valeurs organisées d'une manière aléatoire, ce
qui ne permet pas d'écrire y(n , :), pour cela, on a crée le compteur ' ligne ' qui a une valeur
initiale égale à 1 avec un incrément de 1 à chaque itération.

Exemple 4 :
On désire calculer les valeurs du vecteur x dont les composantes sont définies par
l'expression suivante :

()= log ( ) = 1: 2 = 1: 3

for i = 1:2
xtemp = 0;
for j = 1:3
xtemp= xtemp + exp(i)*log(j^2);
end
x(i)=xtemp;
end

TP N° 6 Page 2
Le résultat est :
>> ans
9.7410 26.4788
Pour chaque valeur de i, on calcul toutes les valeurs de j.
Il faut remarquer la création de la variable 'xtemp' (valeur initiale = 0) qui est nécessaire
pour sommer les résultats pour chaque itération de i. Le programme fonctionne donc
comme suit :
pour i=1
xtemp=0
xtemp=0+ exp(1)*log(1^2)=0 % pour j=1
xtemp=0+ exp(1)*log(2^2)=3.7683 % pour j=2
xtemp=3.7683+ exp(1)*log(3^2)=9.7410 % pour j=3
x(1)=xtemp=9.7410
fin
pour i=2
xtemp=0
xtemp=0+ exp(2)*log(1^2)=0 % pour j=1
xtemp=0+ exp(2)*log(2^2)=10.2434 % pour j=2
xtemp=10.2434+ exp(2)*log(3^2)=26.4788 % pour j=3
x(2)=xtemp=26.4788
fin
1.2- La boucle ' while '
La boucle while est une boucle qui exécute un bloc d'instructions tant qu'une condition
qui suit la commande while est vraie.
while condition
instructions
end
Un while est une boucle dont on ne connaît pas a priori le nombre de termes et cet
ensemble de termes peut être infini.
Exemple 1 :
x=1
while x<14
x=x+5;
end
>> ans
1 6 11 16
Ce programme exécute la boucle tant que la condition x<14 est toujours vérifiée. Il
s'arrête une fois la valeur de x est ≥ 14.

TP N° 6 Page 3
Exemple 2 :
x = [0.1, 0.2, 0.5, 1.0, 1.5];
y = [0.95, 0.89, 0.79, 0.70, 0.63];
% Initialisation des variables
mat=0; k=1;
while k<=length(x)
mat= mat+[y(k) x(k) ; x(k)*y(k) x(k)^2];
k=k+1;
end

Ce qui va donner :
>> mat =
3.9600 3.3000
2.3130 3.5500
Ce programme s'exécute tant que la valeur de k est inférieur ou égale à la longueur du
vecteur x, c'est-à-dire 5 et il va s'arrêter lorsque k=6.
1.3- Instructions conditionnelles ' if '
Le mot clé if indique le début d'une structure conditionnelle. Il est nécessairement
suivi d'une condition. Le bloc d'instructions sera exécuté si et seulement si la condition est
vraie. Dans le cas contraire, on peut définir d'autres blocs conditionnels avec le mot clé
elseif (comportant nécessairement une condition), ainsi qu'un bloc else correspondant
aux instructions à exécuter si toutes les conditions précédentes sont fausses.
La syntaxe est la suivante :
if Condition 1
(Commandes à exécuter si condition 1 est vraie)
elseif Condition 2
(Commandes à exécuter si condition 2 est vraie)
else
(Commandes à exécuter si aucune condition n’est vraie)
end
Exemple 1 :
n=input('donner un nombre entier et positif :')
if rem(n,3)==0
disp ('ce nombre est divisible par 3')
elseif rem(n,5)==0
disp ('ce nombre est divisible par 5')
else
disp ('ce nombre n''est pas divisible par 3 ou par 5')
end

TP N° 6 Page 4
avec :
input : permet de demander à l'utilisateur d'un programme de fournir des données.
rem : donne le reste d’une division entière.
disp : permet d’afficher ce qu’il y a entre parenthèses dans la fenêtre de commande.
Ce programme une fois exécuté, la phrase 'donner un nombre entier et positif : '
s'affiche dans la fenêtre de commande et elle nous invite à donner un nombre positif et
entier quelconque n. Si ce nombre est divisible par 3, c'est-à-dire : n/3 donne un entier est
le reste est nul (exemples : 9/3 =3 le reste est 0, par contre 10/3=3 le reste est 1 c'est-à-dire
3*3+1 =10) la phrase 'ce nombre est divisible par 3' sera affichée dans la fenêtre de
commande. Si le nombre n n'est pas divisible par 3, le programme passe à la deuxième
condition qui est de vérifier que ce dernier est divisible par 5. Dans le cas où la deuxième
condition est vérifiée, la phrase 'ce nombre est divisible par 5 ' sera affichée dans la fenêtre
de commande. Si ce nombre n n'est pas divisible ni par 3 ni par 5, c'est la phrase 'ce nombre
n''est pas divisible par 3 ou par 5' qui sera affichée dans la fenêtre de commande.
NB. il faut remarquer que dans Matlab, les chaînes de caractères s'écrivent entre deux
apostrophes (exemple : 'ce nombre est divisible par 3'). S'il y a une élision d'un mot dans une chaîne
de caractères comme dans 'ce nombre n'est pas divisible par 3 ou par 5 ', il faut absolument la
doubler 'ce nombre n''est pas divisible par 3 ou par 5' car Matlab utilise une seule apostrophe
comme délimiteur de chaînes.
Exemple 2 :
num=input('donner un nombre num = ');
n=3 ;
if num==1
A=ones(n)
elseif num==2
A=zeros(n)
elseif num==3 | num==4 % | : 'ou' logique
A=rand(n)
else
error('numéro d’’exemple non prévu')
end
avec :
rand : donne des valeurs aléatoires entre 0 et 1.
error : permet d’afficher comme un message d’erreur le texte écrit entre les parenthèses.
En fonction de la valeur de ' num ', le programme exécute une série de conditions. Si la
valeur de ' num ' est 1, on aura une matrice A de 3x3 dont tous les éléments sont des 1. Si la
valeur de ' num ' est 2, on aura une matrice A de 3x3 dont tous les éléments sont des 0. Si la

TP N° 6 Page 5
valeur de ' num ' est 3 ou 4, on aura une matrice A de 3x3 remplie de valeurs aléatoires
entre 0 et 1. Sinon, on aura le message d'erreur ' numéro d’’exemple non prévu ' si la valeur
de ' num ' est différente de1, 2, 3 ou 4.

TP N° 6 Page 6

Vous aimerez peut-être aussi