Vous êtes sur la page 1sur 34

LANGAGE DE PROGRAMMATION

LE LANGAGE C

1ère partie
OBJECTIFS

Résolution petits problèmes


•Maitriser
Algorithme •Appliquer

•Syntaxe
Langage C •Appliquer
COMMENT ON S’ORGANISERA
• Organisation
– Cours (syntaxe)
– TD/TP (exemples)
– Conservation des notes de TP (<14)
• Contrôles
– Continu
– Final
– De TP
COMMENT ON S’ORGANISERA
Plan A Cours TD Contenu TP Contenu Contenu TD ou TP
TD TP
S1 10/02/2020 15/02/2020 Variables + Chap 0 + 1 Planning
S2 17/02/2020 22/02/2020 Opérateurs Chap 1 + 2 Série 0 Compilateur Algo
S3 24/02/2020 29/02/2020 Lire écrire Chap 3 Série Base Exos de base expressions
S4 02/03/2020 07/03/2020 Alternatifs Chap 4 + 5 Série 1 prinf scanf
S5 09/03/2020 14/03/2020 Tableaux Chap 6 + 7 Série 2 if…else
S6 16/03/2020 21/03/2020 Révisions TD's Série 3 while do….while for….
S7 23/03/2020 28/03/2020 Pointeurs Chap 8 Série 4 switch case programmes utiles
S8 30/03/2020 04/04/2020 Fonctions Chap 9 Série 5 Tableaux
06/04/2020 11/04/2020
S9 13/04/2020 18/04/2020 Révisions TD's Série 6 Tableaux bidim
S10 20/04/2020 25/04/2020 fichiers Chap 10 Série 7 Tableaux Chaines
S11 27/04/2020 02/05/2020 Révisions TD's Série 8 pointeurs
S12 04/05/2020 09/05/2020 Série 9 fonctions
S13 11/05/2020 16/05/2020 Contrôle de TP
18/05/2020 23/05/2020
S14 25/05/2020 30/05/2020
S15 01/06/2020 06/06/2020
S16 08/06/2020 13/06/2020
S17 15/06/2020 20/06/2020
S18 22/06/2020 27/06/2020
S19 29/06/2020 04/07/2020
PLAN DU COURS
• Part 1 : Structure d’un programme et variables
• Part 2 : Utilisation et traitement des données
• Part 3 : Variables structurées
• Part 4 : Programmation avancée
CHAP. 0 - UTILISATION D’UN LANGAGE
• Qu’est ce qu’un langage de programmation :
c’est une suite d’instructions à destination de
la machine; exemple le langage C
• De l’interpréteur au compilateur : de l’écriture
à l’exécution
Langage humain

Langage de programmation

Langage machine
CHAP. 0 - POURQUOI LE LANGAGE C
• Facile à écrire, à lire et à comprendre
• Maintenance aisée
• Portage sur différentes plates-formes
• Réutilisation possible en les enregistrant dans
des bibliothèques ou en les associant aussi
avec d’autres langages de programmation.
CHAP. 0 - FONCTIONNEMENT ET COMPILATION
• Fichier en « .c »
• #include <.h>
• Compilation (.obj)
• Link (.exe)
CHAP. 0 - EXEMPLE DE PROGRAMME

Programme BONJOUR #include<stdio.h>


Début #include<conio.h>
Ecrire (”Bonjour”) main()
Fin {
printf(”Bonjour”);
}
CHAP. 0 - DÉFINITION DE LA FONCTION
• En C, le programme principal et les sous-
programmes sont définis comme fonctions. Il
n'existe pas de structures spéciales pour le
programme principal ni les procédures
(comme en langage algorithmique ou autre).
• Le programme principal étant aussi une
'fonction', nous l’appellerons « main() ».
CHAP. 0 - DÉFINITION DE LA FONCTION

Fonction <Nom> (var1, var2,…) <type résultat>


Déclaration paramètres, déclaration variables
Début
Traitement
Fin

<type résultat> <Nom> (type var1, type var2,…)


{
Déclaration paramètres, déclaration variables
Traitement
}
CHAP. 1 - COMMENTAIRES
• En C les commentaires s’écrivent:

• /* Commentaire correct*/
• // Commentaire correct

• /* commentaire sur plusieurs lignes


seconde ligne */
CHAP. 1 - IDENTIFICATEURS
• Les noms des fonctions et des variables en C sont
composés d'une suite de lettres et de chiffres. Le
premier caractère doit être une lettre. Le symbole
'_' est aussi considéré comme une lettre.
– L'ensemble des symboles utilisables est
donc:{0,1,2,...,9,A,B,...,Z,_,a,b,...,z}
– Le premier caractère doit être une lettre (ou le
symbole '_') .
– C distingue les majuscules et les minuscules, ainsi:
'Nom_de_variable' est différent de 'nom_de_variable’
– La longueur des identificateurs n'est pas limitée, mais
C distingue 'seulement' les 31 premiers caractères.
CHAP. 1 - IDENTIFICATEURS

Identificateurs corrects Identificateurs incorrects

Nom1 1Nom
N_2 N-2
_X1 -X1
Nom_variable Nom variable
x123 123x
CHAP. 1 - MÉMOIRE
• Comment est gérée la mémoire ou comment
on stocke l’information : RAM

01101000

0 1 2 3 4 5 6 7 8 … … n n+1 n+2 … … 4Go

Adresse
CHAP. 1 - TYPES DE VARIABLES
• Les types « entier »

Signé Non signé


-128
1 octet (char) 27-1 0255 28
+127
-32768
2 octets (int) 215-1 065535 216
+32767
-2147843648
4 octets (long) 231-1 04294967295 232
+2147843647
CHAP. 1 - TYPES DE VARIABLES
• Les types « rationnel »
définition précision mantisse Domaine Domaine nombre
min max d'octets

float simple 6 3.4 * 10-38 3.4 * 1038 4

double Double 15 1.7 * 10-308 1.7 * 10308 8

Long suppl. 19 3.4 * 10-4932 1.1 * 10


double 104932
CHAP. 1 - DÉCLARATIONS ET AFFECTATIONS
• Forme générale de déclaration :
<type> var1, var2,….. ;
• Exemple :
char x, X ;
int var, V1, V2 ;
float pi ;
long L1, L2 ;
CHAP. 1 - DÉCLARATIONS ET AFFECTATIONS
• Une affectation utilisera le signe « = » :
<var> = <expression> ;
• Exemple :
x = 2*y ;
V1 = 5 ;
pi = 3.14 ;
L1 = ‘a’ ;
CHAP. 1 - DÉCLARATIONS ET AFFECTATIONS
• Déclaration-affectation :
<type> var = <valeur> ;
• Exemple :
int x = 0 ;
long double V1 = 5.5524534 ;
float pi = 3.14 ;
char L1 = ‘a’, N = ‘\n’, tabul = ‘\t’ ;
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Opérateurs arithmétiques

+ addition
- soustraction
* multiplication
/ division (entière et rationnelle!)
% modulo (reste d'une division entière)
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Opérateurs logiques
&& et logique (and)
|| ou logique (or)
! négation logique (not)
• Opérateurs de comparaison
== égal à
!= différent de
<, <=, >, >= plus petit que, ...
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Opérateurs particuliers de C
+= ajouter à
-= diminuer de
*= multiplier par
/= diviser par
%= modulo

I++ ou ++I incrémentation (d'une unité)


I-- ou --I décrémentation (d'une unité)
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Opérateurs particuliers de C

X = I++ passe d'abord la valeur de I à X et


incrémente après
X = I-- passe d'abord la valeur de I à X et
décrémente après
X = ++I incrémente d'abord et passe la valeur
incrémentée à X
X = --I décrémente d'abord et passe la valeur
décrémentée à X
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Expressions
– La formation des expressions est définie par
récurrence
– Les constantes et les variables sont des expressions.
– Les expressions peuvent être combinées entre elles
par des opérateurs et former ainsi des expressions
plus complexes.
– Les expressions peuvent contenir des appels de
fonctions et elles peuvent apparaître comme
paramètres dans des appels de fonctions.
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Exemples
– i =0
– i++
– X=pow(A,4)
– printf(" Bonjour !\n")
– a=(5*x+10*y)*2
– (a+b)>=100
– position!=limite
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• L’expression devient instruction :
– i =0 ;
– i++ ;
– X=pow(A,4) ;
– printf(" Bonjour !\n") ;
– a=(5*x+10*y)*2 ;
– (a+b)>=100 ;
– position!=limite ;
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Priorité des opérateurs :
Priorité 1 (la plus forte): ()
Priorité 2: ! ++ --
Priorité 3: */%
Priorité 4: +-
Priorité 5: < <= > >=
Priorité 6: == !=
Priorité 7: &&
Priorité 8: ||
Priorité 9 (la plus faible): = += -= *= /= %=
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Exemples :
#include <stdio.h>
main()
{
int x;
x = - 3 + 4 * 5 - 6;
x = - 3 * 4 % - 6 / 5;
x = ( 7 + 6 ) % 5 / 2;
}
CHAP. 1 - OPÉRATEURS ET EXPRESSIONS
• Exemples : x = y =z =1;
#include <stdio.h> ++x && ++y && ++z;
main() x = y = z = -1;
{ ++x && ++y || ++z;
int x,y,z; x = y = z = -1;
x = y = z =1 ; ++x || ++y && ++z;
++x || ++y && ++z; x = y = z = -1;
x = y = z = 1; ++x && ++y && ++z;
++x && ++y || ++z; }
CHAP. 2 - FONCTIONS ARITHMÉTIQUES
STANDARD
• Les fonctions suivantes sont prédéfinies dans
la bibliothèque standard <math>. Pour
pouvoir les utiliser, le programme doit
contenir la ligne : #include <math.h>
• Type des données
– Les arguments et les résultats des fonctions
arithmétiques sont du type double.
CHAP. 2 - FONCTIONS ARITHMÉTIQUES
STANDARD
COMMANDE C EXPLICATION LANG.
ALGORITHMIQUE
exp(X) fonction exponentielle eX
log(X) logarithme naturel ln(X), X>0
log10(X) logarithme à base 10 log10(X), X>0
pow(X,Y) X exposant Y XY
sqrt(X) racine carrée de X pour X>0
fabs(X) valeur absolue de X |X|
floor(X) arrondir en moins int(X)
ceil(X) arrondir en plus
fmod(X,Y) reste rationnel de X/Y pour X différent de 0
(même signe que X)
sin(X) cos(X) tan(X) sinus, cosinus, tangente de X
asin(X) acos(X) atan(X) arcsin(X), arccos(X), arctan(X)
sinh(X) cosh(X) tanh(X) sinus, cosinus, tangente hyperboliques de X
CHAP. 2 - CONVERSION DE TYPE
• Règles de conversion automatique : lors d'une opération
avec,
– (1) deux entiers: D'abord, les types char et short sont convertis
en int. Ensuite, l'ordinateur choisit le plus large des deux types
dans l'échelle suivante: int, unsigned int, long, unsigned long
– (2) un entier et un rationnel: Le type entier est converti dans le
type du rationnel.
– (3) deux rationnels: L'ordinateur choisit le plus large des deux
types selon l'échelle suivante: float, double, long double
– (4) affectations et opérateurs d'affectation: Lors d'une
affectation, le résultat est toujours converti dans le type de la
destination. Si ce type est plus faible, il peut y avoir une perte de
précision
CHAP. 2 - CONVERSION DE TYPE
• Conversion de type (ou casting)
– Exemple
char A=3;
int B=4;
float C;
C = (float)A/B;
La valeur de A est explicitement convertie en float. La valeur de B
est automatiquement convertie en float (règle 2). Le résultat de
la division (type rationnel) est affecté à C.
Résultat: C=0.75

Vous aimerez peut-être aussi