CH-01 Introduction

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 53

ISIMS 2024- 2025

Atelier de Programmation: I

- Le Langage C -

Mme. Salma BEN JEMÂA


Benjemaa.salma@hotmail.com
Sommaire

Chapitre 1: ELÉMENTS DE BASE DU LANGAGE C


 Histoire du langage C

1. Introduction au langage C

2. Notions de base du langage C

3. Opérateurs et expressions

4. Les fonctions d’affichage et de saisie

2
Histoire du C
 Origines
C a trois ancêtres : les langages CPL, BCPL et B.

CPL : (Combined Programming Language) a été conçu au début des


années 1960 - universités de Cambridge et de Londres. Fortement
typé mais trop complexe  disparition dans las année 70

BCPL : (Basic CPL) Cambridge en 1966 par Martin Richards. Version


simplifiée  Ecriture d’un 1er Compilateur et de divers systèmes
d’exploitations

B : Ken Thompson vers 1970 dans les laboratoires Bell  Version


simplifiée du BCPL 3
Histoire du C

C: Développé par un collègue de Ken Thompson, Dennis Ritchie qui a


ajouté les tableaux, les pointeurs, les nombres à virgule flottante, les
structures... 1972 fut l'année de développement la plus productive et
sans doute l'année de baptême de C. En 1973, C fut suffisamment
au point pour que 90% de UNIX puisse être récrit avec.

- Une 1ère définition du langage est apparue en 1978 avec l’ouvrage


de Ritchie et Kernighan « The C programming language ».

- Son succès international a contribué à sa normalisation:


1- ANSI (American National Standard Institute)
2- ISO (International Standadization Organisation)
3- CEN (Comité Européen de Normalisation) en 1993 4
Sommaire

Chapitre 1: ELÉMENTS DE BASE DU LANGAGE C


 Histoire du langage C

1. Introduction au langage C

2. Notions de base du langage C

3. Opérateurs et expressions

4. Les fonctions d’affichage et de saisie

5
1. Introduction au langage C

- Le langage C est un langage de bas niveaux, dans le sens où il permet


la manipulation de données que manipulent les ordinateurs (Bit,
octet, adresse) ≠ Langages évolués (Pascal, Fortran, ADA)

- Il est suffisamment général pour permettre de développer des


application de type scientifique ou de gestion basée sur l’accès aux
bases de données (Word et Excel sont écrits à partir de C ou C++)

- Il est un des 1ers langages offrant des possibilités de programmation


modulaire: Un programme peut être constitué de plusieurs module
(module = fichier .c)
6
1. Introduction au langage C
Qu’est ce qu’un programme C?
- …

- …


Exemple: main()
{
printf(’’Bonjour!’’);
}

Source.c
7
Compilation Exécutable
Sommaire

Chapitre 1: ELÉMENTS DE BASE DU LANGAGE C


 Histoire du langage C

1. Introduction au langage C

2. Notions de base du langage C

3. Opérateurs et expressions

4. Les fonctions d’affichage et de saisie

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

Rq: Chaque instruction se termine par un point virgule.

Exemple:

*****Ce programme affiche "Bonjour les amis" à l'écran*****

10
2. Notions de base
2.2 Les fichiers include

Exemple:
# include <stdio.h>
main()
{
printf("Bonjour les amis");
}

La directive #include inclu le fichier stdio.h au programme avant la


compilation (pour pouvoir utiliser la fonction prédéfinie printf.)

On parle alors de préproceseur 11


2. Notions de base
2.3 Liste des bibliothèques utiles

- 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

Les identificateurs servent à désigner les différents objets manipulés par le


programme: Variables, fonctions, …

- ….
- …

- …
- …


17
2. Notions de base
2.7 Les identificateurs

Exemples d’identificateurs Exemples d’identificateurs


corrects: incorrects:

…. 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

Les types de base du langage C se répartissent en 3 grandes catégories en


fonction de la nature des informations qu’ils permettent de représenter:

 Nombres entiers (int)

 Nombres flottants (float ou double)

 Caractère (char): apparaît en C comme un cas particulier de int.

Ils peuvent être signés ou non signés : signed ou unsigned (unsigned int x;)

19
2. Notions de base
a. Les Types Entiers

 …………………..(entier court signé « 16 bits : - 32 768 à 32 767 »)


 ……..(entier standard signé « 32 bits : - 2 147 483 648 à 2 147 483 647 »)

 .........................(entier ou caractère signé « 32 bits ou 64 bits, selon les


machines »)

Chacun des 3 peut être nuancé par l’utilisation du qualificatif unsigned pour ne
représenter que des nombres positifs:

Exemple: unsigned short x; x peut aller de 0 à 65 535

pas de bit réservé pour le signe

- C accepte les constantes entière en notation décimale, hexadécimale ou octale 20


2. Notions de base
b. Les Types Flottants

 ……… : 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 »

 …….. : réel quadruple précision, 17 chiffres après la virgule, « codé sur 10


octets avec 1 bit de signe, 64 bits de mantisse et 15 bits d'exposant »

- C accepte les constantes flottante en notation décimale ou scientifique

3.5e+3 3500 2.43 -0.38 -.38 4. .27


21
2. Notions de base
c. Le Type Char

En C, un caractère est un entier signé codé sur 1 octet


Notation des constantes caractères : ‘a’ , ‘$’ ..

Important: ‘a’ ≠ ‘’a’’

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 :

auto break case char const continue default do

double else enum extern float for goto if

int long register return short signed sizeof static

struct switch typedef union unsigned void volatile while

25
Sommaire

Chapitre 1: ELÉMENTS DE BASE DU LANGAGE C


 Histoire du langage C

1. Introduction au langage C

2. Notions de base du langage C

3. Opérateurs et expressions

4. Les fonctions d’affichage et de saisie

26
3. Opérateurs et Expressions
C dispose d'un important éventail d'opérateurs originaux d'affectation et
d'incrémentation.

3.1 Opérateurs arithmétiques en C

 Comme tous les langages, C dispose d'opérateurs classiques "binaires" , à


savoir l'addition (+), la soustraction (-), la multiplication (*), la division (/), et
modulo (%) ainsi que des opérateurs "unaire" « + et – » qui ne portent que sur
un seul opérande (exemple –n, -a+b, +x-2)

 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

 Remarque: le quotient de deux entiers fournit un entier. Ainsi 5/2 vaut 2; en


revanche, le quotient de deux flottants (noté, lui aussi, /) est bien un flottant
(5.0/2.0 vaut bien approximativement 2.5).

Priorité des opérateurs :


Les règles sont "naturelles" et rejoignent celles de l'algèbre traditionnelle:
- ………….
- ………....
- ……….... 28
3. Opérateurs et Expressions

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

On parle de conversion d’ajustement de type: ……….

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

Comme tout langage, C permet de "comparer" des expressions à l'aide d'opérateurs


classiques de comparaison.

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;

- Les expressions comparées pourront être de type quelconque et seront soumises


au règles de conversion présentées précédemment.

32
3. Opérateurs et Expressions
3.2 Opérateurs Relationnels

Liste des opérateurs: < <= > >= == !=


même priorité > même priorité

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

 Cet opérateur possède une associativité de droite à gauche : i = j = 5

3.5 Opérateurs d’affectation élargie: « += », « -= », « *= »

…………
36
3. Opérateurs et Expressions
3.6 Opérateurs d’incrémentation et de décrémentation ( ++ -- )

 Le langage C autorise des écritures simplifiées pour l'incrémentation et la


décrémentation de variables :
i = i+1; ≡ i++;
i = i-1; ≡ i--;
 On dit que ++/-- est:
- un opérateur de pré incrémentation lorsqu'il est placé à gauche
Exemples: ….

- un opérateur de post incrémentation lorsqu'il est placé à droite


Exemples: ….

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é:

3 * i++ * j-- + k++ équivaut à 3 * (i++) * (j--) + (k++)

…….

39
3. Opérateurs et Expressions
3.7 L’opérateur de CAST :

 L'opérateur de conversion de type, appelée cast ( ), permet de modifier


explicitement le type d'un objet. On écrit : (type) objet
Exemples:


 L’ajustement de type se fait selon la hiérarchie suivante :


Char  int long float double
Exemples:
i*l+f (ou i est de type int ,l long et f est float)
int * long +float  long * long +float  long +float float +float  float
40
3. Opérateurs et Expressions
4.8 L’opérateur conditionnel :

syntaxe : condition ? Valeur si vrai : valeur si faux


Exemples:
…..

z = (x=y) ? a : b ; on utilise la valeur de l’expression


a>b ? i++ : i-- ; la valeur de l’expression n’est pas utilisée

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;

r = ++n / n++ n=n+1; n=26; r=n/n;r=1; n=n+1;n=27

r = p < q && (n == q); n==q; 0; p<q;0; 0&0;r=0;

n+ = p+ = q; p=p+q; p=12; n=n+p;n=39;

}
43
Sommaire

Chapitre 1: ELÉMENTS DE BASE DU LANGAGE C


 Histoire du langage C

1. Introduction au langage C

2. Notions de base du langage C

3. Opérateurs et expressions

4. Les fonctions d’affichage et de saisie

44
4. Les fonctions d’affichage et de saisie

4.1 Fonctions d’affichage:


4.1.1 La fonction printf:
-….
….
Syntaxe : ….

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.

Exemple: printf("leur somme est : %d",n1+n2);


45
4. Les fonctions d’affichage et de saisie

Les principaux codes de conversion:

 %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

4.1 Fonctions d’affichage:


4.1.2 La fonction putchar:
-….
….

Exemple:
…..

49
4. Les fonctions d’affichage et de saisie

4.2 Fonctions de saisie:


4.2.1 La fonction scanf:
-….
….

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

4.2 Fonctions de saisie:


4.2.2 La fonction getchar:
-…

Exemple: Les deux écritures suivantes sont équivalentes:

…..

52
Fin chapitre 1

53

Vous aimerez peut-être aussi