• Aucun résultat trouvé

Catherine  Recanati

N/A
N/A
Protected

Academic year: 2022

Partager "Catherine  Recanati"

Copied!
27
0
0

Texte intégral

(1)

 

 

Catherine  Recanati  

(2)

Plan  général  

—  Représentation  des  nombres.  Notion  de  variable.    

—  Programme.  Expressions.  

—  Architecture  des  ordinateurs:  langage  machine,  langage   assembleur,  AMIL.    

—  Systèmes  d’exploitation  :  fichiers,  processus,  compilation.  

—  Instructions  de  contrôle:  boucles  et  branchements.  

—  Programme,  définition  de  fonction,  appel  fonctionnel.  

—  Tableaux  de  variables  et  fonctions  d’arguments  de  type   tableau.  

—  Sens  d’un  programme,  pile  d’exécution,  compilation.  

—  Pointeurs  et  tableaux.  

—  Chaines  de  caractères,  bibliothèque  <string.h>.  

—  Allocation  dynamique,  liste  chaînées.  

—  Révisions.  

2  

(3)

-­‐  Cours  1  -­‐  

Représenta0on  des  nombres   No0on  de  variable  

—  Codage  binaire  des  entiers  

—  Codage  hexadécimal  

—  Notion  de  variable  

—  Types  de  variables  

3  

(4)

Représenta.on  des  en.ers  

En  base  10  (décimale),  on  utilise  10  chiffres:  

0,1,2,...6,7,8 et  9.                                                          

Ainsi,  si  n  =  17,  on  aura  Rep

10

(n)  =  17,  car    n  = 1 x  10

1

   +  7  x  10

0  

 

En  base  2  (binaire),  on  n’utilise  que  2  

chiffres:  0 et  1.  La  décomposition  de  n  en   somme  de  puissances  de  2  

 n  =  1  x  2

3

 +  0  x  2

2

 +    0  x  2

1

 +  1  x  2

0  

fournit          Rep

2

(n)  =  1001.  

4  

Codage  binaire   des  entiers   Codage  

hexadécimal   Notion  de   variable   Types    

de  variables  

Plan  

(5)

Codage  binaire  des  en.ers  

Ainsi,  en  binaire:  

1        s’écrit                        1 1x2

0

2      s’écrit                    10 1x2

1

+0x2

0

3      s’écrit                    11   1x2

1

+1x2

0

4      s’écrit        100   1x2

2

+0x2

1

+0x2

0

  5      s’écrit        101   1x2

2

+0x2

1

+1x2

0

6      s’écrit      110   1x2

2

+1x2

1

+0x2

0

etc.  

Codage  binaire   des  entiers   Codage  

hexadécimal   Notion  de   variable   Types    

de  variables  

Plan  

(6)

Codage  binaire  des  en.ers  

1  s’écrit                          1 2          s’écrit                                      10 2 2 -1  s’écrit                                      11  

2 2        s’écrit                  100  

2 3 -1  s’écrit                  111   2 3  s’écrit            1000

... ... ...  

2 n -1 s’écrit              111...  ...11            (n  chiffres  1) 2 n s’écrit              100...  ...00    (un  1  +  n  zéros)  

Codage  binaire   des  entiers   Codage  

hexadécimal   Notion  de   variable   Types    

de  variables  

Plan  

(7)

Décimal     è    Binaire    

Pour  trouver  la  représentation  binaire  d’un   nombre,  il  faut  le  décomposer  en  somme  de   puissances  de  2.  

 

Il  est  donc  intéressant  de  connaitre  un  peu   la  liste  des  puissances  de  2:  

1,  2,  4,  8,  16,  32,  64,  128,  256,  512,  1024,   ...,  16 384,  ...,  65  536,  etc.    

Codage  binaire   des  entiers   Codage  

hexadécimal   Notion  de   variable   Types    

de  variables  

Plan  

(8)

L’addi.on  en  binaire  

       1 + 1 = 10   10 + 1 = 11 11 + 1 = 100

 1011 + 11

--- 1110

8  

Codage  binaire   des  entiers   Codage  

hexadécimal   Notion  de   variable   Types    

de  variables  

Plan  

« 1 + 1 = 10, je pose 0 et je retiens 1.

1+ 1 +1 = 11, je pose 1 et je retiens 1.

0 + 1= 1, je pose 1

et j’abaisse le 1 »

(9)

Codage  hexadécimal  

On  utilise  16  caractères  :  les  dix  premiers   chiffres  0,1,2,...6,7,8,9  et  les  six   premières  lettres  :  A,  B,  C,  D,  E,  F.  Ainsi  A   désigne  10,  et  F  désigne  15.  

ex:  FFFF désigne  le  nombre  65  535.  

 

Si  n  =  17,  la  décomposition  de  n  en  somme   de  puissances  de  16  

 n  =  1x  16

1

 +  1x  16

0  

nous  donne  sa  représentation  hexadécimale        

       Rep

16

(n)  =  11

9  

Codage  binaire   des  entiers    Codage  

hexadécimal   Notion  de   variable   Types    

de  variables    

Plan  

(10)

Codage  hexadécimal  

Inversement,  pour  convertir  en  décimal   une  représentation  hexadécimale,  on  

calculera  la  somme  des  puissances  de  16   correspondant  aux  différents  coefficients   hexadécimaux.  

Ex:      Rep

16

(n)  =    AF2B.    

n  =  Ax16

3

+ Fx16

2

+ 2x16

1

+ Bx16

0

=10x4096  +  15x256  +  2x16  +  11x1  = 40  960 + 3  840 + 32 + 11

 = 44  843

10  

Codage  binaire   des  entiers    Codage  

hexadécimal   Notion  de   variable   Types    

de  variables    

Plan  

(11)

Binaire     è    Hexadécimal    

Pour  convertir  une  représentation  binaire   en  hexadécimale,  il  suffit  de  considérer  les   digits  (0  ou  1)  par  paquet  de  4,  et  de  les  

convertir  en  digits  hexadécimaux  :  

 

Ex:      Rep

2

(n)  =    111100101110010010  

Rep

2

(n)    =  11 1100 1011 1001 0010

3 12 11 9 2 3 C B  9 2                    Rep

16

(n)    =    3CB92

11  

Codage  binaire   des  entiers    Codage  

hexadécimal   Notion  de   variable   Types    

de  variables    

Plan  

(12)

Hexadécimal     è    Binaire  

On  transformera  chaque  digit  hexadécimal   par  son  code  binaire  (sur  4  bits)  pour  

obtenir  la  représentation  binaire  d’un   nombre  à  partir  de  sa  représentation   hexadécimale.  

Ex:      Rep

16

(n)  =    FF2A

Rep

16

(n)  =            F   F    2   A Rep

2

(n  )  =    1111  1111  0010  1010  

car  Rep

2

(F)  =  1111, Rep

2

(2)  =  0010 et Rep

2

(A)  =  1010

12  

Codage  binaire   des  entiers    Codage  

hexadécimal   Notion  de   variable   Types    

de  variables    

Plan  

(13)

Mémoire  

13  

Codage  binaire     des  entiers  

Codage  

hexadécimal   Notion  de   variable  

Types    

de  variables  

Plan  

 La  mémoire  d’un  ordinateur  est  

constituée  d’unités  élémentaires,  les  bits.  

Un  bit  (de  binary  unit)  vaut   0  ou   1 .  Un   ensemble  de  8  bits  consécutifs  s’appelle   un  octet.  

 Le  byte  est  la  plus  petite  unité  de   mémoire  adressable  (souvent  8  bits).    

 

(14)

No.on  de  variable  

14  

Codage  binaire     des  entiers  

Codage  

hexadécimal   Notion  de   variable  

Types    

de  variables  

Plan  

 Une  variable  est  une  «  case  »  ou   zone  mémoire  dont  on  connait  

l’adresse  de  début  et  l’étendue  (sa  taille   en  nb  de  bytes).    

 

   case  n°   3  

01111111 00000001 01111111 00000000 01111111 01111100 01111111 1

2 3 4 5 6 7

(15)

No.on  de  variable  

15  

Codage  binaire     des  entiers  

Codage  

hexadécimal   Notion  de   variable  

Types    

de  variables  

Plan  

Une  variable  possède  un  nom,  son  

identificateur,  et  une  valeur  (encodée   par  une  suite  de  bits  ).  

  angle

  Avec  8  bits,  on  pourra  coder  les  entiers   positifs  compris  entre   0  et   2

8

-1 ,  c’est-­‐à-­‐

dire     255 .    

 

Ici   angle  a  pour  valeur  entière   5.

0 0 0 0 0 1 0 1

(16)

Déclara.on  de  variable  

16  

Codage  binaire     des  entiers  

Codage  

hexadécimal   Notion  de   variable  

Types    

de  variables  

Plan  

On  déclare  une  variable  en  déclarant   son  identificateur  (=  son  nom),  et  son   type  (=  celui  de  ses  valeurs  encodées   sur  un  certain  nb  de  bits).

 

   

 Un  identificateur  est  défini  

syntaxiquement  par  la  notation  (BNF):  

 ident        ::=  leFre  (leFre  |  chiffre)*    

 leFre      ::=    a  |  b  |

.  .  .  

|z  |  A|  

.  .  .  

|Z    |_  

 chiffre  ::=    0  |  1  |  2  |  

.  .  .  

|  9  

 

exemples:      x,  _BiDoN,  jour_ferie  

 

(17)

17  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan     Types  de  variables  

On  dispose  en  C  de  plusieurs  types   d’en.ers  :    

int         en.ers  signés  

unsigned int     en.ers  posi.fs  

long int       en.ers  longs  

unsigned long int   en.ers  longs  posi.fs  

short int       en.ers  pe.ts  

unsigned short int en.ers  posi.fs  pe.ts  

   La  taille  d’un   int  varie  selon  les   ordinateurs,  mais  on  aura  souvent  8  bits  

pour  les   short ,  16  (ou  32)  bits  pour  les   int ,   et  32  (ou  64)  bits  pour  les   long .    

 

(18)

18  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan  

  Si  les  short  int  sont  stockés   sur  8  bits,  ils  permeFent  de  coder  les   en.ers  rela.fs  appartenant  à  [  -­‐127,   127  ]  ;  et  les  unsigned  short  int   permeFent  de  coder  les  en.ers  

posi.fs  de  0  à  255.  

 

ATTENTION  aux  débordements  en  cas   d’addi.on  :  les  bits  supplémentaires   seront  ignorés  et  perdus.  Le  

programme  sera  peut-­‐être  faux  !  

 

 

(19)

19  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan   Types  de  variables  

  On  peut  aussi  coder  en  C  des   nombres  réels  (en  fait  ra.onnels).    

 

Il  existe  trois  types  de  floFants,  de  la   plus  faible  à  la  plus  grande  précision:  

float, double et long double.

 

 La  précision  effec.vement   u.lisée  pour  chacun  de  ces  types   dépend  de  l'implémenta.on.  

   

(20)

20  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan   Type  char  

Le  type   char désigne  les  caractères.  

Le  plus  souvent  ils  sont  encodés  par  le   code  américain  standard   ASCII   (sur  8   bits),  et  sinon   unicode   (sur  16  bits).  

 

Les  constantes  de  type   char  sont   notées  entre    apostrophes  (quote):  

   ‘a’            désigne  le  caractère  a.  

   ‘\ 012 ’    désigne  le  caractère  de  code            octal  12,  c’est-­‐à-­‐dire  10.  

 

(21)

21  

Code  ASCII  

(22)

22  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan   Déclara.ons  de  variables  en  C  

           /*  quelques  variables  numériques  */  

short int angle_mort ;

unsigned long grandeDistance ; float taille;

           /*  un  caractère  */  

char lettre ;    

             /*  définitions  de  constantes  */  

#define EXIT_SUCCESS 0

#define BEEP ‘\007’

   

 

(23)

23  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan   Déclara.ons  de  variables  en  C  

       Pour  les  identificateurs  (=  nom  des   variables),  on  suit  la  syntaxe  décrite   précédemment.  

 

   Mais  certains  mots  ne  peuvent   pas  être  utilisés.  Ce  sont  les  mots  

réservés  (ou  mots  clés)  du  langage  C.  

Nous  avons  déjà  vu  les  noms  des  types   de  base,  mais  il  y  a  d’autres  mots  

réservés,  que  nous  introduirons  au  fur  

et  à  mesure.  

(24)

Mots  réservés  du  langage  C  

24  

   

           auto                        double                    int                            struct  

             break                      else                            long                        switch                case                          enum                    register              typedef                char                          extern                  return                  union  

             const                      float                          short                    unsigned                continue          for                                signed                void  

             default                goto                          sizeof                    volatile  

             do                                if                                    static                      while  

(25)

25  

Pour  conclure  :  une  variable  possède  

 

—  une  adresse.  Sa  localisation  en  mémoire  lors  d’une   exécution  du  programme.    

—  un  type.  C’est  celui  des  valeurs  que  la  variable  peut   prendre  (int,  char,  etc.).  Ce  type  a  une  taille  (sizeof   (type)  qui  définira  le  nombre  de  bits  (différent  selon   les  plateformes)  sur  lesquels  sera  encodée  la  valeur  de   la  variable.  C’est  un  type  d’allocation  mémoire.  

—  une  valeur.  Elle  est  encodée  par  les  bits  présents  à   l’adresse  de  la  variable.    

—  un  identificateur.  C’est  le  nom  de  la  variable  dans  le  

texte  du  programme.  

(26)

26  

Codage  binaire     des  entiers  

Codage  

héxadécimal   Notion  de   variable   Types  

de  variables  

Plan  

Merci  pour  votre  aFen.on.  

Des  ques.ons  ?    

(27)

27  

 Les  opérateurs  utilisés  pour  décrire  les  constructions  dans  le   format  BNF  sont  :  

–  (a)  :  les  parenthèses  permettent  de  délimiter  une  expression  BNF  à   laquelle  un  opérateur  peut  s’appliquer.  

–  a*  :  l’étoile  représente  la  répétition  (d’une  construction  a)  un  certain   nombre  de  fois,  éventuellement  zéro.  

–  a+  :  le  symbole  +  représente  la  répétition(  d’une  construction  a)  un   certain  nombre  de  fois,  dont  au  moins  une.  

–  a  |  b  :  représente  soit  une  construction  décrite  par  a,  soit  une   construction  décrite  par  b  (c’est  soit  a,  soit  b).    

–  [  a  ]  :  les  crochets  indiquent  que  la  présence  de  la  construction  a  est   optionnelle  (a  apparaît  0  ou  1  fois).    

où  a  ,  b  sont  des  descriptions  BNF  de  constructions  possibles  

 

Les  symboles  terminaux  sont  représentés  dans  une  typographie  

particulière.  On  a  utilisé  ici  des  caractères  gras  et  de  couleur  rouge,  

(comme  2)  dans  les  diapos  précédentes.

 

Références

Documents relatifs

 Définition  de

par la valeur de retour du calcul de expression , avant l’exécution du corps de la fonction. Fonctions  à

 Définition  de

 Définition  de

Le modèle sous-jacent au système de fenêtrage X a prévu la présence d'un client particulier, le gestionnaire de fenêtre (ou window manager), qui rend bien des services

On va dessiner un rectangle qui suit la souris (comme dans un logiciel de dessin pour créer un rectangle) dans un panneau qu’on placera au centre d’un JFrame. Sur l’événement

 Une dictée vocale peut être associée à un traitement de texte : Un locuteur parle et le texte s’affiche ; ainsi, il n’a plus besoin de taper son texte au clavier.. 

Avoir les genoux trop rapprochés, qui se touchent presque Vous avez les genoux cagneux!. avoir le