Académique Documents
Professionnel Documents
Culture Documents
DE L’ALGORITHME AU
PROGRAMME
INTRO AU LANGAGE C
51
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
MAP - UNS 52
1
12/03/2013
INTRODUCTION AU LANGAGE C
EXEMPLE DE PROGRAMME
MAP - UNS 53
LANGAGE C
MAP - UNS 54
2
12/03/2013
INTRODUCTION AU LANGAGE C
ETAPES DE CONSTRUCTION D’UN PROGRAMME
• Editions de liens,
• Prog.exe : le code machine des fonctions-bibliothèque est
chargé
• Exécution du programme.
• Prog
MAP - UNS 55
INTRODUCTION AU LANGAGE C
ETAPES DE CONSTRUCTION D’UN PROGRAMME
3
12/03/2013
INTRODUCTION AU LANGAGE C
EXEMPLE DE PROGRAMME
#include <stdio.h>
void main() Point d’entrée du programme
{
/*Environnement déclaration de 3 variables */
int A, B=12, Resultat ; Déclaration de variables
B=30;
Expression
Algébrique
leResultat = (A + B)*2 ;
Affectation
printf("Voici le resultat : %d\n", leResultat) ;
}
.
MAP - UNS 57
BUT DU JEU
Compilation de code
pour une machine
MAP - UNS donnée 58
4
12/03/2013
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
MAP - UNS 59
PROGRAMME
bin a.out .exe Exécutable(s)
lib
.o .so .lib .dll
include .h
src .c
5
12/03/2013
LA COMPILATION : RÉSUMÉ
.h .c
Préprocesseur
Code pré-processé
Compilateur Librairies
.lib .so
Fichier(s) Objet
.o Editeur de liens exécutable
MAP - UNS a.out .exe61
MAP - UNS 62
6
12/03/2013
MÉMOIRE ET EXÉCUTION
Données statiques
Valeurs constantes
Pile
Piles d’appels de fonctions
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• Tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
MAP - UNS 64
7
12/03/2013
DÉCLARATION DE VARIABLES
MAP - UNS 65
DÉCLARATION DE VARIABLES
MAP - UNS 66
8
12/03/2013
DÉCLARATION DE VARIABLES
LES TYPES ENTIERS
DÉCLARATION DE VARIABLES
LES TYPES RÉELS
9
12/03/2013
MAP - UNS 69
• Variables globales :
• définies dans le programme appelant. Variables qui peuvent être
utilisées dans un sous-programme alors qu'elles ne figurent pas
dans son environnement.
• Durée de vie : exécution du programme
• Variables locales :
• définies dans le (sous)-programme ou un bloc C où elles sont
utilisées.
• Durée de vie : exécution du (sous)-programme
MAP - UNS 70
10
12/03/2013
MAP - UNS 71
MAP - UNS 72
11
12/03/2013
#include <stdio.h>
int a = 12; Variable globale
void affiche (){
int a = 10; Variable locale à affiche
a++;
printf(« la variable locale a est égale à %d\n », a);
}
void main()
{
/*Environnement déclaration de 3 variables */
int A=1, B=12, Resultat ; Variables locales au main
leResultat = (A + B)*2 ;
affiche();
printf(« La valeur de a est %d et le resultat : %d\n", a, Resultat) ;
affiche();
. }
Quelles sont les valeurs qui s’affichent ?
MAP - UNS 73
Code
Allocation statique
00 00 00 0C 00 00 00 01 int a = 12;
int A=1, B=12, Resultat
00 00 00 0C A1 67 87 45
00 00 00 0A
Piles d’appels de fonctions
Pile int a = 10;
Allocation dynamique de
00 00 00 19
mémoire
Tas int * pa=(int *) malloc(sizeof(int));
*pa=25;
74
MAP - UNS
12
12/03/2013
PLAN DU COURS
• Introduction au langage C
• Notions de compilation
• Variables, types, constantes,
• Tableaux, opérateurs
• Entrées sorties de base
• Structures de contrôle
• Algorithmes de recherche
• Algorithmes de Tri –Insertion-Fusion
• Les pointeurs
• Procédures et fonctions
• les types composés
• Allocation dynamique
• Listes Chaînées
MAP - UNS 75
OPÉRATEURS
• Operateurs relationnels
• Comparaison entre le contenu de deux variables de même
type à l'aide d'opérateurs
==, <,>, <=, >=, !=
MAP - UNS 76
13
12/03/2013
OPÉRATEURS
CAS DES CARACTÈRES
• Exemple
char c,d;
c = 'G';
d = c+'a'-'A';
c++;
printf("le caractère c est = à :%c, %d \n ",c ,c);
• Sur cet exemple, on transforme la lettre majuscule G en la lettre
minuscule g et on affiche h.
• les caractères sont des entiers sur 8 bits, on peut donc effectuer
des opérations arithmétiques.
• Incrémentation décrémentation
• le langage C autorise des écritures simplifiées
• i=i+1; => i++;
• i=i-1; => i--;
• a=a+b; => a+=b;
• a=a-b; => a-=b;
MAP - UNS 77
TABLEAUX
DÉCLARATION
Type <Id_variable>[n];
14
12/03/2013
TABLEAUX
INITIALISATION
• Exemple :
float tabNotes[24];
tabNotes[0]=12.5;
…
tabNotes[23]=13.8; Tas
MAP - UNS 79
TABLEAUX
INITIALISATION DU TABLEAU
• A la compilation
• A l’exécution
15
12/03/2013
TABLEAUX
MANIPULATION
MATRICES
DÉCLARATION
Type <Id_variable>[m][n];
MAP - UNS 82
16
12/03/2013
MATRICES
INITIALISATION
LES MATRICES
EXEMPLE
• Extraction des contours d’une image en noir et blanc à
plusieurs niveaux de gris. La valeur des pixels est comprise
entre 0 (noir) et Max (Blanc)
MAP - UNS 84
17