Vous êtes sur la page 1sur 31

08/03/2014

Universit Mohammed Premier Ecole nationale des sciences appliques dAl Hoceima (ENSAH)

Algorithmique et programmation
Prpar et prsent par Mr. Ouazzani Chahdi

Anne universitaire: 2013/2014


1 3/8/2014

Chapitre 2 - Structure d'un algorithme et instructions de base Traduction en C

08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

1-Notion de variable, constante et type


Dans un algorithme (ou programme), on va avoir en permanence besoin de stocker provisoirement des valeurs. Pour cela on dispose des variables et des constantes.

1.1-Les constantes
Une constante est une donne fixe qui ne varie pas durant lexcution dun algorithme. Elle se caractrise par son nom et sa valeur (fixe).

1.2-Les variables
Une variable est un objet dont le contenu peut tre modifi par une action durant lexcution de lalgorithme. Elle se caractrise par son nom et son type.
3 08/03/2014

Exemple :
On considre un algorithme qui permet de calculer la surface dun disque en utilisant la relation suivante : S = r, on a alors :
Les variables sont : S qui reprsente la surface et r qui reprsente le

rayon, et qui sont tous les deux de type rel.


La constante est qui prend la valeur 3.14.

1.3-Le type dune variable


En algorithmique le type dune variable caractrise la nature des valeurs quelle peut contenir. Il existe trois catgories de type dune variable :
Les types numriques
Les types alphanumriques Les types logiques ou boolens.
4 08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

1.3.1- Types numriques


Une variable de type numrique peut contenir que des valeurs numriques comme les nombres. En algorithmique, on trouve les trois types numriques suivants(les plus utiliss) :
Byte(Octet) : une variable de ce type prend ses valeurs

dans lensemble 0, 1, 2, 3, , 255 .


Entier : une variable de ce type prend ses valeurs dans

lensemble .
Rel : une variable de ce type prend ses valeurs dans

lensemble . Remarque : pour les nombres Rels, la virgule est reprsente par un point(exemple : 3.14, 0.875, 17.5).
5 08/03/2014

1.3.2- Types alphanumriques


Une variable de type alphanumrique prend comme valeur soit un caractre ou une chane de caractres. Pour cela on a deux types : Caractre : une variable de ce type prend ses valeurs de type symbole (&, , #, @, +, ...), lettre(a, b, c, ), ponctuation(?, :, , , ), etc. Chane : chane de caractre, par exemple une phrase, un numro de tlphone, matricule, etc.

Remarque :
En algorithmique un caractre est dlimit par un double quottes , et une chane de caractres est note entre guillemets " ".
6 08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

Exemples :
Caractre : a, 0, ?, (, %. Chane : "Ahmed", "0678980945", "37aR0sF",

"100$ - 20%".

1.3.3- Types Logiques (ou boolen)


Une variable de ce type ne peut prendre que deux valeurs possibles : VRAI ou FAUX.

08/03/2014

1.3.4- Types personnaliss


On peut dfinir un nouveau type par rduction des autres type un intervalle de valeurs, appel type Intervalle. Syntaxe : Type Nom_Type = Inf..Sup O Inf et Sup dsigne les valeurs extrmes de lintervalle considr. Exemples :
Type Nombre_Positif = 0..10000

Type Minuscule = a..z


Type Majuscule = A..Z

08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

2-Structure dun algorithme


Un algorithme (ou un programme) se compose de trois parties : lEn-tte, le bloc de dclaration et le Corps.

2.1- Len-tte
Constitu du mot Algorithme suivi dun nom identifiant lalgorithme.
Syntaxe : Algorithme Nom_Algorithme

2.2- Le bloc de dclaration


Ce bloc se divise en deux parties, la dclaration des constantes et la dclaration des variables.
9 08/03/2014

a. Dclaration des constantes


Constitue du mot Constante suivi du nom de la constante et sa valeur.

Syntaxe : Constante Nom_Constante = Valeur


Exemple : Constante Pi = 3.14

b. Dclaration des variables


Constitue du mot Variable suivi du nom de la variable et son type. Syntaxe : Variable Nom_Variable : Type

Exemples :
Variable x : Rel Variable c : Caractre Variable test: Logique
10 08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

Remarque:
On peut dclarer plusieurs constantes et plusieurs variables en utilisant les syntaxes suivantes : Constante Nom_Constante1 = Valeur1 Nom_Constante2 = Valeur2

Variable

Var1, Var2,,VarN : Type1


V1, V2,,Vn : Type2

1.3- Le corps de lalgorithme


Il contient les tapes de lalgorithme. Il commence par le mot DEBUT et se termine par le mot FIN.
11 08/03/2014

Alors, un algorithme possde la structure suivante : Algorithme Nom_Algorithme

En-tte

Constante Variable
DEBUT FIN

Bloc de dclaration

Corps de lalgorithme

Remarque:
Dans le cas o lalgorithme nutilise ni variables ni constantes, alors on peut omettre le bloc de dclaration.
12 08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

3-Les instructions simples


Comme il a t mentionn dans le premier chapitre,

gnralement, un algorithme reoit des donnes en entre et fourni des rsultats en sortie.
Celui-ci est destin tre implanter dans un ordinateur

en tant que programme. Donc utilisera les units dentre/sortie qui sont gnralement le clavier et lcran.
Alors il doit disposer des instructions qui lui permettent de

lire des donnes partir du clavier, et dcrire des rsultats lcran.

13

08/03/2014

Algorithme
Implmentation

Lire des donnes partir du clavier

Programme

Ecrire des rsultats lcran

14

08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

3.1- Les instructions de lecture et criture


3.1.1- Linstruction de lecture Cette instruction permet de lire des donnes saisies au clavier et les enregistrer dans des variables appropries. Syntaxe : Lire(Variable) Lire(Var1, Var2,, VarN) Exemples:
Lire(N): cette instruction signifie que lordinateur va lire

partir du clavier une valeur, et la stocke dans la variable N.


Lire(nom, prenom, age) : cette instruction signifie que

lordinateur va lire deux chanes de caractres et les enregistrer respectivement dans les variables nom et prenom, et va lire aussi une valeur numrique qui lenregistre dans la variable age.
15 08/03/2014

3.1.2- Linstruction dcriture


Cette instruction permet dafficher des messages sur lcran ainsi de communiquer avec lutilisateur. Syntaxe : Ecrire(obj1, obj2,..., objN); O obj1, obj2,..., objN, est une suite dobjets qui peuvent tre des constantes, des variables, des expressions ou des chanes de caractres. Remarques : Dans cette instruction:

16

Les chanes de caractres sont dlimites par des guillemets . Et les autres expressions scrivent comme telles. Les objets sont spars par une virgule.
08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

Exemples :
Ecrire("Bonjour

tout

le

monde"):

lordinateur

affiche l cran le message Bonjour tout le monde.


Ecrire("Votre

ge

est

",

age,

"ans"):

lordinateur affiche lcran le message Votre ge est 18 ans


(avec age une variable numrique dont la valeur est 18).
Ecrire("La

somme est : ", a+b): lordinateur

affiche lcran le message La somme est 7 (avec a et b deux variables numriques dont les valeurs sont respectivement 3 et
17

4).

08/03/2014

Exercice :
Ecrire un algorithme qui demande lutilisateur son ge et ensuite laffiche lcran en utilisant un message appropri. Solution : Algorithme Demande_Age Variable age : Entier Dbut Ecrire("Donner votre age : ") Lire(age) Ecrire("votre ge est ", age, "ans") Fin

Simulation d'excution
18 08/03/2014

Pr. OUAZZANI CHAHDI

08/03/2014

3.2- Linstruction daffectation


Laffectation est linstruction qui permet dattribuer une variable, une valeur , le contenu dune autre variable ou une expression, en utilisant loprateur daffectation . Syntaxe : Variable Valeur Variable AutreVariable Variable Expression Remarque : La valeur ou lexpression affecte doivent tre du mme type que celui de la variable concerne par laffectation.. Exemples :
A 3 : La variable A reoit la valeur 3 X A : La variable X reoit le contenu de la variable A L w: La variable L reoit le caractre w Nom "Ahmed": La variable Nom reoit la chane de caractres

Ahmed
Y A + X : La variable Y reoit le rsultat de lexpression A+X.
19 08/03/2014

3.3- Les expressions et les oprateurs


Une expression est compose doprandes, doprateurs et de

parenthses, et quivalente une seule valeur.


Un oprande est une quantit sur laquelle une opration est

excute. Il peut tre une valeur, une constante, une fonction, etc.
Un oprateur est un signe qui relie deux oprandes, pour produire

un rsultat.
Les types doprateurs et des oprandes dpendent de la nature de

lexpression entrant en jeux.


En algorithmique, on utilise trois types dexpressions :

Les expressions arithmtiques.


Les expressions logiques. Les expressions alphanumriques.
20 08/03/2014

Pr. OUAZZANI CHAHDI

10

08/03/2014

3.3.1- Les expressions arithmtiques Une expression arithmtique est quivalente une valeur de type numrique, et on a :
Les oprandes sont des valeurs numriques, des variables de type

numrique ou des constantes numriques. Et les oprateurs sont les oprateurs arithmtiques et unaires :
+ : addition - : soustraction * : multiplication / : division relle ^ : puissance Mod : modulo Div : division entire Unaire : + et -

Loprateur Mod donne le reste de la division entire entre deux

entiers.
Les oprateurs unaires servent designer le signe dun oprande.

Exemples:

21

-x/5 + (y + 7) a*x ^2 + b*x + c (27 Mod 5) + z^x


08/03/2014

3.3.2- Les expressions logiques Une expression logique est quivalente une valeur de type Logique, et on a :
Les oprandes sont des valeurs, des variables ou des

constantes.
Pour les oprateurs, il existe deux types :

Les oprateurs de comparaison. Les oprateurs logiques.

Les oprateurs de comparaison sont utiliss dans les expressions logiques simples, et les oprateurs logiques sont utiliss dans les expressions logiques composes.

Quest ce quune expression logique simple et quest ce quune expression logique compose ?
22 08/03/2014

Pr. OUAZZANI CHAHDI

11

08/03/2014

Les expressions logiques simples

Une expression logique simple est une comparaison entre deux oprandes, deux expressions ou entre oprande et expression en utilisant les oprateurs de comparaison suivants :
= : gal < : infrieur > : suprieur <= : infrieur ou gal >= : suprieur ou gal <> : diffrent (A + B) <> C/2 c <= Z

Exemples:
A < 3 B >= (A * 7)

Remarques:
Les objets dune comparaison doivent tres du mme type. La comparaison entre les objets de type alphanumrique seffectue en

fonction de lordre alphabtique des caractres, cet ordre est tabli selon le code ASCII.
23 08/03/2014

Les expressions logiques composes

Une expression logique compose est la compose dexpressions logiques simples en utilisant les oprateurs logique ET, OU et NON et ventuellement des parenthses :
Exp1 ET Exp2 : le rsultat est vrai si Exp1 et Exp2 sont

vraies. Exp1 OU Exp2 : le rsultat est vrai si lune des Exp1 ou Exp2 est vraie. NON Exp : le rsultat est vrai si lexpression Exp est fausse. Exemples :
(A < 3) ET (B > 7)

(C >= (X 5)) OU (car <> u)


((D > C) ET (X = 18.5)) OU (NON(A<3)) (z <= A OU char = t) ET NON(car <> u)
24 08/03/2014

Pr. OUAZZANI CHAHDI

12

08/03/2014

3.3.3- Les expressions alphanumriques


Une expression alphanumrique est quivalente une valeur de type Chane, et on a :
Les oprandes sont des valeurs, des variables ou des

constantes. Ils doivent tre de type Caractre ou Chane.


On

utilise un seul oprateur, cest loprateur de concatnation &, il permet de concatner (ou fusionner) deux caractres, deux chanes de caractre, ou caractre et chane de caractres.

Exemples :
ch1 "07ABL" ch2 "XXY" ch3 ch1 & ch2 : la variable ch3 reoit la chane de

caractres "07ABLXXY"
25 08/03/2014

3.3.4- La priorit des oprateurs


La priorit des oprateurs dtermine lordre dvaluation de celles-

ci. Le tableau suivant montre cette priorit dans lordre dcroisant :


Oprateur
Unaires : + - NON ^ * / Div Mod + -& < <= > >= <> = ET

priorit
1 2 3 4 5 6 7

OU

8
9

Pour enlever toute ambigut on utilise les parenthses.


26 08/03/2014

Pr. OUAZZANI CHAHDI

13

08/03/2014

Exemple : On considre lalgorithme suivant : Algorithme Affectation Constante n = 1 Variable X, Y : Rel; T1, T2 : Logique Dbut X -8/2* 3+n Y -8/2*(3+n) T1 n<7 OU X = 2 ET NON(Y >= 10) T2 (n<7 OU X = 2) ET NON(Y >= 10) Fin Question : Evaluez ces expressions et dterminez les valeurs des variables X, Y, T1, T2.
27 08/03/2014

Solution : X -8/2*3+n -8 -4 -12 -11 T1 n<7 OU X=2 ET NON(Y>=10)


Vrai Faux Vrai Faux Vrai Faux

Y -8/2*(3 + n) -8 -4 * -16 4

Pr. OUAZZANI CHAHDI

14

08/03/2014

3.3.5- Les fonctions mathmatiques


Le tableau suivant prsente les fonctions utilises en algorithmique :
Fonction
Quotient(N1, N2) Reste(N1, N2)

Type dargument
Entier Entier

Description
Quotient de la division euclidienne. Reste de la division euclidienne.

Abs(x)
Ent(x) Exp(x) Racine(x) Ln(x), Log(x) Sin(x), Cos(x), Tan(x) Arrondi(x)
29

Rel
Rel Rel Rel Rel Rel Rel Rel

Valeur absolue.
Partie entire. Exponentielle. Racine carre. Logarithme. Sinus, Cosinus et tangente. Arrondi l'entier le plus proche. Entier pseudo-alatoire dans08/03/2014 [0, x[.

Alatoire(x)

Exercice : Ecrire un algorithme qui permet de calculer la surface dun disque en utilisant la relation suivante : S = r. Solution : Algorithme Surface_Disque Constante Pi = 3.14 Variable S, r : Rel Dbut Ecrire("Donnez le rayon : ") Lire(r) S Pi*r^2 Ecrire("La surface est : ", S) Fin

Simulation d'excution
30

08/03/2014

Pr. OUAZZANI CHAHDI

15

08/03/2014

4-Quelques rgles dcriture


4.1- Les mots-cls
Les mots-cls ou mots rservs sont des mots rservs au pseudo-code de lalgorithme , cest--dire constituent le vocabulaire du langage algorithmique. En voici quelques un :
algorithme, alors, boolen, caractre, cas, chane, constante, dbut, crire, entier, et, faire, faux, fermer, fichier, fin, findefichier, finitrer, finpour, finrpter, finselon, finsi, fintantque, fois, fonction, itrer, jusqu', lire, non, ou, ouvrir, pour, prendre, procdure, retourner, rpter, rel, selon, si, sinon, tantque, type, variable, vrai, etc.
31 08/03/2014

4.2- Les identificateurs


Les identificateurs servent dsigner les noms des diffrents objets manipuls par un algorithme: variables, constantes, nom de lalgorithme, etc. Il sont forms de lettres, des chiffres et le blanc soulign (_) , le premier caractre ne devant pas tre un chiffre. Il ne doivent pas correspondre un mot-cl et il ne sont pas sensible la casse. Exemples :
Algo_Test, _total_, _675, valeur_9 : identificateurs corrects.

65_T, x-y, a.b, : identificateurs incorrects.


X et x correspondent au mme identificateur.
32 08/03/2014

Pr. OUAZZANI CHAHDI

16

08/03/2014

4.3- Les sparateurs


Les sparateurs constituent la ponctuation du langage algorithmique. Voici les sparateurs avec leur rle : Symbol
: deux points () parenthses [] crochets . point , virgule ; point-virgule quottes "" guillemets espace
33

Rle
Spare un identifient de son type dans une liste Encadrent des expressions Symboles du composant tableau Accs un composant agrgat Spare les lments dune liste Spare les lments de dclaration Encadrent les caractres Encadrent les chanes de caractres Spare deux mots en labsence dautre sparateurs.
08/03/2014

5- Structure dun programme instructions de bases


5.1- La notion de type en C
En C, le type dune variable sert prciser deux choses :

et

Le domaine des valeurs admissibles : la plage des valeurs

que peut prendre la variable.


Et le nombre d'octets qui est rserv en mmoire pour une

variable. Physiquement, en C, lorsquon dclare une variable, le

microprocesseur lui rserve un espace mmoire dont la taille est


dtermine partir du type de la variable.
34 08/03/2014

Pr. OUAZZANI CHAHDI

17

08/03/2014

5.1 .1- Les types entiers


Le langage C propose trois tailles diffrentes dentier, dsignes

par les mots-cls suivants :


short int (quon peut abrger en short) : Entier court, int : Entier standard, long int (quon peut abrger en long): Entier long. Tous ces types entiers nont pas la mme taille sur toutes les

machines. Par exemple, sur PC on a: Type entier Plage des valeurs Nombre doctets short -32768 -32768 2 int -32768 -32768 2 long -2147483648 2147483648 4
35 08/03/2014

Le modificateur unsigned : ce modificateur ajout la dfinition

d'un type de variable entire permet de dclarer des variables de type entier naturel (non sign), les plages des variables sont dplaces comme suit (sur PC) : Type entier Plage des valeurs Nombre doctets unsigned short 0 65535 2 unsigned int 0 65535 2 unsigned long 0 4294967295 4

36

08/03/2014

Pr. OUAZZANI CHAHDI

18

08/03/2014

5.1 .2- Les types rels


Le langage C propose aussi trois tailles diffrentes de rel,

dsignes par les mots-cls suivants :


float : Rel simple, double : Rel double, long double : Rel long double. Leurs caractristiques sont reprsentes par le tableau suivant :

Type entier Plage des valeurs float 3.4 10-38 3.4 1038 double 1.7 10-308 1.7 10308 Long double 3.4 10-4932 3.4 104932
37

Nombre doctets 4 8 10
08/03/2014

5.1 .3- Le type caractre


En C, le type caractre est dsign par le mot-cl char, il occupe

un espace mmoire dun seul octet. Une variable de type char contient une valeur entire qui correspond au code ASCII dun caractre unique. Ce caractre est dtermin par le compilateur en interprtant ce code ASCII. En fait, la norme prvoit deux types char : signed char et unsigned char : Type entier signed char Plage des valeurs -128 128 Nombre doctets 1

unsigned char

0 255

Remarque : le type char correspond soit lun soit lautre, suivant le compilateur utilis.
38 08/03/2014

Pr. OUAZZANI CHAHDI

19

08/03/2014

5.1 .4- Le type chane de caractres


Ce type sera trait ultrieurement.

5.1 .5- Le type logique ou boolen


En fait le type logique ou boolen nexiste pas en langage C, cest

pour cela C se contente de reprsenter la valeur FAUX par 0 et la valeur VRAI par une valeur non nulle.
Pour une variable logique en C, le plus naturel cest dutiliser une

variable de type entier int. Remarque : Les oprations logiques en C retournent toujours la valeur 0 pour FAUX et la valeur 1 pour VRAI.

39

08/03/2014

5.1 .6- Le type personnaliss


En C, on peut dfinir nos propres types laide du mot-cls typedef.

Syntax : typedef Type NomType;


Exemple: void main() {
typedef int booleen; booleen test1 = 1; booleen test2 = 0; printf("test1 vaut %d et test2 vaut %d ", test1, test2);

}
40 08/03/2014

Pr. OUAZZANI CHAHDI

20

08/03/2014

5.1 .7- Loprateur sizeof


Cet oprateur fournit la taille en octet dune variable ou dun type. Syntax : sizeof(variable) sizeof(Type) Exemple:
void main()

{
short n; float x; printf("La taille de la variable n est %d et celle de x est %d \n", sizeof(n), sizeof(x)); printf("La taille du type int est %d et celle de float est %d \n", sizeof(short), sizeof(float)); }
41 08/03/2014

5.2- Structure dun programme C


void main()
Len-tte du programme Dbut du programme

[ Dclaration des constantes et des variables ]

Bloc de dclaration

[Etapes et Instructions]

Corps du programme

}
42

Fin du programme
08/03/2014

Pr. OUAZZANI CHAHDI

21

08/03/2014

5.2.1- Dclaration des variables et des constantes


Syntaxe de dclaration des variables : 1. Type Var1, var2, , VarN; 2. Type Var1 = val1, , VarN = valN;

La deuxime dclaration permet de donner des valeurs initiales aux variables dclares.
Syntaxe de dclaration des constantes :

const Type NomConst1 = Val1,NomConst2 = Val2 ,,NomConstN = ValN ; Exemples :


int n = 3, m; : n prend 3 comme valeur initiale. float g; int k ; double d; long double x, y; const int L = 100 ;
43 08/03/2014

5.2.2- Les constantes symboliques


Les constantes symboliques permettent de crer un nom pour

une constante et d'utiliser ce nom tout au long du programme. Syntaxe : #define SYMBOLE valeur Exemple
#define PI 3.14 Lusage est de mettre les noms des symboles en #define VRAI 1 majuscule #define FAUX 0 void main() { typedef int booleen; booleen test1 = VRAI; VRAI et FAUX seront remplacs par leurs valeurs booleen test2 = FAUX; avant la compilation }
44 08/03/2014

Pr. OUAZZANI CHAHDI

22

08/03/2014

5.3- Rgle dcriture dun programme C


5.3.1- Les mots-cls
Les mots-cls rservs au langage C sont donns ci-dessous classs par ordre alphabtique :
auto default float register struct volatile

break
case char const continue

do
double else enum extern

for
goto if int long

return
short signed sizeof static

switch
typedef union unsigned void

while

Remarque : Tous les mots-cls du langage C sont en minuscule.


45 08/03/2014

5.3.2- Les sparateurs


Symbol
() parenthses
[] crochets {} . point , virgule ; point-virgule quottes

Rle
Encadrent des expressions
Symboles du composant tableau Dlimiter un bloc dinstructions, initialiser un tableau. Accs un composant agrgat Spare les lments dune liste Spare les instructions Encadrent les caractres

"" guillemets
espace
46

Encadrent les chanes de caractres


Spare deux mots en labsence dautre sparateurs.
08/03/2014

Pr. OUAZZANI CHAHDI

23

08/03/2014

5.3.3- Les commentaires


Les commentaires sont des textes explicatifs destins au lecteur

du programme et qui nont aucune incidence sur sa compilation. Il existe deux types de commentaires :
Les commentaires dans une seule ligne introduit par //. Les commentaires sur plusieurs lignes introduit par /* et */.

Exemple:
void main() { int n; // commentaire sur une seule ligne /* commentaire sur plusieurs lignes */ printf("Commentaires"); }
47 08/03/2014

5.3.4- Lindentation et le format libre


Le langage C autorise une mise en page libre, cest--dire quune

ligne peut comporter plusieurs instructions et quune instruction peut stendre sur plusieurs lignes.
Mais il est prfrable dacqurir les bonnes habitudes de mise en

page pour viter le risque des codes peu lisibles. Remarques:


Les mme rgles concernant les identificateurs vues dans la

partie algorithmique doivent tre respectes dans le langage C. Les constantes et les identificateurs ne doivent pas tre spares par un espace ou crites sur deux lignes. Toutes les instructions du langage C se terminent par un point-virgule.
48 08/03/2014

Pr. OUAZZANI CHAHDI

24

08/03/2014

5.4- Les expressions et les oprateurs en C


5.4.1- Lquivalence des oprateurs algorithmiques en C
Le tableau suivant traduit les oprateurs algorithmiques dans le langage C :
En algorithmique Unaires : + ^ * / + & Mod Div < <= > >=
49

En Langage C + Nexiste pas

En algorithmique = <> NON ET OU

En Langage C == != ! && || =

* / + Nexiste pas

%
Nexiste pas

< <= > >=


08/03/2014

Remarques:
Loprateur Div na pas dquivalence en C, mais la division

euclidienne existe. En effet, en C le quotient de deux entier fourni un entier. Par exemple si n et m sont de type entier de valeurs respectivement 7 et 2, alors n/m vaut 3.
Pour calculer la puissance dun nombre en C on utilise la

fonction mathmatique pow(x, n), cette fonction prend en paramtre deux valeurs relles x et la puissance n et retourne une valeur relle.
Loprateur modulo % nest dfini que sur les types entiers.
50 08/03/2014

Pr. OUAZZANI CHAHDI

25

08/03/2014

5.4.2-Les oprateurs dcrmentation

dincrmentation

et

de

Ces oprateurs remplacent les instructions suivantes :


i = i +1; : cette instruction incrmente de 1 la valeur de i j = j - 1; : cette instruction dcrmente de 1 la valeur de j.

En

C ces instructions peuvent tre raliser par les oprateurs(unaires) dincrmentation ++ et de dcrmentation --. Ces oprateurs sont utiliss de deux manires :
Placs gauche de loprande (++i, --i) : la valeur de i sera

incrmente (ou dcrmente) puis utilise(dans une expression). Placs gauche de loprande (i++, i--) : la valeur de i sera utilise(dans une expression) puis incrmente (ou dcrmente).

Exemple : Si la valeur de i et 7 alors on a :


lexpression n = ++i 7 affectera la valeur 8 et n la valeur 1. Lexpression n = i++ 7 affectera n la valeur 0 et i la valeur 8.
51 08/03/2014

5.4.3-Les oprateurs daffectation largi


Ces oprateurs remplace linstruction

Oprande1 = Oprande1 Oprateur Oprande2; Par : Oprande1 Oprateur= Oprande2;


Ainsi on pourra remplacer linstruction n = n + k par n += k. Cette

possibilit concerne tous les arithmtiques et de manipulation de bits.

oprateurs

binaires

Voici la liste complte :

+=, -=, *=, /=, %=, |=, ^=, &=, <<= et >>=.

52

08/03/2014

Pr. OUAZZANI CHAHDI

26

08/03/2014

5.4.5-Les autres oprateurs du langage C


Le langage C dispose de pas mal doprateurs quon ne peut

traiter tous la fois. Au fur et mesure nous allons en dcouvrir dautres (, ,cast, conditionnel, rfrence, etc.).
Le tableau ci-aprs fourni une liste complte des oprateurs du

langage C classs par ordre de priorit et accompagns de leur mode dassociativit.

53

08/03/2014

Catgories Rfrence Unaire () [] + + << >> < <= == != & ^ | && > >= -> . ++ --

Oprateurs ! ~ * & (cast) sizeof

Associativit

Arithmtique
Arithmtique Dcalage Relationnels Relationnels Manip. De bits Manip. De bits Manip. De bits Logique

* / %

Logique
Conditionnel Affectation Squentiel
54

||
? : = += >>= , -= *= /= %= &= ^= |= <<=


08/03/2014

Pr. OUAZZANI CHAHDI

27

08/03/2014

5.4.6-Les fonctions mathmatiques


Fonction sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) atan2(x,y) sinh(x) cosh(x) sin-1(x) cos-1(x) arctan(x) arctan(y/x) sh(x) ch(x) Description Fonction tanh(x) exp(x) log(x) log10(x) pow(x,n) sqrt(x) ceil(x) floor(x) fabs(x) Ln(x) Log base 10
Arrondi l'entier le plus proche.

Description th(x)

Partie entire

55

08/03/2014

Remarques : Toutes ces fonctions renvoient une valeur de type double. La constante prdfinie M_PI reprsente la valeur . Pour utiliser les fonctions mathmatiques et la constante M_PI on doit ajouter la linge #include<math.h> au dbut du fichier source de notre programme. Exemple:
#include<math.h> void main() {
int n = -12; float x = -atan2(2, M_PI); n = fabs(n); printf("n = %d, x = %f \n", n, x);

}
56 08/03/2014

Pr. OUAZZANI CHAHDI

28

08/03/2014

5.5- Les entres-sorties conversationnelles


Les instructions de lecture et dcriture en C sont donn par le tableau suivant :
En algorithmique Ecrire() Lire() En langage C printf() scanf()

5.5.1-La fonction printf


Syntaxe : printf(format, liste_expressions);
format : est une chane de caractres qui spcifie la fois des

caractres afficher tels quels, et des codes de format reprs par %.


liste_expressions : suite dexpressions spares par des virgules,

dun type en accord avec le code de format correspondant.


57 08/03/2014

Les codes de conversion

Les codes de format prcisent le type dinformation afficher. Les principaux codes de format de la fonction printf son les suivant :
Code %c %u %ld %lu %f char unsigned int, unsigned char, unsigned short long unsigned long float, double %d ou %i int Type afficher

%e
%s

float, double crit en notation exponentielle


chane de caractres dont on fournit ladresse

58

08/03/2014

Pr. OUAZZANI CHAHDI

29

08/03/2014

Les caractres non imprimables

Les caractres non imprimables sont des caractres qui nont pas de graphisme, comme la tabulation, le retour la ligne, saut de page, etc. Le tableau suivant montre ces caractres avec leur rle.
Caractre \a \b \f \n Rle cloche ou bip Retour arrire Saut de page Saut de ligne Caractre \r \t \v Rle Retour chariot Tabulation horizontale Tabulation verticale

Remarques :
Si on veut afficher un caractre qui joue le rle dun dlimiteur comme par exemple " ou \, on doit le prcder par \. pour utiliser la fonction printf (ou scanf) on doit ajouter la ligne #include<stdio.h> au dbut de notre fichier source.

59 08/03/2014

Exemple :
#include<stdio.h> void main() { int n = 10; float x = 3.8; double d = 2.9875; char c = 'A'; printf("\a Exemple d'excution avec la fonction printf \n"); printf("\t n = %d, x = %f, d = %f, c = %c \n ", n, x, d, c);

printf("Les caractres \" et \\ jouent le rle de dlimiteurs \n");


}
60 08/03/2014

Pr. OUAZZANI CHAHDI

30

08/03/2014

5.5.2-La fonction scanf


Syntaxe : scanf(format, liste_expressions);
format : est une chane de caractres qui spcifie le format de lecture

des donnes, en utilisant les codes de format reprs par %. liste_adresses : suite dadresses des variables spares par des virgules, dun type en accord avec le code de format correspondant.

Les principaux codes de format de la fonction scanf son les suivant :


Code %c %d %u %hd %hu
61

Type char int unsigned int short int unsigned short

Code %ld %lu %f %lf %s long int

Type unsigned long float double chane de caractres dont on fournit ladresse
08/03/2014

Remarque :
Ladresse dune variable est dtermine laide de loprateur & (voir plus loin). Exemple :
#include<stdio.h> void main() { int n; float x; double l; printf("Donnez trois valeurs respectivement de type int, float et double : "); scanf("%d %f %lf", &n, &x, &l); printf("n = %d, x = %f, l = %f \n", n, x, l); }
62 08/03/2014

Pr. OUAZZANI CHAHDI

31

Vous aimerez peut-être aussi