opérateurs

publicité
Introduction au langage C
1ère année Génie Informatique
Dr Daouda Traoré
Université de Ségou
email: [email protected]
Introduction au langage C
 Objectifs:
• L’objectif est d’initier les étudiants à la programmation à
travers l’utilisation du langage C
Introduction au langage C
 Exemple de programme en C:
#include <stdio.h>
int main() {
int tab[5];
int i;
for(i=0; i <5; i++) {
tab[i] = (i+1);
}
for(i=1; i <5; i++) {
tab[i] = tab[i]+tab[i-1];
}
for(i=0; i < 5; i++) {
printf("tab[%d] = %d\n" , i, tab[i]);
}
return 0;
}
Introduction au langage C
 Etapes de création d’un programme C
 Edition d’un fichier source (avec comme extension .c) à l’aide d’un éditeur
de programme. Cette phase s’appelle édition de programme.
 Traduire le programme source (proc.c) en langage machine (binaire) qui
aura pour extension .o (proc.o). Cette s’appelle compilation
 Liaison des fichiers objets (.o) qui peuvent être des fichiers de la
bibliothèque standard, des fichiers utilisateurs implémentant des fonctions
utilisées dans proc.o. Cette pahase s’appelle édition de liens.
 Création de l’exécutable du programme. C’est l’exécutable permet de
lancer le programme.
Notion de type
 Définition
 Un type est un ensemble nommé de valeurs, muni d’opérations sur ces
valeurs.
 Exemple :
Type Entier (ensemble de tous les entiers relatifs); les opérations sur le
type entier sont : addition, soustraction, multiplication, division,
comparaison,….
Type Personne (ensemble de toutes les personnes). Les opérations
peuvent être : sexe, âge, taille, nom, prénom, …
 Utilité des types
 Vérification du programme
 On s’assure dès la compilation que les bonnes opérations sont exécutées sur les bons types
 Contre-exemple : application de la fonction racine carrée sur une personne
 Lisibilité du programme : le type de toutes les variables est connu
 Une variable est un nom associé à un contenu stocké en mémoire.
 Représentation des valeurs en machine
 Le type indique la place en mémoire à réserver pour la variable
Notion de type
 Signification
 Un type permet d’attribuer une signification à un code binaire
01001101
77
Entier
positif
M
Caractère en
ASCII
Mauve
Couleur parmi 256
Add
Instruction
machine
Les types primitifs en C
 Les types primitifs sont définis dans le langage, ils
correspondent aux informations élémentaires (entier, caractère,
réel, boolean…)
 Les autres types sont construits par le programmeur en
fonction des besoins (Complexe, Personne, Voiture, …) ou
fournit par le langage (bibliothèque)
 Les types primitifs en C se répartissent en trois grandes
catégories en fonction de la nature des informations qu’ils
permettent de représenter :
 Nombres entiers (mot clé int)
 Nombres flottants (mot clé float ou double)
 Caractère (mot clé char)
Les types entiers en C
 Le mot clé int représente les nombres entiers relatifs. Un bit est
réservé pour représenter le signe du nombre (0 pour un nombre
positif et 1 pour un nombre négatif)
 Les différents types d’entiers






short int (short)
int
long int (long)
unsigned short int (unsigned short)
unsigned int
unsigned long int (long)
Les types flottant en C
 Le mot clé float ou double représente de manière approchée,
une partie des nombres réels.
 Les différents types flottant
 float
 double
 Long double
Les types caractères en C
 Le mot clé char représente les caractères en C.
 En général le caractère est codé en mémoire sur un octet
 L’ensemble des caractères représentables, dépend de
l’environnement de programmation utilisé (la machine ou le
compilateur utilisé)
 On dispose des lettres majuscules et minuscules, des chiffres,
des signes de ponctuation et des différents séparateurs.
Les constantes
 Le mot constantes sont des données dont la valeur ne peut être
modifiée. Elles sont généralement définies en début de
programme. La valeur que la constante contient peut être de
tout type, suivant ce que le langage autorise.
 Exemple en C :






Des constantes entières : 48, -25
Des constantes float : 12.43, -0.38
Des constantes doube : 4.25E+4
Les constantes char : ‘a’, ‘r’, ‘+’, ‘$’
Le caractère de saut de ligne \n
Le caractère de tabulation \t
Déclaration d’une variable
 Pour déclarer une variable en langage C, il faut d’abord préciser
le type de la variable, suivi du nom de la variable puis d’un point
virgule.
 La syntaxe d’une déclaration de variable est la suivante :
type_variable Nom_variable;
 Il est possible de déclarer une variable en lui donnant une
valeur initiale.
 La syntaxe d’une déclaration de variable est la suivante :
type_variale Nom_variable = Valeur_Initiale;
 Il est possible de déclarer plusieurs variables sur une même
ligne
 La syntaxe d’une déclaration de variable est la suivante :
type_variale variable1, variable2, ….variableN;
Initialisation et constantes
 La directive #define permet de donner une valeur à un
symbole : #define a 10
 Il est possible d’initialiser une variable lors de sa déclaration
comme : int a = 10;
 Il est possible de déclarer que la valeur d’une variable ne doit
pas changer lors de l’exécution du programme. Par exemple :
const int x = 20;
Les instructions
 Définition

Instruction : c’est l’élément clé du programme informatique car elle permet de
spécifier au processeur l’action à effectuer. Une instruction est généralement
composée de deux éléments :


L’opérateur : l’action à effectuer par le processeur
Le ou les opérandes : une ou plusieurs données sur lesquelles l’opération sera effectuée.
 Les instructions sont généralement séparées les unes des autres par des
séparateurs dépendant du langage de programmation utilisé. La plus part du
temps, il s’agit d’un point-virgule. En langage C, une instruction sera notée
comme suit : instruction;
 Il est possible de regrouper plusieurs instructions, dans ce que l’on appelle
bloc. Il s’ agit d’un ensemble d’instructions (suivies respectivement par des
séparateurs) et la plus part du temps comprises entre les accolades { et }.
Les opérateurs
 Les opérateurs sont des symboles qui permettent de manipuler des variables,
c’est-à-dire d’effectuer des opérations, de les évaluer, etc. On distingue
généralement deux ou trois types d’opérateurs :
 Les opérateurs unaires : ce sont des opérateurs qui n’admettent qu’un seule
opérande.
 Les opérateurs binaires : ce sont des opérateurs qui admettent deux opérandes.
 Les opérateurs ternaires : ce sont des opérateurs qui admettent trois opérandes.
Les opérateurs
 Les opérateurs de calcul permettent de modifier mathématiquement la valeur
d’une variable. Ils sont : + (addition), -(soustraction), *(multiplication),
/(division), = (affectation), % (modulo)
 Les opérateurs d’affectation permettent de simplifier des opérations telles
qu’ajouter une valeur dans une variable et stocker le résultat dans la variable. Il
sont : += (ajoute l’opérande de gauche à l’opérande de droite et stocke le
résultat dans l’opérande de gauche), -=(soustrait l’opérande de droite à
l’opérande de gauche et stocke le résultat dans l’opérande de gauche),
*=(multiplie l’opérande de gauche par l’opérande de droite et stocke le résultat
dans l’opérande de gauche), /=(ajoute l’opérande de gauche par l’opérande de
droite et stocke le résultat dans l’opérande de gauche), %=(calcule le reste de
la division entière de l’opérande de gauche par l’opérande de droite et stocke le
résultat dans l’opérande de gauche
Les opérateurs
 Les opérateurs d’incrémentation permettent de facilement augmenter ou
diminuer d’une unité d’une variable. Ils sont : + +(incrémentation,
augmente d’une unité la variable, --(décrémentation, diminue d’une
unité la variable)
 Les opérateurs de comparaison permettent d’effectuer des tests de
comparaison entre deux valeurs. Il sont : != (différence), !== (non identité),
< (infériorité stricte), <= (infériorité), >(supériorité stricte), >= (supériorité)
 Les opérateurs logiques (booléens) permettent de vérifier si plusieurs
conditions sont vraies. Il sont : || (OU logique, vérifie qu’une des conditions est
réalisée), && (ET logique, vérifie que toutes les conditions sont réalisées),
!(NON logique, inverse l’état d’une variable booléenne).
Les opérateurs
 Les opérateurs bit-à-bit traitent leurs opérandes comme des données
binaires, plutôt que comme des données décimales, hexadécimale ou octale. Ils
sont : & (Et bit-à-bit), |(OU bit-à-bit), ^(OU bit-à-bit exclusif) .
Les expressions
 Définition
 Une expression est constituée de littéraux, de variables et d’opérateurs, elle
renvoie une valeur.
 Une expression a un type que l’on peut calculer par inférence des types de
ses sous-expressions.
 Ordre d’évaluation d’une expression
 Une priorité est attribué à chaque opérateur
 L’opérateur de priorité la plus élevée dans une expression est évalué en
premier
 En cas d’égalité de priorité on évalue de gauche à droite
 Les opérateurs binaires sont associatifs à gauche
 On peut « forcer » la priorité en parenthésant
Priorité des opérateurs
 De plus prioritaire au moins prioritaire
1. !, -(unaire)
2. *, /, %
3. +, 4. <, >, <=, >=
5. ==, !=
6. &
7. ^
8. |
9. &&
10. ||
11. =, +=, -=, /=, *=
Conversions implicites
 Conversion sans perte
char->int -> long -> float -> double -> long double
Exemple :
int x = 5;
float y = 6;
le résultat x+y sera de type float
 Conversion avec perte
char <- int <- long <- float <- double <- long double
Exemple:
int x = 5;
float y = 6.0;
int p = y+x //le résultat x+y sera converti en int
Téléchargement