0% ont trouvé ce document utile (0 vote)
31 vues31 pages

Chapitre 2

Transféré par

nkonisamuel71
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues31 pages

Chapitre 2

Transféré par

nkonisamuel71
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2

Syntaxe de
langage C

ISET SILIANA 1
PLAN

• La structure d’un programme C


• Les composants d’un programme C
• Les opérateurs d’un programme C

ISET SILIANA 2
Structure d’un programme C
Un programme en C comporte :
Partie 1: les déclarations.
Partie 2: le corps de programme.
Déclaration de bibliothèques /*Directives de compilation*/
Déclaration du nouveau type Partie 1
Déclaration des constantes
Déclaration des variables globales
main() /*Programme principal*/
{ /*Début du programme*/

Déclaration de variables internes; /*Corps du programme*/


Partie 2
Suites des instructions /*Chaque instructions doit se terminer par ;*/
return 0;
} /*Fin du programme*/
ISET SILIANA 3
Structure d’un programme C
Partie 1:
• Il fait appel à des bibliothèque fournies avec le compilateur.
• Afin d’utiliser des fonctions prédéfinies, on peut inclure dans
notre programme C des bibliothèques.
Exemples:
math.h: bibliothèque de fonctions mathématiques.
stdio.h: bibliothèque d’entrées/sorties standard
( Lire,Ecrire).
• Pour les inclure, il faut les mettre en haut du programme C en
utilisant :
# include<math.h> ou
#include<stdio.h>.
• On peut déclarer des constantes , des variables globales et de
créer des nouveaux types.
• Cette partie peut contenir des définitions des fonctions qui
seront utilisées par l’ intermédiaire de la fonction principale
main. ISET SILIANA 4
Structure d’un programme C

Partie 2:

• Tout programme c doit comporter une fonction principale main.


• Cette fonction est celle utilisée par le système pour exécuter le
programme.
• Elle comporte deux accolades d’ouverture et de fermeture.
• À l’intérieur, chaque ligne doit se terminer par ; .
• L’instruction return ne recevra aucune valeur ou sera absente.
Remarques:
• Le langage C distingue les minuscules, des majuscules.
• Les mots réservés du langage C doivent être écrits en
minuscules.

ISET SILIANA 5
Structure d’un
programme C
Exemple 1:
#include <stdio.h> /* bibliotheque d'entrees-sorties
standard */
main()
{ printf("BONJOUR \n"); /* utilisation d'une fonction-
bibliotheque */
printf("Pour continuer frapper une touche...");
}
BONJOUR après compilation et exécution:
Résultat
Pour continuer frapper une touche…..

ISET SILIANA 6
Les composants
d’un programme C

1. Les mots clés

Ce sont les mots propres au langage C. Ils sont utilisés pour


décrire les instructions à réaliser par le programme ainsi
que les types prédéfinis.
L'ANSI-C compte 32 mots clefs :

Exemples : auto const double float int short struct


unsigned break continue else for long signed switch
void case default enum goto register sizeof typedef
volatile char do extern if return static union while

ISET SILIANA 7
Les composants d’un
programme C
En C, il n’existe que quelques types fondamentaux
de données :
• Le type char : un seul octet représentant un
caractère.
• Le type int : un nombre entier dont la taille
corresponds à celles des entiers du SE.
• Le type float : un nombre en virgule flottante en
simple précision.
• Le type double : un nombre en virgule flottante en
double précision.
 Quand une déclaration ne précise pas le type de
base, int est supposé le type par défaut.
ISET SILIANA 8
Les composants d’un
programme C
• Exemple :
Ch1
Etu_8 corrects
x

2etu
Etudiant 4 incorrects

Char
ISET SILIANA 9
Les composants d’un
programme C
3. Les types de données
3.1. Les entiers:
Type Description Taille mémoire

int entier standard signé 4 octets


unsigned int entier positif 4 octets
short entier court signé 2 octets
unsigned short entier court non 2 octets
signé
long entier long signé 8 octets
unsigned long entier long non signé 8 octets
char caractère signé 1 octet
unsigned char caractère non signé 1 octet

ISET SILIANA 10
Les composants d’un
programme C
3.2. Les réels:
• Un réel est composée d’un signe, d’une mantisse et d’un
exposant.
• Un nombre de bits est réservé en mémoire pour chaque
élément.
Typec distingue
• Le langage Description
3 types de réels: Taille
float réel standard 4 octets

double réel double 8 octets


précision

long double réel quadripule 16 octets


précision

ISET SILIANA
11
Département Électrique
Les composants d’un
programme C
4. Les variables
Les variables doivent être déclarées avant d’être
utilisées. Une variable correspond un espace en
mémoire et un mécanisme permettant d’adresser
cet emplacement.
En C une variable est caractérisé par :
• Son nom (un identificateur)
• Son type (type de base ou type définie par
l’utilisateur)

ISET SILIANA 12
Les composants d’un
programme C
• La déclaration est comme suit :

Type identificateur_var ;
Type identificateur_var1,
identificateur_var2 ;

Exemples :
int x ;
char a,b,c;
ISET SILIANA 13
Les composants d’un
• programme C
On peut définir de nouveaux types à l’aide de la
fonction typedef :
• Exemple:
typedef int entier; /*fait du nouveau nom
entier un synonyme de int */
typedef float reel;
En général, nous avons le choix entre plusieurs
types.
reel x; est équivalant à float x;
entier a; est équivalant à int a;

ISET SILIANA 14
Les composants d’un
programme C
5. Les commentaires
• Il est fortement recommandé d'inclure dans le
programme source des commentaires pour faciliter la
compréhension du programme.

• Un commentaire en C commence toujours par les deux


symboles /* et se termine par les deux symboles */
Exemples :

/* ceci est un commentaire sur une seule ligne */

/* ce commentaire porte
sur deux lignes */
ISET SILIANA 15
Les composants d’un
programme C
6. Les constantes
• Les constantes doivent toutes être déclarées et initialisées avant
d’être utilisées. Il existe 2 méthodes pour la déclaration des
constantes.

Méthode 1 : #define nom_cste valeur /* Sans point virgule à la


fin */
Exemple : #define PI 3.14
Le compilateur ne réserve pas de place en mémoire. Les constantes
déclarées par #define s'écrivent traditionnellement en majuscules,
mais ce n'est pas une obligation.

Méthode 2 : const type nom_cste = valeur ;


Exemple : const float PI = 3.14 ;
Dans ce cas, le compilateur réserve de la place en mémoire (ici 4
octets), pour la variable PI, mais dont on ne peut changer la valeur.
ISET SILIANA 16
Les opérateurs
Ce sont des symboles qui permettent de manipuler des
variables, c'est-à-dire effectuer des opérations, les
évaluer .
En langage C, on distingue plusieurs types d'opérateurs :
• L’opérateur d’affectation
• Les opérateurs de calcul
• Les opérateurs d'assignation
• Les opérateurs de comparaison
• Les opérateurs logiques
• Les opérateurs d'incrémentation
• Les opérateurs de conversion de type
• L’opérateur conditionnel ternaire

ISET SILIANA 17
Les opérateurs
• L’opérateur d’affectation =
Exemple : int x;
int y = 2;
x=y;
• Les opérateurs arithmétiques
+, -, *, /, % (modulo, le reste de la division)
Exemple : int x, y;
x = 5;
y=x %2;

ISET SILIANA 18
Les opérateurs
• Les opérateurs d’affectation et calculs
arithmétiques

Les opérateurs "+=", "-=","*=", "/=" et "%="


affectent à leur opérande gauche la valeur de
l'expression formée par l'opérande gauche,
l'opérateur arithmétique correspondant et
l'opérande droite.

Exemple : L'expression A += B est équivalente à A


= A+B

ISET SILIANA 19
Les opérateurs
• Les opérateurs logiques booléens: prends
0 ou 1
&& : ET logique
|| : OU logique
! Négation logique
Exemple:
if ( age >= 7 && age <= 77 ) puts( "yes" );
if ( age < 7 || age > 77 ) puts( "no" );
if ( ! ( age >= 7 && age <= 77 )
puts( "no!!" );
ISET SILIANA 20
Les opérateurs
• L'opérateur logique sur les entiers bit par bit:
& ET
| OU
<< décalage à gauche
>> décalage à droite
Exemple :
N=23; /*N=00010111 en binaire */
P=N<<2; /*p=n décalé de 2 bits à gauche
=0001011100
Q=N>>1; /*p=n décalé de 1 bit à droite= 000010111
Les opérateurs

• Les opérateurs relationnels:


<, >, <=, >=
Si le test est vrai ,elle retourne 1 sinon 0.
== tester l’égalité
!= tester l’inégalité (différent)
Attention à ne pas confondre l’opérateur de test
d’égalité == et l’opérateur d’affectation =

ISET SILIANA 22
Les opérateurs
• Les opérateurs d'incrémentation et de
décrémentation: ++ / --
o Deux notations: la notation préfixe(++i,--i) et la notation
postfixe(i++,i---)
i=i+1; équivalente i++;
i=i-1; équivalente i--;
o Les opérateurs ++ et -- sont utilisés dans les cas suivants:
 Incrémenter /décrémenter une variable dans une
boucle par exemple. Dans ce cas, il n’y a pas une
différence entre la notation préfixe et la notation
postfixe.
 Incrémenter/décrémenter une variable et en même
temps affecter sa valeur à un autre variable. Dans ce
cas, il y a uneISETdifférence
SILIANA entre la notation préfixe et la
notation postfixe.
Département Eléctrique
23
Les opérateurs
• Notation post fixe:
X=i++; passe d’abord la valeur de i à X et
incrémentation après.
• Notation préfixe:
X=++i; incrémente d’abord et passe la valeur de
i à X.
• Par exemple :
int x =3, y, z ;
y = ++x ; /* x et y valent 4 */
z = y++ ; /* z vaut 4 et y vaut 5 */

ISET SILIANA 24
Les opérateurs
• L’opérateur conditionnel ternaire: permet,
sur une seule ligne, en fonction d'une condition,
de changer la valeur d'une variable.
– L'opérateur conditionnel « ? » est un opérateur
ternaire de syntaxe : Condition ? expression1 :
expression2 ;
– Cette expression retourne la valeur de « expression1 »
si « condition » est satisfaite, et renvoie la valeur de «
expression2 » sinon.
– Par exemple, l'expression : Max = ((X > Y) ? X : Y) ;
– Cette instruction affecte à Max le maximum de X et de
Y, et elle est équivalente à : si( X> Y) alors Max
= X ; sinon Max = Y ;

ISET SILIANA 25
Les opérateurs
• L'opérateur de conversion de type (cast):
L’opérateur de transtypage en français, appelé
aussi cast, permet de transformer des données
d'un type vers un autre type, c'est-à-dire modifier
explicitement le type d’une variable.
Cas 1:Conversion automatique: le type le
plus petit vers le type le plus large
 Les opérateurs de cast peuvent être utilisés de
manière implicite par le compilateur pour
transformer.
 il n'y aura aucune perte d'information.
char en int , float en double,…………….
ISET SILIANA 26
Les opérateurs
Exemple:
int i=8;
float x=12.5;
double y;
Y=i*x;
i est converti en float pour être multiplié par x.
Le résultat de la multiplication est de type float.
Avant d’ être affecté à y, le résultat est converti en
double.
On obtient y=100.0

ISET SILIANA 27
Les opérateurs
• Cas 2:conversions forcées
il est possible de convertir explicitement une valeur en
un type quelconque en forçant la transformation à
l’aide de la syntaxe :
(<type>) <expression>
Exemple:
int a=3;
int b=4;
float c;
c=(float) a/b;
• La valeur de a est explicitement converti en float .
• La valeur de b est automatiquement convertie en float.
• Le résultat de la division est affecté à c.
• Les contenus de a et b restent inchangés, seulement
ISET SILIANA
les valeurs utilisées dans les calculs sont converties. 28
Priorité des opérateurs:
Priorité 1(la plus fort) () [] _>
Priorité 2 ! ++ --
Priorité 3 */ %

Priorité 4 + -
Priorité 5 << >>
Priorité 6 < <= > =>
Priorité 7 == !=
Priorité 8 &
priorité 9 ~
Priorité 10 |
Priorité 11 &&
Priorité 12 ||
Priorité 13 ?
Priorité 14 = += -= *= %= <<=
>>=
Priorité 15 ,
ISET SILIANA 29
Exercice d’application

Exercice 1: Eliminer les parenthèses superflues


dans les expressions suivantes :

a = (x+5) ; // expression 1
a = (x=y) + 2 ; // expression 2
a = (x == y) ; // expression 3
(a<b) && (c<d) ; // expression 4
(i++) * (n+p) ; // expression 5

ISET SILIANA 30
Exercice d’application

Exercice 2: Soient les déclarations suivantes :


int n=5, p=9 ;
int q ; float x ;

Quelle est la valeur affectée aux différentes variables par chacune


des instructions suivantes :
q=n<p ; /*1*/
q=n==p ; /*2*/
q=p%n+p>n ;/*3*/
x=p/n ; /*4*/
x=(float) p/n ; /*5*/
x=(p+0.5)/n ; /*6*/
x= (int) (p+ 0.5)/n ; /*7*/
p=n*(p>n ? n : p) ; /*8*/
q=n*(p<n ? n :p) ; /*9*/
ISET SILIANA 31

Vous aimerez peut-être aussi