Vous êtes sur la page 1sur 4

Tp3 : Structures itératives et conditionnelles.

Structures itératives et conditionnelles (for, while, if)


2.1 Structures itératives (ou répétitives)
Utilité : faire se répéter une (ou plusieurs) instruction(s).
2.1.1 Boucle for
Elle permet de faire se répéter un certain nombre de fois une (ou plusieurs) instruction(s) ; le “nombre
de fois” est explicitement connu de l’utilisateur.
for indice=borne_inf : borne_sup
séquence d'instructions
end

Exemple 1. for i =0:5


Pour i=0 à i=5, faire i
afficher i end
Fin
Exemple 2.
Pour i=0 à i=10 , faire
afficher 2*i
Fin
Exemple 3. for j =0:2:10
Pour j=0 à j=10 par pas de 2, faire j
afficher j end
Fin
Exemple 4. Écrire l’algorithme correspondant au code
matlab suivant.
for j =5: -1:0
j
end

Créer un script boucle1.m pour y tester les exemples suivants.


Exercice 1.

1-Écrire un script calculant les valeurs de


2.1.2 Boucle while
Elle permet de faire se répéter un certain nombre de fois une (ou plusieurs) instruction(s) ; le “nombre
de fois” n’est pas explicitement connu de l’utilisateur : il dépend d’une condition.
while expression logique
séquence d'instructions
end
Autrement dit : tant que la condition est vérifiée, on répète les instructions ; dès qu’elle ne l’est plus,
on s’arrête.
Créer un script while1.m pour y tester les exemples suivants.
Exemple 5. i =0
i=0 while ( i <5)
Tant que i <5, faire i = i +1
i=i+1 end
Fin
Exemple 6.
i=5
Tant que i >0, faire
i=i -1
Fin

Exemple 7. Écrire l’algorithme correspondant au


code matlab suivant.
i =5;
while ( i <=0)
i =i -1
end
Qu’est-ce qui est renvoyé par matlab ? Pourquoi
?

Exemple 8. Expliquer le résultat obtenu sur cet I=5 ;


exemple, ainsi que la syntaxe « == ». while ( i ==5)
i=5
i =i -1
Tant que i est égal à 5, faire
i=i -1 end
Fin

Exercice 2. Que se passerait-il si l’on demandait (ne pas tester !) :


i=5
Tant que i >0, faire
i=i+1
Fin
Exercice 3.
1. Partir de x = 100 et remplacer x par sa racine carrée jusqu’à obtenir un nombre
strictement plus petit que 2.
2. Combien d’itérations ont été nécessaires pour atteindre ce résultat ? (Faire calculer à matlab ce
nombre d’itérations.)
2.2 Structure conditionnelle : tests if
Utilité : faire ou ne pas faire d’instruction(s). Autrement dit : dans tel cas faire ceci, sinon faire cela.
Créer un script exemples_if.m pour y tester les exemples suivants.

if expression logique if expression logique if expression logique 1 switch var


séquence d'instructions séquence d'instructions 1 séquence d'instructions 1 case cst1,
end else elseif expression logique 2 séquence d'instructions 1
séquence d'instructions 2 séquence d'instructions 2 case cst2,
end ... séquence d'instructions 2
elseif expression logique N ...
séquence d'instructions N case cstN,
else séquence d'instructions N
séquence d'instructions par otherwise
défaut séquence d'instructions par
end défaut
end

Exemple 9. Tester le script suivant, pour i = 2, i = if ( i ==10)


5 et i = 10. 2* pi
Si i=10 , alors
disp ( ‘ car i =10 ’ )
calculer 2 × π
écrire ‘‘car i=10 ’ ’ end
Fin
Exemple 10. Tester le script suivant, pour
différentes valeurs de x.
Si x modulo 2 vaut 0, alors
écrire ‘‘x est pair ’’
Fin
X modulo 2 s’execute avec la commande mod(x,2)
Pour faire entrer une valeur par l’utilisateur on utilise
la fonction
x=input (‘donner x’,x)
Exemple 11. Tester le script suivant, pour if mod( x ,2)==0
différentes valeurs de x. disp ( ’ x est pair ’ )
Si x modulo 2 vaut 0, alors
else
écrire ‘‘x est pair ’’
sinon disp ( ’ x est impair ’ )
écrire ‘‘x est impair ’’ end
Fin

Exercice 4. Étant donné un réel x, calculer |x| (sans utiliser la commande abs).

Representation 3d avec matlab


Dans ce paragraphe on va voir comment MATLAB permet de représenter des surfaces définies par
une relation z = f(x, y) où f est une fonction continue, définie sur un domaine [x0, x1] × [y0, y1].
1- Modélisation du domaine [x0, x1] × [y0, y1] - Fonction meshgrid :
Cette modélisation se fait en deux étapes :
1.1-Définition de deux subdivisions régulières :
x pour [x0, x1] et y pour [y0, y1] ;
1.2-Construction d’une grille modélisant le domaine [x0, x1] × [y0, y1] :
La grille est définie par deux matrices X et Y résultant de [X,Y] = meshgrid(x,y)
Précisément :
X(l,k) = x(k) et Y(l,k) = y(l) pour tout k, (1<= k <=length(x)) et pour tout l, (1<= l <= length(y)) De
telle sorte que :
(X(l,k), Y(l,k)) = (x(k),y(l))
Il est alors possible d’évaluer les valeurs de f suivant cette grille en appliquant f au couple de tableaux
x et y.
Tracé de la surface - fonctions mesh et surf :
Une fois le domaine d’étude modélisé par deux tableaux X et Y, on évalue les valeurs de la fonction
pour obtenir un tableau z = f(X,Y).
On dessine la surface z = f(x, y) avec l’une des fonctions suivantes :
Fonction mesh :
mesh(X,Y,z) donne une représentation de la surface par un maillage “fil de fer".
Fnction surf :
surf(X,Y,z) donne une représentation où les mailles sont colorées.
Exemple :
Essayer le script suivant :
x=-5:0.5:5;
y=x;
[X,Y]=meshgrid(x,y);
Z=sin(X./2)+cos(Y./2)
figure(1) ; mesh(X,Y,Z)
figure(2) ; surf(X,Y,Z) ;colorbar
figure(3) ; meshc(X,Y,Z)
essayer la commande meshc puis meshz au lieu de mesh
puis essayer celui là :
x = -7.5 : .5 : 7.5 ;
y=x
[X,Y] = meshgrid(x,y) ;
Z = sqrt(X.^2+Y.^2) ;
figure(1) ; mesh(X,Y,Z) ; title(’mesh’)
figure(2) ; surf(X,Y,Z) ; title(’surf’)
exercice : representer les fonctions suivantes

Surfaces et courbes de niveau :

La fonction contour : contour(X,Y,Z,n) détermine n surfaces de niveau (10 par défaut) et les projette
sur le plan xoy.

La fonction contour3 : Semblable à contours, contour3 détermine n surfaces de niveau et en donne


une représentation en trois dimensions.

Pcolor :

Reessayer les fonctions suivantes avec les commandes contour, contour3 et pcolor.

Vous aimerez peut-être aussi