CH-01 Introduction
CH-01 Introduction
CH-01 Introduction
Atelier de Programmation: I
- Le Langage C -
1. Introduction au langage C
3. Opérateurs et expressions
2
Histoire du C
Origines
C a trois ancêtres : les langages CPL, BCPL et B.
1. Introduction au langage C
3. Opérateurs et expressions
5
1. Introduction au langage C
- …
…
…
Exemple: main()
{
printf(’’Bonjour!’’);
}
Source.c
7
Compilation Exécutable
Sommaire
1. Introduction au langage C
3. Opérateurs et expressions
8
2. Notions de base
2.1 Structure générale d’un programme écrit en C
Exemple:
#include <nom_bibliothèque>
[Définition des constantes] La fonction principale de votre programme
void main()
{
Délimiteur de Bloc [Déclaration des variables]
Suite d'instructions
}
Include…
…
…
constante … 9
variable …
2. Notions de base
Exemple:
10
2. Notions de base
2.2 Les fichiers include
Exemple:
# include <stdio.h>
main()
{
printf("Bonjour les amis");
}
- stdio.h: …
- ctype.h: …
- math.h: …
- stdlib.h: …
- string.h: …
- conio.h: …
12
2. Notions de base
2.4 Les commentaires
- Un commentaire est délimité par /* et se termine par */
- // est un commentaire jusqu’à la fin de la ligne
Exemple:
13
2. Notions de base
2.5 Les constantes
Constante Globale:…..
- Syntaxe:…..
Exemple:
14
2. Notions de base
2.5 Les constantes
Constante locale:….
- Syntaxe:….
Exemple:
15
2. Notions de base
2.6 Les variables
- Syntaxe: ….
Exemple:
….
On peut déclarer dans une seule ligne des variables de même type
- Syntaxe: ….
Exemple:
….
On peut initialiser une variable lors de sa déclaration
- Syntaxe: ….
16
Exemple:
2. Notions de base
2.7 Les identificateurs
- ….
- …
…
- …
- …
…
…
17
2. Notions de base
2.7 Les identificateurs
…. 1nom
…. Nom.2
…. -nom-3
…. Nom de variable
…. deuxième_choix
…. mot_français
18
2. Notions de base
2.8 Les Types dans la langage C
Ils peuvent être signés ou non signés : signed ou unsigned (unsigned int x;)
19
2. Notions de base
a. Les Types Entiers
Chacun des 3 peut être nuancé par l’utilisation du qualificatif unsigned pour ne
représenter que des nombres positifs:
……… : réel standards, 6 chiffres après la virgule, « codé sur 4 octets avec 1 bit
de signe, 23 bits de mantisse et 8 bits d'exposant »
…….. : réel double précision, 15 chiffres après la virgule, « codé sur 8 octets
avec 1 bit de signe, 52 bits de mantisse et 11 bits d'exposant »
Il existe des caractères non imprimables, tel que le changement de ligne ‘\n’,
de Tabulation ‘\t’, … en voici un tableau récapitulatif
22
2. Notions de base
NOTATION RESULTAT
\a …………………………..
………………………………
\b
\f ………………..
\n ………..
………………
\r
……………..
…………..
\t
…………...
\v ………
\\ …………..
\' …………..
\ '' …………….
\? …………… 23
2. Notions de base
A propos du type booléen :
Pas de type booléen en C. Le type booléen est représenté par un entier. Il se comporte
comme la valeur booléenne vraie si cette valeur entière est non nulle.
Dans un contexte qui exige une valeur booléenne (comme les tests, par exemple), un
entier non nul équivaut à vrai et la valeur zero équivaut à faux
24
2. Notions de base
2.9 Les Mots réservés
Les mots suivants sont réservés. Leur fonction est prévue par la syntaxe de C et ils ne
peuvent pas être utilisés dans un autre but :
25
Sommaire
1. Introduction au langage C
3. Opérateurs et expressions
26
3. Opérateurs et Expressions
C dispose d'un important éventail d'opérateurs originaux d'affectation et
d'incrémentation.
Les opérateurs binaires ne sont à priori définis que pour deux opérandes ayant
le même type parmi: int, long int, float, double, long double et ils fournissent
un résultat de même type que leurs opérandes.
27
3. Opérateurs et Expressions
De plus, il existe un opérateur de "modulo" noté % qui ne peut porter que sur
des entiers et qui fournit le reste de la division de son premier opérande par son
second. Par exemple, 11%4 vaut 3, 23%6 vaut 5
Conversions implicites :
On peut écrire des expressions mixtes dans lesquelles interviennent des opérandes
de types différents:
int n,p; float x; n*x + p
(int * float) + int
Conversion implicite: int float ( float*float) + int
float + int
Même mécanisme : float + float float
29
3. Opérateurs et Expressions
Promotions numériques :
On a vu que les opérateurs numériques ne sont pas définis pour les types char et
short :
C prévoit que toute valeur char ou short soit d’abord convertie en int.
short n,p; float x; n*x + p
(short * float) + short
Conversion systématique: ( int * float) + int
Conversion implicite : float * float + int
float + float float
30
3. Opérateurs et Expressions
3.2 Opérateurs Relationnels
Opérateur Signification
> …..
>= ….
< ….
<= ….
== ….
!= ….
31
3. Opérateurs et Expressions
3.2 Opérateurs Relationnels
- Le résultat de la comparaison est, non pas une valeur "booléenne" (on dit aussi
"logique") prenant l'une des deux valeurs vrai ou faux, mais un entier valant:
……………………………...,
……………………………...
Ainsi, la comparaison ci-dessus devient en fait une expression de type entier. Cela
signifie qu'elle pourra éventuellement intervenir dans des calculs
arithmétiques;
32
3. Opérateurs et Expressions
3.2 Opérateurs Relationnels
Exemple: ……
Remarque: les opérateurs relationnels sont moins prioritaires que les opérateurs
arithmétiques …. )
33
3. Opérateurs et Expressions
3.3 Opérateurs Logiques
C dispose de trois opérateurs logiques classiques: et logique (noté &&), ou
logique (noté | |) et non: négation logique (noté ! ).
Par exemple:
- (a<b) && (c<d) ….
…..
- (A<b) || (c<d) …..
....
Ces opérateurs acceptent n'importe quel opérande numérique, y compris les
types flottants, avec les règles de conversion implicite déjà rencontrées à
condition de considérer que:
0 correspond à faux,
toute valeur non nulle correspond à vrai 34
3. Opérateurs et Expressions
3.3 Opérateurs Logiques
Exemples:
n et p sont des entiers, le compilateur accepte des expression telles que:
n && p n||p if ( !n ) if (n == 0)
Remarque1: ….
……….
Remarque2: ….
………
a<b && c<d équivaut à (a<b) && (c<d)
35
3. Opérateurs et Expressions
3.4 Opérateur d’affectation ordinaire
Nous avons déjà eu l'occasion de remarquer que : i = 5 était une expression qui
réalisait une action : l'affectation de la valeur 5 à i. Cet opérateur d'affectation (=)
peut faire intervenir d'autres expressions comme dans : c = b + 3
…………
36
3. Opérateurs et Expressions
3.6 Opérateurs d’incrémentation et de décrémentation ( ++ -- )
37
3. Opérateurs et Expressions
3.6 Opérateurs d’incrémentation et de décrémentation ( ++ -- )
Exemples: si i= 6 alors :
Opérateurs Exemple
Pré-incémentation …
++i : i=i+1 n=++i-2
Post-incrémentation …
n=i++ -2
i++
Pré-décrementation n =--i-2 …
Post-décrementation n=i-- -2 …
38
3. Opérateurs et Expressions
3.6 Opérateurs d’incrémentation et de décrémentation ( ++ -- )
Priorité:
…….
39
3. Opérateurs et Expressions
3.7 L’opérateur de CAST :
41
3. Opérateurs et Expressions
E X E R C I C E S 1:
#include<studio.h>
void main()
{
int a, b, c, d, i=3, j=5;
a = ++ i; i=i+1;i=4;a=i;a=4;
b = -- j; j=j-1;j=4;b=j;b=4;
c = i ++; c=i;c=4;i=i+1;i=5;
d = j --; d=j;d=4;j=j-1;j=3;
42
3. Opérateurs et Expressions
E X E R C I C E S 2:
#include<studio.h>
void main()
{
int r, p=10, q=5, n=5;
r = n == (p = q); p=q; p=5; r=n;r=5; 1(vrai)
n = p++ * q++; n=p*q;n=25;p=p+1;p=6;q=q+1;q=6;
}
43
Sommaire
1. Introduction au langage C
3. Opérateurs et expressions
44
4. Les fonctions d’affichage et de saisie
Format : est une chaine de caractère entre " " qui spécifie à la fois :
Des caractères à afficher tels quels;
Des code de format repérés par %. Un code de conversion (c, d, f..) précise le
type de l’information à afficher.
Liste d’expression : est une suite d’expressions séparées par des virgules, chacune
d’elles est d’un type correspondant au code format.
%d : …
%u : …
%i : …
%f : …
%lf : …
%c : …
%s : …
46
4. Les fonctions d’affichage et de saisie
Les erreurs de programmation :
Erreur 1 : …..
Conséquence : mauvaise interprétation si même taille (int en %u), sinon, conséquences
plus désastreuses.
Erreur 2: ….
Conséquence 1 : si des expressions de la liste n’ont pas de format, elles ne seront pas
affichées ( printf("%d" , n, p ); // valeur de p ne sera pas affiché )
Conséquence 2 : s’il y a trop de code de format, printf cherchera à afficher n’importe
quoi ( printf("%d %d" , n ); n=8 8 2 )
47
4. Les fonctions d’affichage et de saisie
Exemple:
48
4. Les fonctions d’affichage et de saisie
Exemple:
…..
49
4. Les fonctions d’affichage et de saisie
Syntaxe : ….
Format : est une chaine de caractère qui représente une liste de code de conversion
correspondant aux différentes variable à lire.
Liste d’adresses : liste des adresses des variables à lire. L’adresse d’une variable est
préfixé du caractère &.
50
4. Les fonctions d’affichage et de saisie
Exemple:
51
4. Les fonctions d’affichage et de saisie
…..
52
Fin chapitre 1
53