Вы находитесь на странице: 1из 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.

Вам также может понравиться

  • Escargot PDF
    Escargot PDF
    Документ15 страниц
    Escargot PDF
    Khalifa Bakkar
    Оценок пока нет
  • Cours Microcontroleur Pic 16f84
    Cours Microcontroleur Pic 16f84
    Документ15 страниц
    Cours Microcontroleur Pic 16f84
    Khalifa Bakkar
    Оценок пока нет
  • Memoire
    Memoire
    Документ13 страниц
    Memoire
    Khalifa Bakkar
    Оценок пока нет
  • Cours Microcontroleur Pic 16f84
    Cours Microcontroleur Pic 16f84
    Документ15 страниц
    Cours Microcontroleur Pic 16f84
    Khalifa Bakkar
    Оценок пока нет
  • Euler
    Euler
    Документ4 страницы
    Euler
    Khalifa Bakkar
    Оценок пока нет
  • Remerciement Tit
    Remerciement Tit
    Документ2 страницы
    Remerciement Tit
    Khalifa Bakkar
    Оценок пока нет
  • GR 27 Cahier Des Charges
    GR 27 Cahier Des Charges
    Документ1 страница
    GR 27 Cahier Des Charges
    Khalifa Bakkar
    Оценок пока нет
  • (Unknown) Les Réseaux de Neurones
    (Unknown) Les Réseaux de Neurones
    Документ27 страниц
    (Unknown) Les Réseaux de Neurones
    Khalifa Bakkar
    100% (1)
  • TD Identification
    TD Identification
    Документ7 страниц
    TD Identification
    Khalifa Bakkar
    Оценок пока нет
  • TD5 Matlab
    TD5 Matlab
    Документ2 страницы
    TD5 Matlab
    Khalifa Bakkar
    Оценок пока нет
  • Réseaux de Neurones
    Réseaux de Neurones
    Документ54 страницы
    Réseaux de Neurones
    Khalifa Bakkar
    Оценок пока нет
  • AM Indexation
    AM Indexation
    Документ24 страницы
    AM Indexation
    Khalifa Bakkar
    Оценок пока нет
  • Seminaire Neurones
    Seminaire Neurones
    Документ34 страницы
    Seminaire Neurones
    Khalifa Bakkar
    Оценок пока нет
  • 1 Le Langage Python Et L'environnement de Développement Thonny
    1 Le Langage Python Et L'environnement de Développement Thonny
    Документ4 страницы
    1 Le Langage Python Et L'environnement de Développement Thonny
    momo
    Оценок пока нет
  • CoursAlgorithmique1MPI V8
    CoursAlgorithmique1MPI V8
    Документ281 страница
    CoursAlgorithmique1MPI V8
    Houssem1993
    100% (1)
  • Cours PHP Mars2021
    Cours PHP Mars2021
    Документ63 страницы
    Cours PHP Mars2021
    Ãbdoul Ãziz
    Оценок пока нет
  • Cours Langage C
    Cours Langage C
    Документ18 страниц
    Cours Langage C
    Hélène Joffrin
    Оценок пока нет
  • Bases de Programmation C
    Bases de Programmation C
    Документ32 страницы
    Bases de Programmation C
    OMAR ENNAJI
    Оценок пока нет
  • Intro ns2
    Intro ns2
    Документ32 страницы
    Intro ns2
    Fréjusf Laleye
    Оценок пока нет
  • Cours 1 Complément Notions de Base PDF
    Cours 1 Complément Notions de Base PDF
    Документ22 страницы
    Cours 1 Complément Notions de Base PDF
    Valentin Zahoundo
    Оценок пока нет
  • IDRIS Fortran Cours
    IDRIS Fortran Cours
    Документ277 страниц
    IDRIS Fortran Cours
    Ouijdane Maa
    100% (1)
  • Del Phi
    Del Phi
    Документ50 страниц
    Del Phi
    Merniz Abdelkader
    Оценок пока нет
  • Cablage Automate Programmable PDF
    Cablage Automate Programmable PDF
    Документ4 страницы
    Cablage Automate Programmable PDF
    Sdiri
    Оценок пока нет
  • Cours-Labview 220318 090638
    Cours-Labview 220318 090638
    Документ14 страниц
    Cours-Labview 220318 090638
    Hamza Boutlih
    Оценок пока нет
  • Pointeurs
    Pointeurs
    Документ57 страниц
    Pointeurs
    Papa Thiam
    Оценок пока нет
  • Step 7 Blocs
    Step 7 Blocs
    Документ29 страниц
    Step 7 Blocs
    samka0878
    Оценок пока нет
  • Chap2 LE&BI PDF
    Chap2 LE&BI PDF
    Документ59 страниц
    Chap2 LE&BI PDF
    Mustapha Ramdhan
    100% (1)
  • TP PHP PDF
    TP PHP PDF
    Документ22 страницы
    TP PHP PDF
    Hakkache Yassin
    Оценок пока нет
  • Chapitre 1
    Chapitre 1
    Документ16 страниц
    Chapitre 1
    Inti Sar
    Оценок пока нет
  • Tutoriel Programmation SIG: Utilisation Des Outils Python Libres
    Tutoriel Programmation SIG: Utilisation Des Outils Python Libres
    Документ66 страниц
    Tutoriel Programmation SIG: Utilisation Des Outils Python Libres
    Josué Asciel Mienmoyé
    Оценок пока нет
  • TCL
    TCL
    Документ53 страницы
    TCL
    Walid Moussa
    Оценок пока нет
  • Cours C Partie 1
    Cours C Partie 1
    Документ53 страницы
    Cours C Partie 1
    driss chakdali
    Оценок пока нет
  • Poly TP7
    Poly TP7
    Документ249 страниц
    Poly TP7
    strideworld
    Оценок пока нет
  • Matlab s1
    Matlab s1
    Документ17 страниц
    Matlab s1
    zayd
    Оценок пока нет
  • Anonymat
    Anonymat
    Документ42 страницы
    Anonymat
    n_tabti2264
    Оценок пока нет
  • Algorithmique Py
    Algorithmique Py
    Документ54 страницы
    Algorithmique Py
    Mohamed Khalily
    Оценок пока нет
  • Tutoriel Google Dart Session 01 02
    Tutoriel Google Dart Session 01 02
    Документ26 страниц
    Tutoriel Google Dart Session 01 02
    Aime Seri
    Оценок пока нет
  • Delphi
    Delphi
    Документ40 страниц
    Delphi
    loesouleymane
    Оценок пока нет
  • Aides Pédagogiques d'informatique-2SI - Algo
    Aides Pédagogiques d'informatique-2SI - Algo
    Документ3 страницы
    Aides Pédagogiques d'informatique-2SI - Algo
    RaniaElleuchAbid
    Оценок пока нет
  • Chap 3 Algorithmique
    Chap 3 Algorithmique
    Документ183 страницы
    Chap 3 Algorithmique
    Amine Chamali
    Оценок пока нет
  • Python: Licence 3 Séance 1
    Python: Licence 3 Séance 1
    Документ25 страниц
    Python: Licence 3 Séance 1
    Jennifer Adelakoun
    Оценок пока нет
  • Cours Algorithmique Et Programmation 4 Si (Full Permission)
    Cours Algorithmique Et Programmation 4 Si (Full Permission)
    Документ222 страницы
    Cours Algorithmique Et Programmation 4 Si (Full Permission)
    soufienne
    Оценок пока нет
  • (GLII-Spécification, Vérification Et Qualité-Chapitres 1 Et 2-2013-2014
    (GLII-Spécification, Vérification Et Qualité-Chapitres 1 Et 2-2013-2014
    Документ167 страниц
    (GLII-Spécification, Vérification Et Qualité-Chapitres 1 Et 2-2013-2014
    Khalil Regaieg
    Оценок пока нет