Académique Documents
Professionnel Documents
Culture Documents
Othmane EL MESLOUHI
nonce du problme
Analyse
Algorithme
Programme
Excution Du programme
Langage Humain
Langage algo.
Langage Programmation
Langage Machine
Donnes
Traitement
Rsultats
Rappel: Algorithmes
Notion de Variables Instructions de base Structures fondamentales
Introduction
Pour exprimer les traitements dun algorithme
on utilise :
Des oprateurs Des instructions de bases :
Introduction
Un algorithme transforme des valeurs en
entre en valeurs rsultat Lalgorithme utilise des valeurs intermdiaire dans le processus de transformation
Introduction
Souvent dans un algorithme nous avons besoin
de mmoriser des valeurs Zone de stockage Sont des zones de la mmoire rserves par un algorithme pour stocker les donnes, les valeurs intermdiaires et les rsultats Ces zones peuvent tre simples ou structures
Variable : dfinition
Une variable en algorithmique est une zone
Variable : Type
Le type dune variable reprsente :
Lensemble dans lequel la variable prend ses valeurs La taille, en cases mmoires (octets), de la variable Les oprations autorises sur la variable
Logique Entier positif , Entier Dcimal : nombres avec virgule Caractre, Chane
Variable : Dclaration
Dclarer une variable signifie :
valeur dune constante, dune variable ou le rsultat dune expression dans un organe de sortie Cette instruction ne modifie pas le contenu de la variable quelle crit En C on utilise : printf()
valeur dune variable partir du clavier ou un organe dentre Cette instruction modifie le contenu des variables lues En langage C, on utilise : scanf(..)
valeur dune variable Aprs laffection lancienne valeur de la variable est perdue
Calculer le rsultat de lexpression et stocker ce rsultat dans la variable dsigne par lidentificateur
Organigrammes
Un organigramme est une reprsentation graphique
dun algorithme
Type boolen Types caractres Types entiers Types dcimaux Types numrs
Types entiers
signed int , signed , signed short , signed long unsigned int , unsigned , unsigned short , unsigned long
Types entiers
Les constantes de type entier peuvent tre exprimes dans la base
Dcimal : 0 ; 12356 ; -548 ; +86 Octal : une constante commenant par 0 suivie dun ou plusieurs chiffres, 0..7, est considre comme valeur octale; 012 Hexadcimal : une constante commenant par 0x suivie dun ou plusieurs chiffres, 0..9,a..f, est considre comme valeur hxadcimale ; 0x3f
Le suffixes L dsigne les constantes de type long : 456L Le suffixe U dsigne les constantes non signes : 2376U
Types caractres
Ce type est dsign en C par le mot rserv char.
Le type sign prend ses valeurs dans -127127 Le type non sign prend ses valeurs dans 0255 ce type est dsign par : unsigned char
Une valeur de type char peut tre traite comme un entier. Pour obtenir la valeur entire dune variable x de type char, on utilise
la notation (int)x.
Caractres spciaux
Nouvelle ligne Tabulation horizontale Tabulation verticale Espace Bip sonore Antislash point dinterrogation simple quotte double quotte
\n \t \v \b \a \\ \? \ \"
Types dcimaux
Suivant la taille, on distingue trois types:
Exemple :
type double.
en nombre doctets occups dans la mmoire. Pour dterminer la taille dun type ou dun objet on utilse loprateur : sizeof(objet)
Exemple :
Type boolen
En langage C le type boolen nexiste pas Par dfinition la valeur 0 correspond la valeur faux Aussi, une valeur entire diffrente de 0 est
Dclarations
En C, tout identificateur doit tre dclar avant son utilisation. Une dclaration se termine par point virgule et comporte quatre partie :
1.
2. 3.
4.
Spcificateur : cest un mot cl optionnel, tel que extern, static, auto. Il spcifie des attributs de la dclaration; Type de base : reprsente le type de lobjet Dclarateur : est compose du nom de lobjet et ventuellement dun oprateur de dclaration Initialisation : valeur char REPONSE = N; char REPONSE = N; initiale de lobjet int NOTE[30] ;
int NOTE[30] ; double ); doubleRECINE RECINE((double doublexx );
Oprateurs Dclarations
Les oprateurs de dclaration sont :
() [] *
char char *titre *titre= =exemple exemplepointeur; pointeur; flaot [[ 10] 20] flaotMatrice Matrice 10][[ 20];; double )) ;; doubleRECINE RECINE ((double doublex x
Dclarations : noms
En C, le nom dun objet (identificateur) est
R1 : le premier caractre doit tre une lettre R2 : le caractre _ est considr comme une lettre R3 : les mots rservs de C++ ne peuvent pas tre utiliss comme identificateur R4 : La casse des caractres est significative
dans une seule instruction : Il suffit de sparer les noms par des virgules.
Initialisation
On peut affecter une valeur initiale une
moment de sa dclaration :
Oprateurs arithmtiques
+ * / %
Oprateurs de comparaison
Ces oprateurs sont binaires; les deux termes comparer doivent avoir des types compatibles
Oprateurs daffectation
Affectation simple Affectation et ajout Affectation et soustraction Affectation et produit Affectation et division Affectation et quotion
= += -= *= /= %=
Exemple :
x=y+=a/b*c++<2&&-!c x=(y+=((((a/b)*(c++))<2)&&(-(!c))))
Exercice 1
Soient les dclarations suivantes : int n = 5, p = 9 ; int q ;
Quelle est la valeur affecte aux diffrentes variables
concernes par chacune des instructions suivantes ? q=n<p; q = n == p ; q=p%n+p>n; x=p/n; x = (float) p / n ; x = (p + 0.5) / n ; x = (int) (p + 0.5) / n ; /* 1 */ /* 2 */ /* 3 */ /* 4 */ /* 5 */ /* 6 */ /* 7 */
Structures de base
Les structures de base organisent et agencent les
rgle dembotement : lintrieur dune structure, on peut mettre une autre structure condition que lune soit entirement incluse dans lautre Deux structures ne doivent pas se chevaucher
Structure Squentielle
Elle permet de dfinir lordre dexcution des
instructions et des structures dun algorithme Cette structure un dbut et une fin En gnral, lordre dexcution est du haut vers le bas : Dbut lment_1 lment_2 lment_n Fin
Structures Alternatives
Cette structure permet de choisir le
traitement excuter suivant les valeurs dune expression Une alternative simple permet de choisir un traitement parmi deux suivant la valeur dune condition Choix multiple permet le choix dun traitement parmi plusieurs selon la valeur dune expression
La structure : Si alors
Algorithme Si (Condition) alors traitement Fsi
C if (Condition) instruction ;
if (Condition) {
La structure : Si alors
max max=a =a;; if if(max<b) (max<b) if if(a<b) (a<b) {{ c=a c=a;; a=b a=b;; b=c b=c;; }} } instruction_1 ; instruction_2 ; instruction_n; max= max=b b;; C if (Condition) instruction ;
if (Condition) {
La structure :Si.alorssinon
Algorithme Si (Condition) alors traitement1 sinon traitement2 Fsi C if (Condition) instruction1 ; else instruction2 ;
if (Condition)
La structure :Si.alorssinon
ifif(x< (x<0) 0) abs abs= =-x -x;; else else abs abs=x =x;; ifif(x<0) (x<0) {{ abs abs= =-x -x;; printf(%f" printf(%f",,abs abs); ); }} else else {{ abs abs=x =x;; printf(%f" printf(%f",,abs abs); ); }} C if (Condition) instruction1 ; else instruction2 ;
if (Condition)
La conditionnelle multiple
switch(Expression) { case valeur1: Bloc1 case valeur2 : Bloc2 case valeurN : BlocN default: BlocDefaut /* facultatif mais fortement conseill !! */ } Attention ! Il sagit avant tout dune instruction de branchement conditionnel
Si
break;
Le vritable schma de la conditionnelle
Exercice 2
crire un programme qui affiche la rsistance
parallle.
Exercice 3
a) crire un programme qui calcule le prix
TTC (type double) d'un article partir du prix net (type int) et du pourcentage de TVA (type int) ajouter.
b) crire un programme qui calcule le prix net
d'un article (type double) partir du prix TTC (type double) et du pourcentage de TVA (type int) qui a t ajoute.