Académique Documents
Professionnel Documents
Culture Documents
Na)onale Polytechnique
1ère année Classes Préparatoires
Année 2018/2019
Ma)ère
Informa)que 2
Chapitre I
Introduc0on au langage C
Spécifica-on
Analyse
Algorithme
Traduc-on
Langage de
Programme (Codes sources) Programma0on
C, Java, Pascal, …
Compila-on
Programme exécutable Étapes de réalisa-on
(00011010100…...011011000) d’un programme
Tests et modifica-ons
Dr. Meziane-Tani I. 2
Le langage C
• Début des année 70 par D.Ritchie et B.W.Kernighan
Dr. Meziane-Tani I. 3
Compila0on
• Compilateur : un programme qui permet de traduire un code
source écrit dans un langage de programma)on en un autre
langage informa)que.
Dr. Meziane-Tani I. 4
Compila0on et édi0on des liens
Edi0on des
Compila0on
liens
Fichier Fichier
Fichier Objet
code source exécutable
• Il suffit d’importer une librairie pour pouvoir u)liser les fonc)ons qui sont
implémentée à l’intérieur.
Exemple : en important math.h, on peut u)liser des fonc)ons telles que :
sin, cos, sqrt, pow,… etc.
Dr. Meziane-Tani I. 7
Librairies standards
• Pour importer une librairie en C :
#include <nom_librairie.h>
Dr. Meziane-Tani I. 8
Prérequis
• En C, chaque instruc)on (déclara)on, affecta)on, lecture,
écriture…) doit se terminer par un point-virgule : « ; » .
– Exemples :
• int i;
• int i, j;
• x = x+1;
• Un ensemble d’instruc)ons faisant par)e du même bloc
(fonc)on, boucle, test,…) est délimité entre deux
accolades : { .... }.
– Exemple :
if (x < 0)
{
y = -1;
} Dr. Meziane-Tani I. 9
Déclara0on de variables
Algorithmique
Langage C
Dr. Meziane-Tani I. 10
Types standards
Algorithmique Langage C Intervalle de valeurs
En)er int (2 octets) [-32768, 32767]
short (4 octets) [-2147483648 ,
2147483647]
long (4 ou 8 octets) [-232 , 232-1 ]
Ou [-264 , 264-1 ]
Réel float (4 octets) [3.4*10-38, 3.4*1038]
double (8 octets) [1.7*10-308, 1.7*10308]
Booléen Non existant /
Caractère Char (1 octet) [-128, 127]
Chaîne de caractères Non existant /
Remarque : Le type long dépend du type de machine. Par défaut, il est sur 32 bits.
Sur certaines machines il est codé sur 64 bits.
Dr. Meziane-Tani I. 11
Types standards non signés
Pour des en)ers non signés, le mot clé « unsigned » est ajouté devant le type.
Dr. Meziane-Tani I. 12
Déclara0on de constantes
Langage C
Dr. Meziane-Tani I. 13
Fonc0on Main (1/2)
• La fonc)on Main représente le corps du
programme. C’est le point de départ d’exécu)on
d’un programme.
Commentaire
Début et Fin int main()
{
/* Ici des instruc-ons … */
return 0;
}
• Mais aussi :
– Des déclara)ons de variables internes!
Dr. Meziane-Tani I. 15
L’écriture en C
• L’écriture ou l’affichage à l’écran en C se fait en
u)lisant la fonc)on : prin1()
Dr. Meziane-Tani I. 16
prin1()
• La fonc)on prinZ() permet d’afficher :
– Un message à l’écran
– Le résultat d’une variable
– Un message plus le résultat d’une ou de plusieurs variables.
Remarque :
- Il est possible de spécifier la taille (nombre de caractères) d’affichage de la donnée.
- La taille est donnée entre % et le caractère spécifiant le format.
Exemples :
%5d : Affiche un en)er sur 5 chiffres.
%4.3f : Affiche un réel avec 4 chiffres avant la virgule et 3 après.
Dr. Meziane-Tani I. 18
La lecture en C
• La lecture de données au clavier en C se fait
en u)lisant la fonc)on « scanf() ».
Opérateurs addi)on
Algo
+
en C
+
soustrac)on - -
Opérateurs
Arithmé0ques mul)plica)on * *
division / /
modulo % %
puissance ^ pow()
Est égal = ==
Est différent ≠ !=
Opérateurs de Est inférieur < <
comparaison Est supérieur > >
Est inférieur ou égal ≤ <=
Inverse NON !
Opérateurs Et ET &&
logiques Dr. Meziane-Tani I. 22
Ou OU ||
Structures alterna0ves (Tests)
1. Alterna)ve simple
– if … {}
Dr. Meziane-Tani I. 23
Alterna0ve simple
Algorithmique Langage C
Remarque :
Comme pour l’algorithmique, si à l’intérieur du test il y a une seule
instruc)on alors les accolades ne sont pas indispensables.
Exemple :
if (x == 0)
prin‚(‘’x est nul. ‘’);
Dr. Meziane-Tani I. 24
Alterna0ve complète
Algorithmique Langage C
if (Condi-on)
Si Condi-on alors {
/* Séquence d’instruc-ons 1 */ /* Séquence d’instruc-ons 1 */
Sinon } else
/* Séquence d’instruc-ons 2 */ {
Finsi /* Séquence d’instruc-ons 2 */
}
Dr. Meziane-Tani I. 25
Alterna0ve imbriquée
- Si imbriqués - Langage C
Algorithmique if (Condi-on 1)
{
Si Condi-on 1 alors if (Condi-on 2)
Si Condi-on 2 alors {
/* Séquence d’instruc-ons 1 */ /* Séquence d’instruc-ons 1 */
Sinon } else
/* Séquence d’instruc-ons 2 */ {
Finsi /* Séquence d’instruc-ons 2 */
Sinon }
Si Condi-on 3 alors } else
/* Séquence d’instruc-ons 3 */ {
Sinon if (Condi-on 3)
/* Séquence d’instruc-ons 4 */ {
Finsi /* Séquence d’instruc-ons 3 */
Finsi } else
{
/* Séquence d’instruc-ons 4 */
}
Dr. Meziane-Tani I. 26
}
Alterna0ve imbriquée
- Switch … case … -
Algorithmique Langage C
Dr. Meziane-Tani I. 27
Switch .. Case …
- Exemple -
switch (op) Déclara0ons :
{ char op;
case ‘+ ’ : z = x+y; int x, y, z;
break;
case ‘-’ : z = x – y;
break;
case ‘*’ : z = x*y;
break;
case ‘/’ : z = x/y;
break;
default : prin‚(‘’Opéra)on non valide’’);
}
Dr. Meziane-Tani I. 28
Structures répé00ves
1) TantQue … faire ... FinTantQue
while ... { … }
2) Répéter ... Jusqu’à
do {...} while ...
3) Pour ... de ... à ... pas... faire ... FinPour
for(...;...;...){....}
Dr. Meziane-Tani I. 29
while … {...}
Algorithmique Langage C
Dr. Meziane-Tani I. 30
do {...} while …
Algorithmique Langage C
Répéter do {
/* Séquence d’instruc-ons */ /* Séquence d’instruc-ons */
Jusqu’à Condi-on } while (Condi-on);
Remarque :
- « Do…While » n’est pas exactement équivalente à « Répéter ... Jusqu’à
»
- La condi)on qui suit le mot clé while est l’inverse de la condi)on dans
Répéter.
- C’est la même condi)on qui serait u)lisée avec une bouche TantQue.
Dr. Meziane-Tani I. 31
for(...;...;...){....}
Algorithmique
Pour Compteur de Ini-ale à Finale Pas Valeur_Pas Faire
/* Séquence d’instruc-ons */
FinPour
Langage C
type_elements nom_tableau[nombre_elements];
Exemple : Déclarer un tableau de 100 en)ers
int T[100];
2. Manipula0on :
En C, les éléments du tableau commencent toujours pas l’indice 0.
Pour accéder à une case du tableau : T[indice]
Exemples : T[0], …, T[i], … ,T[N-1]
Dr. Meziane-Tani I. 33
Les tableaux à deux dimensions
1. Déclara0on : Algorithmique
type_elements nom_tableau[nb_lignes][nb_colonnes];
Exemple : Déclarer une matrice de 10 lignes et de 20 colonnes
int T[10][20];
2. Manipula0on :
• Exemples :
1. Déclarer un tableau de 4 en)ers dont les valeurs ini)ales sont nulles
int T[]={0,0,0,0};
=> Il n’est pas nécessaire de préciser que le nombre d’éléments est 4.
2. Déclarer une matrice de 2 lignes et de 3 colonnes. 0 0 0
1 1 1
int T[][3]={ {0,0,0}, {1,1,1} };
=> Il n’est pas nécessaire de préciser que le nombre de lignes est 2.
=> Le nombre de colonnes est obligatoire.
Dr. Meziane-Tani I. 35
Les enregistrements / structures
• Créer un enregistrement consiste à créer un
nouveau type de données.
Algorithmique Langage C
Dr. Meziane-Tani I. 37
Structures
Exemple
Définir un type de structure Personne:
U)lisa)on de la variable P :
Lecture Ecriture
scanf(‘’%s‘’, P.Nom); prin1(‘’Nom : %s\n ‘’, P.Nom);
scanf(‘’%s‘’, P.Prenom); prin1(‘’Prénom : %s\n ‘’, P.Prenom);
scanf(‘’%d ‘’, &P.Age); prin1(‘’Age : %d\n ‘’, P.Age);
Dr. Meziane-Tani I. 38