Les identificateurs
Les identificateurs permettent de désigner les objets manipulés dans un programme, Exemple: les variables, les constantes, les fonctions.
Comme dans la plus part des langages, les identificateurs sont formés d'une suite de caractères alphanumérique. Le premier caractère étant toujours une lettre.
En C: le caractère _ est considéré comme une lettre, il peut donc apparaitre au début d'un identificateur.
Les majuscules et les minuscules sont autorisées mais ne sont pas équivalentes.
Les mots clés
Ce sont des mots prédéfinis, c'est-à-dire qu'ils sont réservés par le langage. Ces mots ne peuvent pas être utilisés comme identificateur.
Voici la liste de quelques mots clés: break, case, char, const, default, do, double, else, enum, extern, float, for, goto, if, int, long, return, short, signed, size of, static, struct, switch, union, unisigned, void, wihle.
Les types de base
Un type représente un ensemble de valeur, on distingue:
- Les types scalaires ou types simples contiennent une seule valeur.
- Les types structurés ou types composés qui contiennent plusieurs valeurs de même type ou non.
Les types de base du langage C sont repartis en 3 grandes catégories en fonction de la nature des informations à représenter. C'est ainsi qu'on distingue:
- Les nombres entiers: int
- Les nombres réels ou flottants: float ou double
- Les caractères: char
Le type entier
Le mot utilisé est int, le type entier représente les nombres entiers relatifs.
En C, on distingue 3 types d'entier:
- short int ou short : 16 bits
- int : 16 bits
- longint : 32 bits
Chacun des 3 typs peut être accompagné du mot unsigne.
Le type réel
Le mot utilisé est fload.
En C, comme dans la plus part des langages, les nombres réels peuvent se représenter de deux façons différentes.
Exemple de nombre avec la forme décimale: 14.52; -0.45; 12.; .28
On distingue 3 types de réel:
- float : 32 bits
- double : 64 bits
- longdouble : 80 bits
Le type caractère
Le mot utilisé est char. Il est codé sur 8 bits. Les constantes de type caractère se placent entre les côtes. Exemple 'a'; 'A'; ... ; ‘y’.
On distingue des caractères spéciaux non imprimables qui utilisent l'anti slache (\).
On peut citer:
- \t pour aller à la ligne
- \t pour la tabulation horizontale
- \v pour la tabulation verticale
- \b pour un décalage en arrière.
- \a renvoie un petit bip sonore
Décalage, initialisation et constante
- Le format général de la déclaration d'une variable en C est:
type élément nom élément;
Exemple:
int a;
float x; - La directive #define permet de donner une valeur à un objet.
Exemple:
#define N 100
#define true 1
#define false 0
Le langage C permet également de déclarer les constantes de la manière suivante.
Exemple:
const int n=25; - En C, il est possible d'initialiser une variable lors de sa déclaration.
Exemple: int i=1;
Les opérateurs
Les opérateurs arithmétiques
Ces opérateurs concernent les types int, longint, float, double, longdouble.
Les opérateurs binaires
Ils portent sur deux opérantes, on a:
- L'addition (+)
- La soustraction (-)
- La multiplication (*)
- La division (/)
- Le modulo (%)
Opérateurs unaires
Ces opérateurs portent sur une opérante: + et -
Exemple: i++
Les opérateurs relationnels
En C, le résultat d'une comparaison est un type entier et non un type booléen comme dans les autres langages. Ainsi le résultat d'une comparaison vaut 0 s'il est faux et 1 s'il est vraie.
Les opérateurs relationnels sont:
- inférieur (<)
- Supérieurs (>)
- Inférieur ou égale (<=)
- Supérieur ou égale (>=)
- Egale à (==)
- Différent de (!=)
Les opérateurs relationnels sots moins prioritaires que les opérateurs arithmétiques.
Exemple:
x = 3;
y = 1;
(x>y) == (2<x)
Les opérateurs logiques
On peut citer:
- Le et ; and : &&
- Le ou ; or : ||
- Le non ; not : !
Exemple: if(!) est équivalent de if(n==0)
L'opérateur d'affectation
Le mot utilisé est =
L'opérateur d'affectation en C possède une associativité de la droite vers la gauche. On parle dans ce cas d'une affectation multiple.
Exemple:
y = x = 1;
Attention:
float i;
int j;
i = j = 2,6;
Cette associativité de l'association peut entrainer une conversion forcée par l'affectation.
Exemple:
Soit les instructions suivantes:
short x;
double y, z;
y = x = 2,5 /*affectation multiple*/
z = x+y; /*quelle est la réponse?*/
z = 2 + 2.
z= 4.
L'opération de condition
Exemple:
if (condition)
z = val vrai;
else
z = val faux
équivaut à z = condition?val vrai:val faux
Exemple pratique:
if(a<2)
x = a+1;
else
x = a;
équivaut à x=(a<2)? a+1:a;
La lecture et l'écriture
La lecture
La lecture permet d'introduire une valeur dans un objet. En C le mot utilisé est scanf. La syntaxe du mot scanf est:
scanf(format, liste des variables);
format est une constante qui est sous la forme "%code" , où code peut être:
- c : char
- d : int
- f ou e : float>
- s : chaîne caractères
- lf ou le : double
- ld : long int
- rd : short int
- u : unsigned int
La liste des adresse est toujours précédée par &
Exemple:
scanf("%d", &a);
scanf("%f", &x);
scanf("%c %f", &x, &y);
La macro joue le même rôle que scanf lors de la lecture d'un caractère.
Exemple:
c=getchar( ); scanf("%c", &c);
Cependant l'exécution de getchar est plus rapide que scanf car elle ne fait pas appel au mécanisme d'analyse de format. Dans ce cas l'utilisateur de la primitive include<stdio.h> est impératif.
L'écriture
L'écriture permet d'afficher les éléments traités par l'ordinateur Le mot utilisé est printf
Syntaxe:
printf (format, [liste des variables]);
format = "%code"
Exemple:
printf("%d", n);
La macro putchar( ) équivaut à printf
Exemple:
putchar(c); printf("%c", x)
L'exécution de l'instruction putchar() est plus rapide que printf.
Exemple:
Ecrire un programme en C qui permet de lire deux nombre réels calculé et affiche la somme et la moyenne de ces nombres.
#include<stdio.h>
#include<conio.h>
main()
{
float x, y, s, m;
clrscr();
printf("Entrer le premier nombre:");
scanf("%f", &x);
printf("\n Entrer le second nombre:");
scanf("%f", &y);
s = x+y;
m = s/2;
printf("\n La somme de %3.2f et %3.2f est: %3.2f", x, y, s);
printf("\n La moyenne est: %3.2f", n);
getch();
return 0;
}
Résultat affiché à l'écran:
Entrer le premier nombre: 3
Entrer le second nombre: 3
La somme de 3.00 et 3.00 est: 6.00
La moyenne est: 3.00s