Vous êtes sur la page 1sur 46

PROGRAMMATION EN LANGAGE C

Othmane EL MESLOUHI

Classement selon TIOBE index

Rsolution dun problme sur Ordinateur

nonce du problme

Analyse

Algorithme

Programme

Excution Du programme

criture dun 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 :

Lecture / Ecriture Affectation

Des structures fondamentales qui organisent les instructions de lalgorithme :


Squence Choix Rptition

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

mmoire utilise par un algorithme pour conserver une valeur lmentaire


Une variable est caractrise par :
1. 2. 3.

un identificateur un type une valeur

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

Les principaux types utiliss en informatiques :

Logique Entier positif , Entier Dcimal : nombres avec virgule Caractre, Chane

Les types en langage C


entier se dcline en C: int , short int, long int, unsigned int , unsigned short int, unsigned long int. Dcimal se dcline en C : float, double (pour un nombre virgule flottante en double prcision) caractre se dcline en C : char Chane : cest un tableau de caractres

Variable : Dclaration
Dclarer une variable signifie :

Prciser son type fournir son identificateur Donner sa valeur initiale

Toute variable manipule par un algorithme, doit

tre dclare avant sa premire utilisation.

Instructions de base : criture


Cette instruction permet dafficher ou dcrire la

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()

Instructions de base : Lecture


Cette instruction permet dintroduire une

valeur dune variable partir du clavier ou un organe dentre Cette instruction modifie le contenu des variables lues En langage C, on utilise : scanf(..)

Instructions de base : Affectation


Cette instruction permet de changer la

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

Types fournis par les langages (exple C ):

Types scalaires Types composs :Tableaux et structures Pointeurs

Les types fondamentaux


Les types scalaires sont :

Type boolen Types caractres Types entiers Types dcimaux Types numrs

partir de ces types, on peut construire dautres types

Types tableaux Types structures Types pointeurs

Types entiers

Selon la taille occupe en mmoire, on distingue trois types entiers :


int short int ou short long int ou long

On peut ajouter le qualificatif de signe pour chacun de ces types :


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

dcimale, octale ou hexadcimale :


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.

Exemple : char lettre =a ;

Un objet de type char, occupe 8 bits, a 256 diffrentes valeurs. En

gnral, sont les valeurs de la table ASCII.


Le type caractre peut tre sign ou non:

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

Un ensemble de caractres on des noms standards :


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:

float : en simple prcision double : en double prcision

Exemple :

float x; double rayon;

Par dfaut les constantes dcimales sont du

type double.

Tailles des types


La taille dun type ou dun objet est exprime

en nombre doctets occups dans la mmoire. Pour dterminer la taille dun type ou dun objet on utilse loprateur : sizeof(objet)

Exemple :

printf(%d , sizeof(int)) ; printf(%d , sizeof(long)) ;

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

considre comme vraie

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 :

Oprateur fonction : Oprateur tableau : Oprateur pointeur :

() [] *

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

une suite de lettres et de chiffre :


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

Dclaration de plusieurs noms


Il est possible de dclarer plusieurs noms

dans une seule instruction : Il suffit de sparer les noms par des virgules.

Exemple : int x , y ; char A[10] , rep ; double pi , rayon , surface ;

Initialisation
On peut affecter une valeur initiale une

variable au moment de sa dclaration :

Exemple : int x=0 ; double pi = 3.14 ; double S=0 , P=1;

De mme un tableau peut tre initialis au

moment de sa dclaration :

Exemple : char rep[4] = { N , n , O ,o } ;

Oprateurs arithmtiques

Addition Sous traction Oppos Produit Division Reste euclidien

+ * / %

binaire binaire unaire binaire binaire dans IN et IR binaire dans IN

Oprateurs de comparaison

gal Diffrent Infrieur Suprieur Infrieur ou gal Suprieur ou gal

== != < > <= >=

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

= += -= *= /= %=

Priorit et associativit des oprateurs

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

instructions dun algorithme Des structures fondamentales sont :


Squentielle Alternatives Rptitives

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) {

instruction_1 ; instruction_2 ; instruction_n; }

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)

{ instruction_1_1 ; instruction_1_n ; } else { instruction_2_1 ; instruction_2_k ; }

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)

{ instruction_1_1 ; instruction_1_n ; } else { instruction_2_1 ; instruction_2_k ; }

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

Bloci ne contient quune instruction...

2.4.3. La conditionnelle multiple


Interruption de lexcution dun switch :

break;
Le vritable schma de la conditionnelle

multiple est le suivant :


switch(Expression) { case valeur1: Bloc1 break; case valeur2 : Bloc2 break; case valeurN : BlocN break; default: BlocDefaut }

Exercice 2
crire un programme qui affiche la rsistance

quivalente trois rsistances R1, R2, R3 (type double):


- si les rsistances sont branches en srie. - si les rsistances sont branches en

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.

Vous aimerez peut-être aussi