Académique Documents
Professionnel Documents
Culture Documents
Complément C
Complément C
A.U. 2019/2020
Informatique
&
Méthodes Syntaxe du langage C Section : 1ère IAG
Quantitatives
Partie I Cours : F.Bouafif / B.Fessi
3. Les types de bases : 4 types de bases les autres sont dérivés de ceux-ci :
Codage
Exemples de
Type Signification en Peut être
valeur
mémoire
Nombre réel
0.0, 1.0E–10, 1.0 ,
double double 8 octets Long
-1.34567896,…
précision
- expr1,…: sont les variables et les expressions dont les valeurs sont à représenter
- format : est une chaîne de caractères qui peut contenir :
du texte
• des spécificateurs de format : un ou deux caractères précédés du symbole
%, indiquant le format d’affichage
2
• des séquences d’échappement (‘\n’, ‘\t’, …)
L’affichage du texte peut être contrôlé à l’aide des séquences d’échappement :
5. Les variables :
5.1. Déclaration :
Syntaxe :
3
Exemple : Compte, COMPTE, compte : trois identificateurs valides qui sont
différents
Exemples identificateurs non valide :
3eme commence par un chiffre
x#y caractère non autorisé (#)
no-commande caractère non autorisé (-)
taux change caractère non autorisé (espace)
6. Les constantes :
Déclaration d'une variable, dont la valeur sera constante pour tout le programme.
Syntaxe
const type nom_constante = expression
Exemple:
void main()
{
const float PI = 3.14159; // déclaration d’une constante réel PI
float perimetre, rayon = 8.7; // déclaration des variables, la variable rayon est initialisée
7. Les opérateurs
7.1. Les opérateurs mathématiques
Le C propose les opérateurs arithmétiques classiques suivants :
+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division entière)
4
7.3. Les opérateurs logiques
&& ET
|| OU
! non
Remarque : Le type booléen n'existe pas. Le résultat d'une expression logique vaut 1 si elle est
vraie et 0 sinon. Réciproquement, toute valeur non nulle est considérée comme vraie et la valeur
nulle comme fausse.
Exemple :
int i;
float f;
char c;
i = 7; f = 5.5; c = 'w';
f>5 ====> vrai (1)
(i + f) <= 1 ====> faux (0)
c == 'w‘ ====> vrai (1)
c != 'w' ====> faux (0)
(i >= 6) && (c == 'w') ====> vrai (1)
(i >= 6) || (c == 119) ====> vrai (1)
expr1&&expr2 est : vrai (1) si les deux expressions expr1 et expr2 sont vraies
faux(0) sinon.
L'expression expr2 n'est évaluée que dans le cas où l'expression
expr1 est vraie ;
expr1 || expr2 = vrai(1) si expr1=(1) ou expr2=(1) et faux sinon. L’expression expr2
n'est évaluée que dans le cas où l'expression expr1 est fausse.
5
- Ces opérateurs peuvent être préfixés (avant la variable) ou postfixés (après la variable).
- incrémenter/décrémenter une variable et en même temps affecter sa valeur à une autre
variable. Dans ce cas, nous devons choisir entre la notation préfixe et postfixe :
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
Exemple :
#include <stdio.h>
void main()
{
int i, j = 5;
i++ ;
i = ++j; I=j ;
Exemple :
if (a<b)
{
printf(‘’la valeur de a est inférieur à la valeur de b\n’’);
}
8.1.2. IF…ELSE
Syntaxe Exemple
if (expression de comparaison) if (a<b)
{ {
Instructions1 ; printf(‘’la valeur de a est inférieur à b’’);
} }
else else
{ {
Instructions2 ; printf(‘’la valeur de b est inférieur à a’’);6
} }
8.1.3. IF imbriqué
Syntaxe Exemple
if ( expression 1) void main()
{ {
instruction(s)1; int A,B;
} printf(" Donner 2 entiers : ") ;
else scanf("%d %d",&A, &B) ;
{ if(A>B)
if (expression2) {
{ printf("%d est plus grand que %d\n",A,B) ;
instruction(s)2; }
} else
else {
{ if(A<B)
instruction(s)3; {
} printf("%d est plus petit que %d\n",A,B) ;
} }
else
{
printf("%d est egal a %d\n",A,B) ;
}
}
}
Remarque :
Le langage C possède une paire d’opérateurs (? et : ) qui peut être utilisée à la place de la structure
conditionnelle simple.
Syntaxe :
expr1 ? expr 2 : expr 3 ;
- Si expr1 fournit une valeur != 0, alors expr2 est fournie comme résultat
- Si expr1 fournit une valeur == 0, alors expr 3 est fournie comme résultat
- Si expr2 ou expr3 contiennent plusieurs instructions, elles doivent être séparées par des
virgules. Dans ce cas, la valeur retournée sera celle de la dernière instruction du bloc
exécuté
Exemple :
if (A>B)
max=A ; max=(A>B) ?A :B ;
else
max= B ;
8.1.4. Switch…Case
Syntaxe switch (variable)
{
case <val1> : instruction(s) 1 ;
break;
case <val2> : instruction(s) 2 ;
break;
……………
Case <valn> : instruction(s) n ; 7
break;
default : instructions ;
}
- variable : sera comparée à chaque valeur (val1, val2,…valn)
- Instruction 1 sera exécutée si variable==val1
- Le mot clé break permet de quitter la structure switch
- Le bloc défault est optionnel il sera exécuté si la valeur saisie ne correspond à aucun des
cas
Exemple : écrire un programme qui permet d’afficher le nom du mois selon le numéro saisi par
l’utilisateur
#include <stdio.h>
void main()
{
int mois; //déclaration des variables
printf(" donnez le nom du mois selon le numéro saisi \n"); //texte affiché sur l’écran
printf(" Saisir le numéro du mois \n"); /* lire et
scanf(" %d" ,&mois) ; écrire le numéro du mois */
switch ( mois )
{
case 1 : printf(" janvier" ) ; break ;
case 2 : printf(" fevrier" ) ; break ;
case 3 : printf(" Mars" ) ; break ;
case 4 : printf(" avril" ) ; break ;
case 5 : printf(“mai" ) ; break ;
case 6 : printf(" juin" ) ; break ;
case 7 : printf(" juillet" ) ; break ;
case 8 : printf(" aout" ) ; break ;
case 9 : printf(" septembre" ) ; break ;
case 10 : printf(" Octobre" ) ; break ;
case 11 : printf(" Novembre" ) ; break ;
case 12 :printf(" décembre" ); break ;
default : printf(“erreur, nombre invalide”);
}
}
8
8.2.2. Boucle « do… while »
Syntaxe Exemple
do #include <stdio.h>
{ int main()
bloc_d’instructions ; {
/* déclaration et initialisation du Compteur*/
} while (condition) ; int i = 0;
do /* tester la condition*/
{
printf(“ Bonjour = %d \n ”, i);
i++ ; /*incrémentation compteur*/
}while(i<4)
}
#include <stdio.h>
void main()
{
int i; /*déclaration*/
printf("Les nombres impairs sont:\n" );
for( i=1; i<=10 ; i++) /* boucle for*/
{
if(i%2!=0)
{
printf(" %d\n ", i); /* traitement*/
}
}
}
Remarques :
- En C il existe aussi des boucles infinies !!! C’est une boucle dont la condition de sortie n’a
pas été définie.
o Résultat non affiché ;
o Epuisement des ressources de l’ordinateur ;
o Blocage des tâches de l’ordinateur.
9
Différence entre les boucles ; « while », « «do…while », « for »
9. Les tableaux
9.1. Tableau à une dimension
a. Syntaxe :
Type nom_tableau[dimension]
#include <stdio.h>
#include <conio.h>
void main()
{
/* Déclaration du tableau initialisé */
int t[5];
}
9.2. Tableau à deux dimensions
a. Syntaxe
11