RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE
UNIVERSITÉ CHADLI BEN JDID –EL TARF-
FACULTÉ DES SCIENCES ET DE LA TECHNOLOGIE
DÉPARTEMENT GC+GM+GP/MATHEMATIQUE
INFORMATIQUE 3
OUTILS DE PROGRAMATION
Dr. Guedaoura H
COUR 02
❖LES VARIABLES ET LES NOMBRES :
❑LES TYPES DE VARIABLES
❑LES NOMBRES EN MATLAB OU SCILAB : ENTIER NATUREL ,REELS, COMPLEXES .
Objectifs du Cour + TP 02:
A la fin de ce chapitre, vous serez capables :
▪ de Faire des calculs sur les nombres
▪ de manipuler toute type de variables
▪ de manipuler des séquences de nombres
▪ de manipuler des chaines de caractères
Dr. Guedaoura H
LES VARIABLES?
Les variables crées lors d’une session de travail qu’elle
que soit interactive ou depuis un script résident en
mémoire dans ce qu’on appel le « workspace ».
Nul besoin de déclarer une variable, Octave (Matlab) la
crée dès qu’il rencontre son nom dans la partie gauche
d’une affectation. Il déduit son type et l’espace à lui
allouer dans l’espace de travail lors de l'évaluation de
l’expression se trouvant dans la partie droite d’une
affectation.
‘Nom variable = Valeur/ expression’.
Le variable est définie lors de la première affectation,
(l’instruction = ) ,c’est l’opération qui consiste à spécifier
son nom (identificateur) .
Exemple 01 : Exemple 02 :
>>S=7.456 %Valeur >>R=S^2*pi % expression
S=7.4560 R=166.78
Un nom (identifiant) de variable valide doit respecter les
conditions suivantes :
➢ Un Identifiant de variable ne peut pas être un mot clé propre à
Matlab (Octave).
➢ Un Identifiant de variable commence par une lettre suivie de
lettres, chiffres ou caractères souligné (Té_réduit).
➢ Un Identifiant de variable ne peut pas contenir le symbole " ".
➢ Les caractères spéciaux et accentués ne sont pas autorisés.
➢Un Identifiant de variable ne peut pas commencer par un chiffre
➢Le nombre maximum de caractères dans un nom ne doivent pas
dépassé 63 .(namelengthmax)
➢L’utilisation des lettres doivent être dans l’intervalle a-z et A-Z.
Exemple valides :
▪ temp1 Exemple non valides :
▪ Temp1 ▪ 01XY (commence par un chiffre)
▪ temp_1 ▪ temp-1 (considéré comme expression)
▪ y_min ▪ tempé_1 (contient un caractère accentué)
▪ mat_A1
❖NB: Matlab (Octave) est sensible à la casse. Une distinction à faire entre les
minuscules et les majuscules.
Il est inutile de spécifier le type ou la dimension de la
variable que l’on manipule. Le type et la dimension d’une
variable sont déterminés de manière automatique à partir de
l’expression mathématique ou de la valeur affectée à la
variable .
QUELLE SONT LES TYPES DE VARIABLES ?
➢Une chaîne de caractères est définie comme un vecteur
ligne contenant des caractères. Une donnée de type chaîne
de caractères (char) est représentée sous la forme d’une
suite de caractères encadrée d’apostrophes simples (’) ou
délimitées par deux des guillemets ('') , où chaque
caractère de la chaine occupe une cellule du vecteur.
Exemple :
>> S1=‘Faculté de math'
S1 = Faculté de math
➢Si une chaine doit contenir des apostrophes ou des
guillemets, ces apostrophes faisant partie de la chaine
doivent êtres doublés, (sinon interprétés comme signe de
fin de chaine, la suite de la chaine provoquant alors une
erreur).
➢La commande [s1 s2 s3...] concatène horizontalement les
chaînes s1, s2, s3.....
Exemple :
Soit
s1=' AAA ', s2='CCC ', s3='EEE ‘
alors
[s1 s2 s3] retourne " AAA CCC EEE "
➢Il est possible de manipuler (afficher, utiliser, modifier ou
supprimer) chaque caractère de la chaîne en faisant référence
à sa position dans la chaîne.
S(i) signifie le caractère numéro i dans la chaine s
S(i:j) signifie des caractères dans les cellules adjacents numéroté de i
jusqu'à j dans la chaine
➢Le tableau suivant contient des fonctions manipulant les
chaines de caractère:
length(ch) Retourne le nombre de caractères de la chaîne ch
findstr(ch, ‘s’) Retourne, sur un vecteur ligne, la position dans ch
de toutes les chaînes s1 qui ont été trouvées.
strrep(ch, ‘s1’, ‘s2’) Retourne une copie de la chaîne ch dans laquelle
toutes les occurrences de s1 sont remplacées par
s2
lower(‘CHAINE’) Convertit la chaîne ch en minuscules
upper(‘chaine’) Convertit la chaîne ch en majuscule
➢Les nombres réels :
On distingue deux représentations : « double » et « simple ». De
façon interne, Octave (Matlab) stocke par défaut tous les
nombres en virgule flottante "double précision".
Les nombres ont une précision finie de 16 chiffres décimaux
significatifs, et une étendue allant de 10 −308 à 10 +308 . Les
nombres réels seront saisis par l'utilisateur selon les conventions
de notation décimale standard (si nécessaire en notation
scientifique).
Exemple :
8,-24,0.000459,-1.3464𝑒 11 ,2.4567 𝑒 −15
Il est toutefois possible de réduire explicitement la précision des
nombres en utilisant la fonction « single() ». Notez bien que ceci
est fait, en général pour gagner de l'espace mémoire tout en
perdant en précision.
En effet, les nombres en « simple précision » sont codés sur 32
bits alors que les doubles précisions le sont sur 64 bits. En simple
précision les nombres ont 7 chiffres décimaux significatifs, et une
étendue allant de 10−38 à 10+38 .
➢ Il est possible de convertir un nombre représenté en simple
précision vers la double précision en utilisant la fonction
« double() » .
NB: Lorsque vous combinez les deux représentations dans une expression, le résultat sera toujours
donné dans la représentation la moins précise (ici : simple précision !).
➢Les nombres entiers :
On vient de voir que Octave (Matlab) manipule, par défaut, les
nombres sous forme réelle en virgule flottante (double précision ou,
sur demande, simple précision).
Ainsi l'expression « n = 534 » stocke de façon interne le
nombre n spécifié sous forme de variable réelle double
précision, bien que l'on ait saisi un nombre entier.
On peut, cependant, manipuler des variables de types entiers
représentés sur 8, 16, 32 et 64 bits. Pour cela on doit nous servir
des fonctions de conversions suivantes :
• Les fonctions de conversion int8, int16, int32 et int64
génèrent des variables entières.
• les fonctions de conversion uint8, uint16, uint32 et uint64
génèrent des variables entières non signées (unsigned).
NB:
• Les opérations arithmétiques sur des entiers sont plus rapides que les opérations analogues réelles.
• Les fonctions de conversion des réels en entier arrondissent au nombre le plus proche (équivalent de
la fonction round() que nous verrons ultérieurement)
• Lorsque vous utilisez des opérateurs ou des fonctions mélangeant des opérandes de types entiers et
réels, le résultat retourné sera toujours de type entier ! Si vous ne souhaitez pas ça, vous devrez
convertir au préalable l'opérande « entier » en « réel » double précision (avec double(entier)) ou
simple précision (avec single(entier)) !
• Il faut être vigilant lors des conversions. N’oubliez pas que lorsque vous convertissez un nombre réel
vers une représentation entière vous réduisez la précision et possiblement, le nombre que vous
souhaitez représenter n’est tout simplement non représentable dans le codage que vous souhaitez.
Classe Intervalle Fonction de conversion
Signed 8-bit integer –27 to 27–1 int8
15 15
Signed 16-bit integer –2 to 2 –1 int16
Signed 32-bit integer –231 to 231–1 int32
Signed 64-bit integer –263 to 263–1 int64
Unsigned 8-bit integer 0 to 28–1 uint8
Unsigned 16-bit integer 0 to 216–1 uint16
32
Unsigned 32-bit integer 0 to 2 –1 uint32
64
Unsigned 64-bit integer 0 to 2 –1 uint64
➢ LES NOMBRES COMPLEXES:
Octave (Matlab) manipule des nombres complexes. Ces
nombres sont stockés de façon interne sous forme de réels
« double précision »
Exemple :
Quelques exemples d'écriture valides de nombres complexes :
• 4e-13 - 5.6i
• 3–j
• -45 + 5*j
• (14.5+5) + 13j
• 3+i
• Octave (Matlab) nous offre quelques fonctions très utiles pour
manipuler des nombres complexes :
Fonction Description
real(nb complexe) Retourne la partie réelle du nb complexe
imag(nb complexe) spécifié, respectivement sa partie
imaginaire
conj(nb complexe) Retourne le conjugué du nb complexe
spécifié
abs(nb complexe) Retourne le module du nb complexe
spécifié
arg(nb complexe) Retourne l'argument du nb complexe
spécifié
➢ LE TYPE LOGIQUE:
Le type logique (logical) possède 2 formes : 0 pour faux et 1
pour vrai. Un résultat de type logique est retourné par certaines
fonctions ou dans le cas de certains tests.
Les opérateurs logiques sont :
Symbole Opération
& ET
| OU
~ NON
LES OPÉRATEURS RELATIONNELS SONT :
Symbole Opération
< Inférieur Strictement
<= Inférieur ou égal
> Supérieur Strictement
>= Supérieur ou égal
== égal
~= Est différent
Exemple :
>> A=8; B=15;
>> (A==B)
ans = 0
>> (A<10)&(B=2) % Fausse d’éclaration logique
Ans=1
QUELQUE FONCTIONS QUI RETOURNENT DES RÉSULTATS DE
TYPE LOGIQUE (BOOLÉENNE)
ischar(var) Retourne 1 si var est une
caractère, sinon 0
isletter(var) Retourne 1 si var est une
caractère de l'alphabet, sinon 0
isspace(var) Retourne 1 si var est une
caractère de séparation (espace),
0 sinon
isreal (var) Retourne 0 si var est de type
complexe, 0 sinon
isinteger(var) Retourne 1 si var est un entier, 0
sinon
islogical(var) Retourne 1 si var est de type
booléenne, 0 sinon
isnumeric(var) Retourne 1 si var est une valeur
numérique, 0 sinon
isequal(var1, var2) Retourne 1 si var est une valeur
numérique, 0 sinon
Vous avez des questions ?