Documente Academic
Documente Profesional
Documente Cultură
Algorithmique et programmation
GELEC
Slimane .bah@emi.ac.ma
Semaine 8
Semestre 1 : Sept - Jan 2012
Annonce
Les sances Mardi 8h 10 sont dsormais
dplaces au Lundi de 10h 12h
Organisation :
Lundis : Cours
Vendredis : TPs
Slimane .bah@emi.ac.ma
Plan
Introduction
Algorithme, programmation et langages
Rsolution de problmes
Algorithmique
tapes et dmarche de rsolution
Programmation C
Types, variables, entres/sorties, oprateurs
Instructions de contrle
Tableaux
Fonctions
Pointeurs
Fichiers
3
Slimane .bah@emi.ac.ma
Programmation C
Quelle est la valeur de a :
Unsigned int a = 70000;
Quel sera laffichage de :
int a = 65;
printf(" %c %f ", a, a);
Slimane .bah@emi.ac.ma
Programmation C
Entres-sorties : Lecture
La fonction scanf( ) permet une lecture formate des donnes au
clavier.
Elle se trouve dans la libraire stdio.h
Syntaxe : scanf("format", adr1, adr2,adrN);
Le format est le mme que printf
les arguments (adr1, ) sont les adresses des variables dans lesquelles
les valeurs lues seront stockes. Adresse = &nomVariabe
5
Slimane .bah@emi.ac.ma
Programmation C
Entres-sorties : Lecture
Exemple
Pour lire un entier long faut utiliser : %ld, %li, %lu, %lo, %lx
Pour lire une donne de type double : %lf %le
6
Slimane .bah@emi.ac.ma
Programmation C
Entres-sorties : non format
Il existe dautres fonctions de lecture/criture non formate
stdio.h et conio.h
puts() : standard
putch() : non standard
putchar() : standard
gets() : standard - obsolete
getchar() : standard
getch() : non standard
getche() : non standard
7
Slimane .bah@emi.ac.ma
Programmation C
Les expressions
Une expression est une suite doprateurs et doprandes
dcrivant un calcul effectuer.
Lexpression est une opration qui renvoi une valeur et un type
Linstruction est une expression avec un ;
Ex. a + b est une expression
a + b; est une instruction
Syntaxe
oprande oprateur oprande ou oprateur oprande
expression oprateur expression
8
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs
Il existe plusieurs types doprateurs :
Les oprateurs arithmtiques : +, - , *, /, %
Les oprateurs daffectation : =, +=, -=, *=, /=, %=,
Les oprateurs logiques : &&, ||, !
Les oprateurs de comparaison : < , >, !=, ==, <=, >=
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs arithmtiques
Le - est un oprateur la fois binaire et unaire.
Le % agit uniquement sur des entiers
Lorsque le type des oprandes est diffrent il y a conversion
automatique vers le type le plus fort
Exemple :
float x = 3 / 2;
float x = 3.0 / 2 ;
int x = 3.0 / 2 ;
10
Slimane .bah@emi.ac.ma
/* x = ?1.0 */
/* x = 1.5
?
*/
/* x = ?1
*/
Semestre 1 : Sept - Jan 2012
Programmation C
Les oprateurs daffectation
Affectation multiple
x = y = z = 12;
Affectation avec opration
x = x + 25; x +=25;
exp1 = exp1 op exp2 exp1 op= exp2
11
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs logiques
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs de comparaison
Ne pas confondre = et ==
int a = 2, b =4, c = 8;
a==b ?
a=b ?
4 * (a <= b) + 2 * (a > 8) ?
char a = a, b = A
a == b ?
Il est difficile de comparer les rels avec ==
1.12345678 == 1.1234 ?
13
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs sur les bits
Ne pas confondre & avec && et | avec ||
1&2 ?
1 && 2 ?
~ : complment 1,
^ : XOR
3 << 2 12
7 >> 2 1
Exercice : -7 << 2
X >> Y X / 2Y et
14
X << Y X * 2Y
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs particuliers
Incrmentation : x++ x +=1
Dcrmentation : x-- x -=1
--x Vs x-- et ++x Vs x++
Exemple
int i = 5, j, k;
j = i++;
k = ++i;
--i;
i--;
j = i--;
k = --i;
15
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs particuliers : casting
Conversion de type ou casting permet de changer le type dune
variable.
Conversion automatique
Conversion Manuelle (force)
16
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs particuliers : casting
Conversion automatique :
Elle est faite par lordinateur lorsque les types dans une
opration sont diffrents.
En gnral la conversion se fait vers le type de plus grande
prcision
Lors dune affectation cest le type de la variable qui reoit le
rsultat qui domine.
Char int
17
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs particuliers : casting
Conversion automatique :
Exemple :
int I = 8;
float X = 12.5;
double Y;
Y = I * X;
18
Imprvus
Imprvus
char A=3;
int B=4;
float C=4;
float D,E;
char F;
D = A/C;
E = A/B;
F = A/C;
int a=1, b;
float c=1.5;
b = a + c;
Slimane .bah@emi.ac.ma
Programmation C
Les oprateurs particuliers : casting
Conversion manuelle:
Syntaxe : (<type>) <expression>
(double) b;
Exemple :
int a = 3;
int b = 4;
float c;
c = (float) a/b;
a et b demeurent des entiers.
19
Slimane .bah@emi.ac.ma
Programmation C
Exercice : int vers char
main() {
int i; char c;
c = 'd';
i = c;
c = i;
}
20
Slimane .bah@emi.ac.ma
Programmation C
Exercice : char vers int
main(){
int i; char c;
i = 200;
c = i;
/* c = ascii(200) */
i = c;
/* extension de signe pour i */
printf("%c %d\n",c,i);
i = 100;
c = i;
i = c;
printf("%c %d\n",c,i);
}
Quel est le rsultat de ce programme ?
21
Slimane .bah@emi.ac.ma