Vous êtes sur la page 1sur 32

Chapitre 03

Programmation avec MATLAB


Outils de programmation pour les mathématiques

Remerciements à

- R. BENTATA. Université d’Oran.


Ecriture de Script
Script Matlab
Un script (programme) est un ensemble d'instructions (commande) enregistrées dans un
fichier matlab d'extension ".m"

Exemple :
Soit les commandes suivantes:
>> X = 0 : 4 ;
>> Y = [ 5 1 0 6 8 ]; Commandes (fenêtre de commande)
>> Z = X+Y;

Il est possible de regrouper et d'enregistrer les commandes ci-dessous dans un fichier script :

X = 0 : 4 ;
Y = [ 5 1 0 6 8 ]; Script (fichier .m)
Z = X+Y; Ex : Programme1.m

1
Création d'un Script Matlab
Pour créer un script Matlab, on clique sur le menu "File"  "New"  "Script" :

Saisir les instructions dans l'éditeur qui apparait :

Instructions …

2
Enregistrement d'un Script Matlab

Pour enregistrer le script, il faut cliquer sur le menu "File"  "Save"


Dans la fenêtre de dialogue qui apparait, sélectionner d'abord l'emplacement (chemin) du
fichier (ex : "C:\TP MATLAB") puis saisir le nom du fichier (ex : "Programme1")

3
Exécution d'un Script Matlab
Pour exécuter un script matlab, il suffit de taper son nom (sans l'extension) depuis la fenêtre
de commande :

Avant d'exécuter un script, il faut s'assurer qu'il est visible depuis la fenêtre "Current
Folder".

Dans le cas contraire, il faut se positionner sur le bon dossier.


4
Les Entrée / Sortie
Entrée / Sortie

LECTURE

Script

ECRITURE
Utilisateur

LECTURE (Entrée) : Permet de lire une valeur que fourni l'user à l'aide du clavier.

ECRITURE (Sortie): Permet d'afficher une valeur à l'écran.

5
Lecture :
La lecture d'un nombre est réalisée à l'aide de l'instruction input, sa syntaxe est la suivante :

IdVar = input('Texte à afficher');

La commande affiche le message "Texte à afficher", puis attend que l'utilisateur saisisse une
valeur numérique au clavier (Réel ou Complexe). Cette valeur sera affectée à la variable
IdVar

Exemple :
Soit
X = leinput('Donnez
script prg1.m : la valeur de X \n'); % le symbole \n pour saut de ligne
Y = X * 2 ;

L'exécution donne : du script


>>prg1 %Execution
Donnez la valeur de X
5
>>

Après exécution on remarque la création des variables X et Y dans le Workspace ayant


respectivement les valeurs 5 et 10.
6
Lecture d'une chaine de caractères :
La lecture d'une chaine est réalisée à l'aide de l'instruction input, en utilisant la syntaxe
suivante :
IdVar = input('Texte à afficher','s');

Exemple :
Soit le script prg2.m :
Nom = input('Quel est votre nom \n','s');
Prenom = input('Quel est votre prénom \n','s');

Résultat (Fenêtre de Commande) :


>> prg2
>> Quel est votre nom
Abdellah
>> Quel est votre prenom
Amine
>>

7
Ecriture:
L'écriture (affichage) d'un texte est réalisée à l'aide de la commande disp, sa syntaxe est la
suivante: disp(Mess)

Cette commande affiche le message Mess avec saut de ligne automatique

1. Une Constante de type chaine de caractères.(entre apostrophes) :

disp('Bonjour tout le monde');

2. Une variable de type chaine de caractères :


disp(IdVar) % Affiche le contenu de la variable IdVar de type chaine

3. Une Combinaison de Variables et constantes


disp([ var1 , 'const1' , var2 , 'const2' , … ])

Remarque
Le symbole \n n'a aucun effet dans la commande disp :
disp('Bonjour \n') affiche le message Bonjour \n
8
Ecriture:
Affichage d'une variable Numérique : (Réelle ou Complexe)
Pour afficher le contenu d'une variable numérique (Réelle ou Complexe), il est conseillé de
convertir la variable en une chaine de caractères avant affichage. Pour cela, on utilise la
fonction
num2str : (Number to String  Nombre vers Chaine de caractères)

Exemple :
On désire afficher la variable X = 0.25 (réel) :
X = 0.25 % Création d'une variable numérique
Y = num2str(X); % Conversion de X vers une chaine Y = '0.25'
disp(Y) ; % affichage de Y.

Ou plus simplement :

X = 0.25 % Création d'une variable numérique


disp(num2str(X)); % Affichage avec Conversion

9
Exercice 1
Ecrire un script Exo1.m qui demande à l'utilisateur deux valeurs réelles, puis calcule et
affiche la somme et le produit des deux nombres :

Donnez le premier nombre



Donnez le deuxième nombre

La somme est …
Le produit est …

10
Exercice 2
Ecrire un script Exo2.m qui demande à l'utilisateur son nom puis son prénom puis son âge et
affiche le message

Quel est votre nom



Quel est votre prénom

Bonjour .…nom… …prenom…. Vous avez ….Age.. ans

11
Les Structures de Contrôle
Structures de contrôle

• Structures Conditionnelles (Alternative) :


o Condition Un Choix if … end
o Condition Deux Choix if … else … end
o Condition à choix multiple switch … end

• Structures Itératives (Répétitives)


o La boucle for.
o La boucle while

12
Structures Conditionnelles
Condition Un choix :
La syntaxe est la suivante :
if (Condition)
Bloc d'instructions
end

Exemple :
Ecrire un script qui lit un nombre entier puis affiche le message « Le nombre est
multiple de 3 » si tel est le cas.

Solution :
n = input('Donnez un nombre \n');
if mod(n,3)==0
disp('Le nombre est multiple de 3');
end;

13
Structures Conditionnelles
Condition Deux choix:
La syntaxe est la suivante :
if (Condition)
Bloc d'instructions 1
else
Bloc d'instructions 2
end

Exemple :
Ecrire un script qui lit un nombre entier puis affiche un message indiquant si le
nombre est positif ou strictement négatif.
n = input('Donnez un nombre \n');
Solution
if n>=0 :
disp([num2str(n),' est positif']);
else
disp([num2str(n),' est strictement négatif']);
end

14
Structures Conditionnelles
Exemple :
Ecrire un script qui lit un nombre entier puis affiche un message indiquant si le
nombre est strictement positif , strictement négatif ou nul.

Solution :
n = input('Donnez un nombre \n');
if n>0
disp([num2str(n),' est strictement positif']);
else
if n==0
disp([num2str(n),' est nul']);
else
disp([num2str(n),' est strictement négatif']);
end
end

15
Structures Conditionnelles
Condition à choix multiple :
La syntaxe est la suivante :
switch(IdVar)
case Valeur1
Bloc 1
case Valeur2
Bloc 2

case ValeurN
BlocN
otherwise
Bloc autre
end

Remarque
Le mot clé otherwise (autre) est facultatif

16
Structures Conditionnelles
Exemple :
Ecrire un script qui demande à l'utilisateur un chiffre parmi -1, 0, 1 puis affiche ce
nombre en lettre.

Solution :
n = input(’Tapez un chiffre parmi -1,0 ou 1: \n’);
switch (n)
case -1
disp(‘c’’est moins un’);
case 0
disp(‘c’’est la valeur zéro !’);
case 1
disp(‘c’’est plus un’);
otherwise
disp(‘Une autre valeur’);
end

17
Structures itératives
La Boucle For : ( Pour )
Sa syntaxe est la suivante :
for idvar = ValeurInitiale : Pas : ValeurFinale
Bloc d'instructions
end

La valeur par défaut du pas est 1

Exemple :
Scripts
for i = 0 : 3 for i = 1 : 2 : 5
j=i*4; j=i*4;
disp(j); disp(j);
end end

Résultat de l’exécution
0 4
4 12
8 20
12
18
Structures itératives
Exemple :
Ecrire un script qui demande à l'utilisateur les éléments d'un vecteur ligne de 5
valeurs puis affiche le vecteur au complet. Par ex :
Donnez l'élément 1
18
Donnez l'élément 2
30
Donnez l'élément 3
20
Donnez l'élément 4
7
Donnez l'élément 5
44
Le vecteur est : 18 30 20 7 44

Solution :
for i = 1 : 5
T(i)=input(['Donnez l''élément ' , num2str(i),'\n']);
end
disp(['Le vecteur est : ' , num2str(T)]);
19
Structures itératives
La Boucle While : (Tant Que)
Sa syntaxe est la suivante :
while condition
Bloc d'instruction
end

Exemple :
Ecrire un script qui lit les éléments d'un vecteur ligne d'entier positif. La lecture s'arrête
lorsque l'utilisateur saisi la valeur -1.

i = 1 ;
n = input('Donnez la valeur de l''élément 1');
while n~=-1
T(i) = n ;
i = i + 1 ;
n = input(['Donnez la valeur de l''élément ', num2str(i)]);
end

20
Les Fichiers Fonction
Les Fonctions
Nous avons vu précédemment que Matlab fournissait un grand nombre de
fonctions prédéfinies ( sin, cos, abs,exp,log,sqrt, . . . ).
Il est cependant possible pour le programmeur de créer ses propre fonctions.

Une fonction (sous-programme) est un script qui à partir de données en entrée


renvoi un ou plusieurs résultats.

E1 S1
E2 S2
Fonction
...

...
Em Sn

21
Exemples de fonctions
1. Fonction Qui calcule la factorielle d'un Nombre

N Fact N!
Entier Entier

2. Fonction qui calcule la moyenne des élément d'un vecteur

T Moyenne M
Vecteur réel

3. Fonction qui divise un vecteur V en deux vecteurs contenant respectivement les


éléments pairs et les éléments impair de V.

Vp (Vecteur)
V Diviser
Vecteur Vi (Vecteur)

22
Ecriture de fonctions
Une fonction est un script enregistré dans un fichier .m avec la syntaxe suivante :

function [ S1 , S2, ... , Sm] = NomFonction ( E1 , E2 , . . . , En)


Bloc d'instructions . . .

S1, …, Sm sont les valeurs retournées.


E1, ..., En sont les arguments.

Le nom de la fonction doit correspondre au nom du fichier .m

23
Exemples :
1. Ecrire une fonction qui calcule la factorielle d'un nombre

n fact f
Entier Entier

fact.m
function [ f ] = fact (n)
f = 1 ;
for i = 1 : n
f = f*i ;
end

24
Exemples :
2. Ecrire une fonction qui calcule le résultat (quotient) et le reste d'une division
entière

n Q
div
m R

Par ex : n = 16 ; m = 5  Q = 3 et R = 1
div.m
function [ Q R ] = div (n , m)

Q = floor(n/m) ; % Nous utilisons ici une fonction prédéfinie


R = n–Q*m ;

25
Exécution d'une fonction (appel)
Une fonction est exécutée en l'appelant par son nom :

• Depuis La fenêtre de Commande ou


• Depuis une autre fonction ou
• Depuis un script (programme principal)

Fenêtre de Commande
>> fact(4)
ans = 24
>> X = fact(4)
X = 24
>>[Q R] = div(16,3)
Q = 5

R = 1

26