0% ont trouvé ce document utile (0 vote)
22 vues7 pages

Boucles et Conditions dans Matlab

Ce document présente un TP sur les conditions et boucles dans Matlab, abordant les instructions de contrôle comme for, while et if. Il explique les tests logiques, les boucles for et while, ainsi que l'instruction conditionnelle switch, avec des exemples pratiques. La partie pratique propose des exercices pour appliquer ces concepts, tels que le calcul du factoriel et la devinette d'un nombre aléatoire.

Transféré par

yousra.09.yaya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues7 pages

Boucles et Conditions dans Matlab

Ce document présente un TP sur les conditions et boucles dans Matlab, abordant les instructions de contrôle comme for, while et if. Il explique les tests logiques, les boucles for et while, ainsi que l'instruction conditionnelle switch, avec des exemples pratiques. La partie pratique propose des exercices pour appliquer ces concepts, tels que le calcul du factoriel et la devinette d'un nombre aléatoire.

Transféré par

yousra.09.yaya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP n°03 Conditions et Boucles sous

Matlab

Chargée du module: Dr A. Yahiaoui

Année universitaire: 2023 / 2024.


TP 03 Matlab

Partie théorique

I. Introduction

Les principales instructions de contrôle proposées par Matlab sont for, while et
if ; elles fonctionnent à peu près comme leurs équivalents dans les autres langages de
programmation.

Dans ce TP, nous verrons l’utilisation des boucles (for et while) ainsi que les tests
dans Matlab, et nous écrirons des programmes plus complexes pour avoir des
comportements toujours plus intéressants.

II. Les testes logiques

Les testes logiques dans MATLAB se font à l’aide des mots clés if, else et end.
Les opérateurs utilisés dans les instructions logiques sont :

Les variables a et b peuvent être des scalaires ou des matrices, c prends des
valeurs 0 ou 1 selon l’expression vraie ou fausse. Ces opérateurs s’appliquent sur les
toutes les composantes dans le cas des matrices. Exemple de teste if:

if a < b % ce script est équivalent à la fonction m = min(a,b)


m = a
else
m = b
end
TP 03 Matlab

Dans le cas contraire, on peut définir d'autres blocs conditionnels avec le mot
clé elseif (comportant nécessairement une condition logique), ainsi qu'un
bloc else correspondant aux instructions à exécuter si toutes les conditions logiques
précédentes sont fausses (valent 0 ou false).
La syntaxe est la suivante :
if condition logique
instructions
elseif condition logique
instructions
...
else
instructions
end

III. La boucle for dans Matlab

La boucle for fait varier une variable d’une valeur initiale à une valeur finale
avec un pas d’incrémentation constant qui est pris égale à un s’il est omis. Les
instructions à l’intérieur de la boucle sont exécutées à chaque valeur de la variable.

Généralement, le compteur, la valeur initiale et la valeur finale sont des nombres


entiers et l’incrément est égal à 1. Toutefois ce n’est pas une règle, dans certains cas
des nombres réels ou même des caractères sont utilisés. En réalité, ce qui est à droite
du signe égale n’est autre qu’un vecteur ligne qui est parcouru par compteur.

Exemple: Calcul des termes et de la somme d’une suite :

a = 10; % valeur du paramètre a


N = 15; % nombre de terme
for n = 1:N % début de boucle d’entiers
s(n) = n^a/a^n; % calcul des termes
end % fin de boucle
[s(N), sum(s)] % affichage du dernier terme et de la somme. Noter
l’absence de ;
TP 03 Matlab

1. La boucle for sur les vecteurs

Pour commencer, nous allons nous familiariser avec la boucle for. Commencez par
écrire un programme trés simple qui parcourt un vecteur ligne :

v = rand(1, 20);
disp(v);
for i=v
disp(‘La variable i vaut ‘);
disp(i);
end
Ce programme est sensé afficher tous les éléments de v à travers la variable i dans la
boucle.

La boucle for doit respecter la syntaxe suivante :

for compteur = expression


instructions
end

2. La boucle for sur les matrices


Nous allons faire le meme travail, mais avec une matrice. Voici un programme
permettant de parcourir une matrice :
A = rand(5, 5);
disp(A);
for i=A
disp(‘La variable i vaut ‘);
disp(i);
end

IV. Instruction conditionnelle switch


Comme une structure if, la structure switch est une structure conditionnelle,
c'est-à-dire qu'elle comporte différents blocs d'instructions qui seront exécutés de
manière conditionnelle.
Cependant, ici il n'y a pas de conditions logiques, le critère de choix est la valeur
d'une expression (ou d'une variable). Cette valeur, que l'on appelle cas (case), permet
la sélection du bloc à exécuter.
TP 03 Matlab

La syntaxe est la suivante :

Le choix (switch) se fait sur la valeur d'une variable ou d'une expression.


L'expression du cas peut être une simple valeur de type numérique ou alphanumérique.
Mais ce ne peut pas être une expression contenant une opération relationnelle (< ou >).
Ainsi, contrairement aux conditions if, l'ensemble des cas est forcément un ensemble
fini de valeurs.

Remarque: Un switch peut contenir de nombreux cas, mais dès lors que le choix
correspond à l'une des expressions de cas, le bloc d'instructions correspondant est
exécuté, et les cas suivants sont ignorés (même si un autre cas pourrait satisfaire
l'expression du choix).

Exemple:
TP 03 Matlab

Ce script va afficher le message ’c est moins un’ si l’on tape 1, ’c est la valeur zero !’
si l’on tape 0 et ’c est plus un’ si l’on tape +1. Si la valeur entree n’est ni -1,0 ou 1
alors Matlab renvoie : ’Une autre valeur’.

V. La boucle while dans Matlab


La boucle while s’exécute tant qu’une expression logique est vraie. Elle est
plus utile lorsque la valeur finale de la boucle for n’est pas connue à priori. Sa
structure est :

Par exemple, voici un programme permettant de demander un nombre positif à


l’utilisateur, et de répéter ces instructions tant qu’elles n’auront pas été suivies :
a = input(’Entrez un nombre positif : ’);
while a<0
a = input(’Entrez un nombre positif : ’);
end
disp(a);

La boucle while permet donc de répéter des instructions tant qu’une condition donnée
est vraie. Si la condition devient fausse, alors la boucle s’arrete et le programme passe
à la suite du code.
La boucle while nécessite souvent des initialisations avant d’être lancée et peut
se dérouler indéfiniment si l’expression logique de contrôle reste toujours vraie. Les
deux boucles peuvent être rompues par la commande break. On insère généralement
break avec un teste de condition if.

Testez ce code :
a=rand(1,1); b=1;
while a<30
b = b+1;
end
TP 03 Matlab

Si l’éxecution de ce code vous parait longue, c’est normal : le code de la boucle while
ne fait pas évoluer la condition qui restera pour toujours vraie. La boucle va donc
tourner à l’infini. Pour interrompre votre programme, tapez CTRL+C dans la fenêtre
de commande. Il est donc très important, dans une boucle while, que le code de la
boucle fasse évoluer la condition.

Partie Pratique:

Exercice 1
Écrire un programme Matlab, sous forme d’une fonction qui calcule le factoriel d’un
nombre entier n.
Pour mémoire factoriel de 170 est défini par 170! = 1 * 2 * ... * 170.

Exercice 2
Écrire un programme Matlab qui calcule la surface ou le périmètre d’un triangle selon
les choix suivant:
Pour 1, on calcule la surface
Pour 2, on calcule le périmètre
Pour 0, exit.

Exercice 3
Écrivez un programme Matlab, qui choisit un nombre entier au hasard entre 1 et 100
(à l’aide de randi), et doit le faire deviner à l’utilisateur. Pour ce faire, tant qu’il n’a
pas trouvé le nombre, l’utilisateur doit entrer un nombre et le programme lui indique
si ce nombre est plus petit ou plus grand.

Vous aimerez peut-être aussi