Cours Techniques de Programmation
Cours Techniques de Programmation
Cours Techniques de Programmation
Programmation
Pr. : Mohamed El KAMILI
Contact : mohamed.elkamili@usmba.ac.ma
Cycle : Ingénieur
Département : GE
Année : 2018/2019
Généralités
Programmation informatique
Algorithmique
Programmation en langage C
Introduction
Notion de variable en C
Mots-clés du langage C
Structures de contrôle
Les tableaux
Variables composites
Les fonctions
La récursivité
Les fichiers
Techniques de Programmation 2/102
Programmation en C
Historique
L’histoire du C est très liée à l'histoire du système UNIX.
Fichier Compilateur C
Source C
Code
Assembleur
Assembleur
Code Objet
Code Linker
exécutable
Programme typique en C
include
Main() toujours la
1ère fonction appelée
main()
instructions
Exemple: {
x=1 Obligatoire
x=1;
y=2
Calcul
y=2;
z = x+y z=x+y;
imprimer z printf("%d",z);
};
optionnel
Techniques de Programmation 9/102
Programmation en C
Type d’instructions en langage C
Affectations
Opérations
Fonctions
Contrôle
Exemple : int a;
float note;
A retenir :
é, ö , ä, æ, œ etc…
Exemple : 13 = 8 + 4 +1 = 1*23+1*22+0*21+1*20
=0000000000001101
Déclaration d'une variable entier naturel x
unsigned int x;
short unsigned int x; (on force sur 16 bits)
long unsigned int x; (on force sur 32 bits)
Techniques de Programmation 19/102
Programmation en C
La notion de variable en C
Le type Entier relatif
00000110 = +6 en décimal
Et
10000110 = −6 en décimal
-3 3
101 -4 011
100
Techniques de Programmation 23/102
Programmation en C
La notion de variable en C
Le type réel
Déclaration
float x,y;
x = 3.14;
y = 2.0 e+3;
Caractère : 1 octet
Ex : 'a' = 6116 0 1 1 0 0 0 0 1
Ex 2 : -5 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
x : indique le signe
Réel : 4 octets, représentation virgule flottante
Ex : -6,5 = -110,12 = -1,101 * 22 2+127 = 129 = 27 +20
1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 … 0 0 0
1, 1, 1, 1, … 1, 2, 3, 4, …
/* i est initialisée à chaque appel de /* i est initialisée à 0 à la
la fonction inc() */ compilation seulement */
Techniques de Programmation 28/102
Programmation en C
La notion de variable en C
Complément de type : register
Register
register int i;
Exemples :
char c; int i; float f;
// conversion entier vers char
c=98; // implicite : c prend le code ASCII 98 c-à-d 'b'
c = (char) 98; // explicite plus propre
// char vers entier
i= 'a' ; // i prend la valeur 97
i= (int) 'a' ; //plus propre
// entier vers réel
f=3; // f prend la valeur 3.0;
f=(float) 3; //+ propre
//réel vers entier, attention : troncature
i = 3.4; // i prend la valeur 3
i= -3.3; // i prend la valeur -3
i = (int) 3.4; // + propre
Une constante est une variable dont la valeur ne peut pas changer
durant la durée de vie d’un programme
Directive du préprocesseur
Utilisation du mot clé define qui est placé au début du programme
Instruction de déclaration
Utilisation du mot clé const qui est placé avant ou après le type de la
variable
Exemples
3
a+b
x=y
c = a+b
x <= y
x == y
i++
sin(3.14)
Exemples
int a,b; float a,b;
a=10; b= 3 a=12.6; b= 3.0
a+b 13 a+b 13.6
a-b 7 a-b 9.6
a*b 30 a*b 37.8
a/b 3 (division euclidienne) a/b 4.2 (division réelle)
a%b 1 a%b erreur de syntaxe
Opérateur % :
- int a;
- float x;
(a+x) % 4 incorrect.
((int) (a+x))%4 correct
Si l'un des opérandes est de type caractère, c'est la valeur du code ASCII
qui est prise (conversion implicite char vers int ou float)
1. a/ signe : + , -
Exemple : a = -a;
int i =1;
++i;
printf("%d",i) ; -> 2;
Syntaxes : ++i ou i++
++i : la valeur de i est d'abord incrémentée, la valeur résultat est
utilisée dans l'expression courante
i++ : la valeur courante de i est utilisée dans l'expression courante,
puis i est incrémenté
Exemples
i=1; i=1;
printf("i= %d\n",i); => i=1 printf("i= %d\n",i); => i=1
printf("i= %d\n",++i); => i=2 printf("i= %d\n",i++); => i=1
printf("i= %d\n",i); => i=2 printf("i= %d\n",i); => i=2
Conclusions
1. appendre la règle (pour comprendre des programmes)
2. à n'utiliser que lorsque il n'y a pas d'ambiguïté :
x=y+z++; // à éviter
x++; // pas de risque
Exemples :
a = 2; b=1; c=0;
a = b+c;
a = b && c;
la valeur de l'expression vaut la valeur affectée
Exemple
int i;
i= 3;
i+=2; (i=i+2;)
printf("%d\n",i); 5
Fonction putchar()
Exemple
char c;
c='a';
putchar ( c );
putchar ('\n'); équivalent à printf("%c\n%c",c, 'b');
putchar('b');
Syntaxe : printf (" liste des formats ", arg1, arg2, arg3, …, argn)
Exemple
printf("bon"); printf("jour");printf("\n"); bonjour
i=j=1;
printf("i=%d\n",i); i=1
printf("%d%d%d\n",i,j,i+j); 112
printf("%d\t%d\t%d\t%d\n",i,j,i+j,sqrt(i)); 1 1 2 1
x=3.0;
printf("%f\t%d\n",x,i); 3.000000 1
printf("%d\n%d\n",i,i+j); 1
2
Exemple
int a,x;
a=42;
x = printf ("%d\n",a);
printf ("%d\n",x); => 3
Caractères d’échapement
\n : saut à la ligne %% affichage du caractère '%'
\t : tabulation \a : alerte ; beep système
\p : saut à la page \\ : affichage du caractère '\'
\0 caractère null ; valeur 0, délimiteur de fin de chaîne de caractères
…. 45/102
Techniques de Programmation
Programmation en C
Fonctions d’entrée/sortie : Sortie standard
Fonction printf()
entiers :
%5d l'entier est imprimé sur 5 caractères au moins (blancs)
avec cadrage à droite
%-5d l'entier est imprimé sur 5 caractères au moins (blancs)
avec cadrage à gauche
réels :
%10f le réel est imprimé sur 10 caractères (en tout) avec 6
chiffres en partie décimale (cadrage à droite)
%-10f idem + cadrage à gauche
Format variable
Exemples
getchar();
while (c==getchar()) {
…..
};
arg1, arg2,……, argn sont les adresses des variables dans lesquelles on
stocke les valeurs lues
le format est une chaîne de caractères précisant le type des arguments afin
de convertir la suite de caractères lus dans les arguments
Exemple
int i; float x;
scanf("%d %f", &i, &x);
Exemple
maximum = (x>y) ? x : y;
2 syntaxes possibles
1. sizeof expression
Exemple
int i,j ;
j= sizeof i; 2 ou 4 (octets)
2. sizeof (type)
Exemples
typedef char tab[100];
tab t;
int n;
n = sizeof(int), -> 2 ou 4 (octets)
n = sizeof(tab) -> 100 (char)