Exercices (Chapitre 03):
Introduction à la programmation avec Matlab
Exercice 01 :
Soit le programme suivant :
a=input('Entrez un nombre entier positif : ');
b=input('Entrez un nombre entier positif : ');
while (b~=0)
if (a>b)
a=a-b;
else
b=b-a;
end
end
disp(a)
1) Exécutez manuellement le programme pour les valeurs de a et b suivantes :
(a=81, b=27) (a=51, b=102) (a=81, b=36)
2) Que fait ce programme ?
3) Peut-on réécrire le programme en changeant la boucle while par la boucle for ?
pourquoi ?
Exercice 02 :
Soit le programme Matlab suivant :
N = input ('Entrez un nombre entier positif : ') ;
F=1 ;
for i = 1:N
F=F*i ;
end
disp(F)
1) Quelle est le résultat affiché par ce programme pour les valeurs suivantes de N : 5, 3 et 4.
2) Que fait ce programme ?
3) Réécrivez ce programme en utilisant la boucle while à la place de la boucle for.
Exercice 03 :
Ecrivez un programme qui permute (change) la valeur de deux composantes d’un
vecteur. Par exemple si on permute la 2eme et la 4eme position du vecteur V=[5,-8,6,11,4]
on obtient le résultat V=[5,11,6,-8,4].
1
La solution Exercice 01 :
1) Exécution manuelle du programme
a b a b a b
81 27 51 102 81 36
54 27 51 51 45 36
27 27 51 0 9 36
27 0 Afficher 51 9 27
Afficher 27 9 18
9 9
9 0
Afficher 9
2) Ce programme calcule le PGDC de a et b (Le plus grand diviseur commun).
3) Non, il n’est pas possible de remplacer l’instruction while par l’instruction for
dans ce programme (sans changer toute la structure du programme), car
l’utilisation de l’instruction for nécessite de savoir exactement le nombre
d’itération à l’avance, ce qui est irréalisable dans notre cas où on teste chaque fois
les variables a et b pour savoir si on doit réitérer encore ou pas.
La solution Exercice 02 :
1) Le résultat affiché par le programme pour :
N=5 F=120
N=3 F=6
N=4 F=24
2) Ce programme calcule le factoriel de N (N!)
3) Remplacement de for par while :
N = input ('Entrez un nombre entier positif : ') ;
F=1 ;
i=1 ;
while i<=N
F=F*i ;
i=i+1 ;
end
disp(F)
La solution Exercice 03 :
V = input ('Entrez un vecteur : ')
pos1 = input ('Entrez la première position : ') ;
pos2 = input ('Entrez la deuxième position : ') ;
tmp = V(pos1) ;
V(pos1) = V(pos2) ;
V(pos2) = tmp ;
disp(V)