• Aucun résultat trouvé

[PDF] Cours ebook : langage C un premier langage de Jacques le maitre | Cours langage c

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Cours ebook : langage C un premier langage de Jacques le maitre | Cours langage c"

Copied!
81
0
0

Texte intégral

(1)
(2)
(3)

!

" #

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%

!

" #

$

%

&

%

&

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'

'

(

)

" *

+

,

&

( )*

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"(

" - $ .

$

!

/

"

" !

"

" " !

&

" &

'

(

" 0

)

" % 1

$

2

+ #

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&"

& - $ .

$

& 0

%

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&,

- $ .

$

/

2

3

2

"

+

!

"

-

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$('

% - $ .

$

4

"(

% * 4

$

4

"(

% " 5

$

4

")

% &

"2

' )

.

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+"

(

6

4

scanf

&

(

6

4

printf

&

/

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+%

) 3

$ 4 7

&

)

+

+

4

&%

) "

&%

(4)

&

) &

&(

) !

&(

, 0

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+,

2 - $ .

/

&2

2 *

$

&2

2 "

$

,

2 & 0

+

!

2 0

7 8

9

2 % 0

"

2 ( 0

$

"

"1

2

!

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%'

, #

$

7 8

9

(

, *

)

, "

7 8

9

)

, & 544 7

$

7 8

9

)

,

$

7 8

9

)

"" 3

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$-%

1+: 4

%

+

%

" #

$

$

%(

& 0

: $

+

%(

"&

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'%

;

(

$

4

(%

" #

((

& * 4

$

4

((

$<

=

()

(5)

"

#

"$"

+

(,

7 7

+

>

! 35 ?

@ A $

B

' 9

$!

;?C

9

44

'

DD

+:

E +

"$& )*

?

A

$

!

+

!

+

$44 7

F G

#include <stdio.h>

F G

/*

F"G

* Maximum de deux nombres entiers

F&G

*/

F G

main()

F%G

{

F(G

int x, y, max;

F)G

printf("x ? ");

F2G

scanf("%d", &x);

F ,G

printf("y ? ");

F G

scanf("%d", &y);

F G

if (x >= y)

F "G

max = x;

F &G

else

F G

max = y;

F %G

printf("max = %d", max);

F (G

}

4@

H

I 5

4

printf scanf

) 2 ,

%

'

4 7

J

stdio.h

K

4

$44 7

I

A &

(6)

%

I

( A (

4

4

main

$

4

4

0

4

main

:

B

!

9

4

+

A

%

A

(

I

(

+

x y max

'

int

F

+

G

5

x y max

7

+

I

)

$!

F

+

6 J

KG 44 7

44

A

x

$

2

,

B

+

y

I

$

if

A

A

!

3

44

A

F

+

6 J

KG

x

A

y

F

"G

x

F

+

6 J

44

A KG

max

3

F

&G $

y

44

A

max

F

G

"$(

$

6

3

!

*

!

4 7

3

4 7

A

7

*

3

;?C

B

cc

4 7

!

+

a.out

" 0

!

;?C

a.out

"$+ 4

;

9

!

6

I > L

7

* # 7

*

H

I < M

6

?

4

+

$

A

$

(7)

&

5

B

$

4 +

7

$!

$

$

1

4 +

+ A

3

$

$

79

'

$

+ N

'

$

79

4 +

1

$ '

'

79

B

79

4

$

B 6

I

I

6

I

F

G

5

'

? $!

'

4

+

9

7 8

9

+

J 4 !K

+ ,

+

J

K

9

+

F

53 ??

G

7 8

9

+

9

F .A.

+

+

G

*

7

$

'

+

!

7

7

2

&$"

5

+

'

(8)

)

6

5

F

G

)

char

) +

. ) A

(

unsigned char

) +

, A

short

% +

." (%) A " (%(

unsigned short

% +

, A %

"

long

" +

.

&( &)" %&) A

&( &)" %&(

unsigned long

" +

, A & 2& 2%( 2%

)

int

'

+

B

4@

44

7

!

?

'

long float

" +

. ( ,

")

A ., 2 ,

.")

, 2 ,

.")

A ( ,

")

( 744

!

4

double

%& +

., 2 ,

",)

A ., % ,

.",)

, % ,

.",)

A , 2 ,

",)

744

!

4

long double

'

+

4

* !

6

I

A

'

+

.

I

$

+

4 '

B A

'

unsigned

4

+

B

&$&

+

4

9

7 8

9

!

+

4 $

A

?

+

$

. A

+

F

.

O" " G

&$&$" 6

9

0

744

44

0

0

!

6

0 1515

9

$

'

int long unsigned long

0

!

141946

'

(9)

* 2

44!

u U unsigned l L long

0

!

1515L

'

long

1515UL

'

unsigned long

&$&$& 6

4

4

6

I

$

!

6

744

I

$

I

$

6

744

I

$

*

6

e E + –

$

744

1

6

I

9

4

!

I

$!

!

0

!

4

6

2731.5e-1 .15 2e3

+ 6

("

,

,,,

4

$

'

double

1

7

'

:

44!

f F float l L long double

0

!

.15F

'

float 2731.5e-1L

'

long double

&$&$(

!

9

$

!4

9

+

7 0

!

6

'A' '1'

9

9

\

FJ

.

7KG

J

9 $ 7

K 6

\n \t

+

\b

9

\r

7

\f \a \

9

F P

44

n t b r f a

G

0

!

9 J

K

\"

9

$

'

char

0

!

9

53 ??

53 ??

5

%

'A'

+

65

'

char

&$&$+

2

!

7 8

9

4

9

0

!

6

(10)

,

"Bonjour !" "Je vous dis : \"Bonjour !\""

;

$

9

$ 7

\

A

7 8

9

!

A

7 8

9

$

'

J

9 K

&$(

4 +

4

6

'

$

4

9

7

B

744

9 Q

9

0

!

6

x y1 ma_variable

+

B

!

;

+

+

'

+

7

+

4

6

= , …, = ;

P6

I

$

'

4

O

I

R

4

I

R

!

4

+

'

R

!

R

$!

+

+

!

+

+

+

7

) *

9

$!

$

*

F .A.

!

+ G

$

+

0

!

6

int i, j, k;

float longueur = 10.5, largeur = 6.3; char une_lettre;

4

6

I

+

i j k

'

int

H

I

!

+

longueur largeur

'

float

,

" H

(11)

*

1

J 4! K

$

+

4!

.

const

+

6

+

4

B

4

$!

0

!

6

const float pi = 3.14;

' 4

" &

&$+ )

0

6

I

$

+

+

$

H

I

$

+

A

$!

$

?

$

$

'

$

!

B

!

0

$

$

$7

!

!

O

$

+

(

4

+

x y max

3

+

A

x y

F

2

G

"

$

9 $!

$

x

S

"

y

S

max

S

*

7

4@

6

I

'

6

(T) n v

I

4 +

'

6

    v  (T) n 

I $

$

+

7

+

:

$A

0

!

$

$!

O

6

(12)

   (int) max       (int) y       (int) x    

I

7

$

$

A

+

A 7

4 +

A

$

O

9 $!

$

6

    55 (int) max      55 (int) y      32 (int) x    

;

B

+

B

B

9

9

7

$

+

7 7

9

0

!

$

6

   158 x      3 y     155 x    

+

x

)

(13)

(

)*

($" 7

.

*

8

!

7

4

A $

+

$

0

!

P

+

x

+

7

6

12 x (x + 12) - 3 (x > 4) && (x > 10)

!

!

9

!

!

9

!

!

+

6

I

'

I

6

I

!

I

7

$

1

!

$!

6

I

4 +

7

A

I

!

A

$

$

7

B

3

!

6

I

F G

'

I

F G

!

B

79

3

!

( )

!

B

'

B

($& )*

I 3

!

6

(14)

&

.

F G S '

.

F G S

I 3

+

!

6

.

F G S '

.

F G S

$

+

7

$

$

4 +

($( )*

!

A $

$

*

7

6

I

7

I

+

I $44

I

7

'

F

+

!G

7

!

7

2

($($" 3

$

T

$

$

+

3

!

'

6

-!

6

I

F

-

G S

F

G

I

F

-

G S.

F

G

($($& 9

+ - * /

44

!

+

$

%

!

+

3

!

'

+ -* / %

!

6

I

F

G S

P

'

int

F

G

F

G F

.

O" & G

I

F

G S

P

F

G

F

G

0

!

6

(15)

!

F

((4.0 + 2.25) * 2.0)

G

= 12.5

F

15 / 2

G

= 7

F

15 % 2

G

= 1

($($(

== != < <= > >=

$

44

$ 4

$ 4

$

$

!

+

3

!

'

6

== != < <= > >=

!

6

I

F

G S

int

F

$

G

I

F

G S

P

F

G

F

G

'

int

F

G

F

G F

.

O" &

G

0

!

6

F

1 == 9

G S

0

($($+ 6

$

!

$ +

3

!

6

!

!

6

I

F

G S

int

I

F

!

G S,

F

G S,

,

($($%

:

:

$

|| &&

:

:

!

+

3

!

6

|| &&

!

6

I

F

G S

int

(16)

%

I

F

||

G S

F

G U

0

F

G U

0

,

4 .

4 .

I

F

&&

G S

F

G S,

,

F

G U

0

,

4 .

4 .

I

!9

$

$

.A.

$

||

,

$

&&

0

!

6

F

!((1 || 0) && (0 || 1))

G S

0

($($- ;

$

=

44

A

4 + 0

!

7 A

3

!

$

4 + F

7 G

!

!

6

=

!

6

I

F

=

G S

F

G

I

F

=

G S

F

G

F

G F

.

O" &

G

I ?'

44

+

6

F

G

V

0

!

x y

+

F

x

G S

F

y

G S

int

F

y

G S

$!

6

(x = y) > 2

44

+

$44

A

x

;

<

4

4

$

$44

=

$

$

==

(17)

! (

3

4

! +

3

+

6

ident++ident = ident + 1

ident--ident = ident - 1

($+

5

1

6

I

*

$

W X

I

$

$

'

($+$"

*

=

>

?

3

'

!

+

6

( ) exp

!

6

I

F

( )

G S

I

F

( )

G S

F

G

($+$"$"

.

'

4@

6

char < unsigned char < short < unsigned short < long < unsigned long

3

! '

'

'

6

I

Y

Z

4

A

+

I

Z

A

+

($+$"$&

.

.

I

$

'

' 4

4

7

I

$

' 4

'

9

($+$&

($+$&$" 9

3

7

$!

6

4@

6

(18)

)

3 $

!

'

char unsigned char short unsigned short

$+

int

$

+

unsigned int

$

!

"

'

4@

6

int < unsigned int < long < unsigned long < float < double

3 $

'

$

'

[

$

'

$

4

'

($+$&$& ;

$!

6

=

P

!

'

!

'

4@

6

$!

U

44

A

0

!

$

$!

6

y = 5.0 + 3 * x

$

6

   2.5 (float) x      0 (int) y     12

'

int

6

   2.5 (float) x      12 (int) y    

($% 0

$

$!

$

$

!

79

+

$

(19)

! 2

9

0

;

() [] .

! -unaire &unaire *unaire( ) / % + -binaire < <= > >= == != && || =

&

"

,

2

&

A

A

7

A

7

A

7

A

7

A

7

A

7

A

7

A

3

4!

6

I

!

F

G

!

A

A

4A

7

I

!

F

!

G

3

4!

4!

6

I

F

G

A

+

A

4A

7

I

F

G

0

!

6

I

6 + 3 * 4≡6 + (3 * 4) *

A

+

I

6 * 3 + 4≡(6 * 3) + 4

B

I

!a && b || x > 3

≡(!a) && b || x > 3 !

A

&&

≡((!a) && b) || x > 3 &&

A

||

≡(((!a) && b) || (x > 3)) >

A

||

I

3 + 4 - 5≡(3 + 4) - 5 + -

B

+

4A

7

I

x = y = 5≡x = (y = 5) =

4A

($- 9

$

$

$

4

5;3? !

|| &&

F

.

O" " G ? 4

A 44

+

$

44

(20)
(21)

+

#

+$" 7

.

A $

$

7

44

4

44

6

I

I

J !

K

I +

I

I

I

7 !

I

$

\

I

4

+$& 0

7

4

' !

$

7

!

+$&$" #

$

6

;

+$&$& #

> *

?

3

!

;

$44

+

$!

$

44

+

$

0

!

6

(22)

12 + 4;

7

A

0

$

6

x = 12 + 4;

7

6 44

% A

x

+$&$( @

3

R

+

R

6

{ … … }

+

$

$

$

. B

B

+

$

+

+

A

+

+

+

+

+

4

$

+

$!

$ +

$

4@

6

+

$

$

!

:

$A

+

7 6

.

4

+

.

$!

$

break return

F

.

O& (

O& )G

" 5

+

+

A

+

+

4

main

$ B

!

+

6

{ int x = 5, d = 1; float y; { float d = 0.5; y = x + d; } … } x y

+

!

+

+

d

+

+

!

6

d

+

!

4

+

;

y

$

$

$!

+

6

(23)

? "      (float) y      1 (int) d      5 (int) x        0.5 (float) d     5.5 (float) y      1 (int) d      5 (int) x        5.5 (float) y      1 (int) d      5 (int) x    

?

$!

+

?

+

?

+

9

+$&$+ #

7

$

A !

!

+

4

$

!

+

7 !

3

!

if ( ) if ( ) else

9

$

6

F

G U

0

!

$

4 .

$

6

F

G U

0

!

$

!

$

4 .

0

!

6

if (mois >= 4 && mois < 10) saison = "chaude" else saison = "froide"

+

9

$

6

7

else if

'

$!

9

$

6

(24)

&

if ( ) if ( )

else

else if

9

$

if

else

+

then

$

if else

B

+

+

*

$

6

if ( ) { if ( ) } else else

+

if

!

9

$ +

1

:

if else

6

if ( ) if ( ) else ; else

+$&$% #

$

$!

$

$

4

0

!

:

A

$

+

4

A ,,

$

+ 6

while do…while for

+$&$%$" A

3

!

6

while ( )

$

F

G

+

A

$

6

+

6

F

G U,

!

.A +

4 .

+

!

?

:

B

!

(25)

? while

B

$

+

A 7

!

+

0

!

$

s

A 2

{ int s, i; s = 0; i = 1; while (i <= 9) { s = s + i; i = i + 1; } }

+$&$%$&

B A

3

!

6

do while ( );

$

$

while

+

$

6

+

6

!

F

G U,

.A +

4 .

+

!

:

$A

4 ! ?

!

4

*

B

$

while do…while

B

$

+

A

7

!

+

0

!

$

A

A ,

{ int s, n; s = 0; n = 0; do { n = n + 1; s = s + n; } while(s <= 50); }

+$&$%$(

3

"

!

(26)

% for ( ; ; ")

$

4

A 6

; while ( ) { "; }

9

$

F

G

$

F

G

+

F

"

G

0

!

$

,

{ int s, n; s = 0; for (n = 1; n <= 10; n = n + 1) s = s + n; }

!

"

B

+

F

G

.

B

+

9

$

:

0

!

$

6

for (;;)

+

4

+$&$-

*

*

7

A

+ $

+

4

$

!

7 !

7 !

4

6

switch (

"

) {

" #

" #

}

P6

I

"

!

I

+

$

I

7

" #

$

4

6

case

"

:

" #

default:

" #

P

case

"

: default:

"

!

$

switch

6

(27)

? (

!

case

"

:

F

"

G S

F

"

G

+

7 A $

!

default:

+

7 A $

4

4 .

4 .

4

$ +

7

44

!

:

$A

9

0

$ 7 8

$!

!

!

4

4

4

break

F

.

O& (G

44 $+

$!

$

0

!

$

: F

jour

G

A

: F

num_jour

G

6

switch(num_jour) { case 1: jour = "lundi"; break; case 2: jour = "mardi"; break; … case 7: jour = "dimanche"; break; default:

printf("Il n’y a que 7 jours dans la semaine !"); }

?

+

4

A

0

!

$

:

:

$

6

switch(num_jour) { case 6: case 7: activite = "repos"; break; default: activite = "travail"; }

+$&$'

$

6

break;

$+

$

8

$

while do for switch

+$&$/

(28)

)

return ;

7

% $+

$!

+

$

4

F

G

(29)

%

%$" 7

.

8

B

F

+ G

6

I

44

'

I

*

B

'

%$&

]

44

'

%$&$"

3

4

R

+

struct { ;

R

; }

$

+

R

0

!

6

struct point { char nom; float x, y; };

6

I

point

I

7

nom x y

'

4

char float float

3

$

R

+

R

(30)

", struct = { ,

R

, $},

R

, = { ,

R

, $};

+

'

struct

7

F

F

G R

F

$

GG R F

F

G R

F

$

GG

0

!

6

struct point p1 = {'P', 1.5, 2.5}, p2 = {'Q', -1.5, -2.5};

!

+

p1 p2

'

struct point

%

&

F

H

G

F.

H .

G

$

4

B

9 *

7

1

$

+

'

' 0

!

6

struct point { char nom; float x, y; } p1, p2;

1

0

!

6

struct { float x, y; } p1, p2;

B

+

0

!

B

!

6

struct date {

int jour, mois, annee; }

struct vacances {

char periode; char zone;

struct date debut; struct date fin; } v;

6

; ] "

$7

&

$

+

+

v

B

6

F

3 'A'

F

3 2 2001

G F

18 2 2001

GG

$7

$

,,,. ,,

^

5

3

$

7

7

.

0

!

v.date.jour jour date v

$

:

$

7

R

$

6

(31)

"   s.cn champ cn   …  s.c1 champ c1 s  …  …   

%$&$&

$!

$

7

$

$

.

F

G

3

!

$

F

7 G

7

6

.

!

6

I

F

G S '

7

F

G

I

F

G S

7

F

G

$!

7

$

4 +

!

6

struct vacances v = {2, 'A', {3, 2, 2001}, {18, 2, 2001}}

A 7

7

9

(32)

"           2001 v.fin.annee        2 v.fin.mois        18 v.fin.jour   v.fin           2001 v.debut.annee        2 v.debut.mois        3 v.debut.jour   v.debut        'A'  v.zone        3  v.periode   v  …  …   

1

6

F

v.zone

G S

'A'

F

v.debut.mois

G S

2

%$&$( ;

C

$44

$

A

7

$

=

F

.

O" " %G

0

!

6

struct vacances v; v.periode = 3; v.zone = 'A'; v.debut.jour = 3; v.debut.mois = 2; v.debut.annee = 2001; v.fin.jour = 18; v.fin.mois = 2; v.fin.annee = 2001;

%$(

*

+

]

B

'

+

(33)

""

%$($"

3

'

4

,

R

.

!

'

6

[ ] = { ,,

R

, . };

$

+

'

, A . F

A

<

G ?

F

,

G R

F

.

G

$

4

$

+

$

$

F

,G

+

$!

$

7 1

44

+

A

+

!

A

9

+

$

4

B

9 *

0

!

7

'

+

9

+

7

B

+

6

int pluie[12];

3

+

$

7

+

[ ]

$

:

$

+

A

$

6

t[n-1] élément n-1  … t[0] élément 0  t   pointeur …  …   

%$($&

$!

$

$

+

$

[]

3

!

'

+

'

!

'

[ ]

!

6

I

F

[ ]

G S

I

F

[ ]

G S

$

F

G

+

F

G

$!

[ ]

7

$

4 +

!

+

6

int pluie[12] = {50, 35, , 80}

A 7

9

$

:

(34)

"&     80 pluie[11]  …  …     35 pluie[1]      50 pluie[0]   pluie   …  …   

1

6

F

pluie[1]

G S

35

%$($( ;

C

$44

$

A

$

+

$

=

F

.

O" " %G 0

!

6

int pluie[12] pluie[0] = 50; pluie[1] = 35;

R

pluie[11] = 80;

%$($+

*

$

+

B

!. B

+

!

$

+

$

+

.

3

'

4

R

$

!

[ ][ ]

R

[ $]

$

+

+

!

[ ]

R

[ $]

$

F R

$

G

$!

6

[ ]

R

[$]

0

$

9

4

$+

$

4

0

!

+

$

6

0 1 2 3 4 5 6 7 8 9

B

6

(35)

" int t[5][2] = {{0, 1}, {2, 3}, {4, 5}, {6, 7}, {8, 9}}

$

6

    3 t[1][1]      2 t[1][0]   t[1]       1 t[0][0]      0 t[0][1]   t[0]      t    

1

6

F

t[1]

G S

. +

t

F

t

G

F

t[1][0]

G S

2

(36)
(37)

--$" 7

.

44

'

$

#

$

7

4

+

+ $

4

'

R

'

4

6

F G _R _ F G `

F G

P_

'

F G

$

+

'

-$&

4

$

4

' !

6

( , …, n)

P6

I

9

. D

4

I

F

A G

4

$

A

+

!

44

4

I

'

$

4

I

+

$

4

$!

4

44

+

*

4

6

return ;

$!

44

' A

4

F

G

0

!

4

'

!

B

4

4@

6

(38)

")

float moyenne(int x1, int x2) { float m; m = (x1 + x2) / 2.0; return m };

5

!

4

!

F

$

! $

!G

B

4

4@

6

int max(int x, int y) { if (x >= y) return x; then return y; }

-$( ;

$

$

4

!

'

4

6

( ,…, )

P $

4

4

4

R

!

4

3 '

$

4

4

+

R

'

R

+

$!

F

R

G

4@

6

44 4

6

S

F

G R

S

F

G

+ 6

{ … = ; … = ; }

!

"

9

return ;

!

1

6

F'

( ,

R

, )

G S

F

G

$

4

6

'

( , …, )

6

(39)

a "2

 Env

xn val(expn) dans Env



 …



x1 val(exp1) dans Env   Env  Env

$

4

'

$!

4

'

$!

4

'

0

!

$

4

moyenne

4

.

O% 6

{ int x; float m; x = 7; m = moyenne(x, 2 * x); }

$

$

6

     m      7 x         10.5 m      14 x2      7 x1       m      7 x        10.5 m      7 x    

$

moyenne(x, 2 * x)

$!

4

moyenne

$!

m = moyenne(x, 2 * x);

1

44 4 F

(

&G

!

4

6

-$+

4

6

void ( , …, n)

P

void

'

0

!

6

(40)

&, void ecrire_entier(int n) { printf("%d\n", n); }

4

$

6

void (v)

P

void

'

0

!

4

$

$

6

int lire_entier(void) { int n; scanf("%d", n); return n; }

!4

B

+

44 7 $

$

$

6

ecrire_entier(lire_entier());

4

$

scanf printf

7

4

main

'

$

int

4

$

$

$

.

B 6

main()

$

4

(41)

'

)

.

$

.

F

44 7

A $

4 7

G

4

4

4

$

$

9

*

4 7

*

0

!

!

$

4 7

!

4 7 +

4 7

!

$

.

B

? !

$

.

6 $

7 +

$

7 +

$

$

7 +

. B

$

*

$

!

4

$

.

6

4

scanf printf

$

!

4

$

7

4

scanf printf

++ 79

$

+

4

4

+

$

.

7

4 7

!

+

7

$

7

0

4

4

. B

8

'

7

4

4

4

'

++ 79

7

. D

4

$ A

. B

0

4

$

.

4 7

$ . B

J

7K

4 7

B

4 7

4

4

$

.

@

+

6

#include <stdio.h>

.

b

$

A

!

4 7

$ . B J

7K

'$" 4

=

scanf

4

scanf

$

$

4

4

4

+

'

!

^ 44

A

(42)

&

;

$

4

4

4

4

$

6

scanf(

'

"

"'

, &

"

"

"

'

)

$!

&

"

"

"

'

0

!

7

2

$

4

4

'

A

9

%

$

'

A

6

d

'

int ld

'

long

F

P

'

'

short

G

u

'

unsigned int lu

'

unsigned long

F

P

'

'

short

G

c

9 F

'

char

G

s

7 8

9

9

$

F+

+

4

G

$ 4

H

c

d,c

:

A

4

7 8 F

.

7

,G

f

4

'

float lf

4

'

double Lf

4

'

long double

0

!

$!

+

!

+

longueur largeur

'

float {

float longueur, largeur; scanf(%f, &longueur); scanf(%f, &largeur); }

'$& )

=

printf

4

printf

$

$

4

4

$44 7

4

printf

$

4

6

printf(

'

, , …, )

4

7 8

9

4

4

$ '

$!

4

4

4!

9

%

$

.

A 44 7

!

R

$44 7

4@

6

9

4

$!

9

!

F

R

G

3

9

44

%

44 7 3

4

4

$

9

4

$

(43)

3 $ &"

" 3

9

%

$!

44 7

4

A

4

4

3

4

4

4

!

$

9

4

4

A $!

0

$

*

4

4

4

6

I 1+

9

%

I a

$

F

.

G

$

+

+

744

9

$44 7

$ 4

F%

4 G

I 1+

9

6

d

44 7

'

int

ld

44 7

'

long ou unsigned long

P

'

int

'

short c

44 7

9

s

44 7

7 8

9

f

44 7

4

4!

!

'

double Lf

44 7

4

4!

!

'

long double e

44 7

4

4!

!

'

double Le

44 7

4

4

!

'

long double

0

!

$!

+

6

{ int x, y;

printf("Entrez le premier nombre ?\n"); scanf("%d", &x);

printf("Entrez le second nombre ?\n"); scanf("%d", &y);

printf("La moyenne de %d et de %d est %f.", x, y, (x + y) / 2.0); }

7

6

Entrez le premier nombre ? 12↵

Entrez le second nombre ? 3↵ La moyenne de 12 et de 3 est 7.500000.

$

^

7.500000

4

4

+

744

9

%

+

B

7

$

4

4

0

4

^

6

!

$

!

(44)
(45)

/

4 7

$

B 6

I

6

#include <stdio.h>

7

4 7

$ . B

4

$

.

printf scanf

$

!

.

7

(

I

'

I

+

!

$ A

+

4

$

4 7

I

4

+

I

4

4

*

$

4 7

!

'

/$"

;

4

(46)

&%

e

R

f

*

$

4 7

. B

g

e

R

f

*

+

+

6

R

h

+

R

+

4

g

'

e

R

f

* 4

4

6

R

h

4

'

R '

+

4

'

R '

'

h

g

$!

$

$

4

main

6

+

R

4

'

R '

+

/$&

9

+

$

A

+

4

8

!

+

*

4

44

0

'

+

44

B

+

4 7

7

+

+

4 7

4

4 7

4

+

4

+

+

A

+

+

+

+

P

+

4

+

B

+

+

+

+

B

+

+

*$P

9

.

O &

A

$

+

A

4

+

4 7

. B

4

4 7

4

$

4

+

+

4

+

4

4

+

B

/$(

?

+

!

$

/* */

$

B

+

0

!

!

6

(47)

3 $ &(

/* Ceci est un commentaire. */ /*

* Ceci est un commentaire * un peu plus long.

*/

!

$

+ * +

+

A

B

A

P

4

?

4

+

$

$

0

'

$

!

?4

7

$'

$

B A

4

4

?

!

4

$

6

/* Ceci est une boucle */

/$+ 3

$

.

F 4

else

RG

' F

int float

RG

/$% )*

? $

$

$

+

+

4

4@

6

I

+

+

+

tab

I

4

somme_ligne

$

I

4

main

6

(48)

&)

/*

* Somme des éléments d’un tableau d’entiers * tab : tableau

* nbl : nombre de lignes * nbc : nombre de colonnes

* somme_ligne(i) : somme des éléments de la ligne i */ #include <stdio.h> float tab[2][5] = {{0.9, 1.8, 2.7, 3.6, 5.5}, {5.4, 6.3, 7.2, 8.1, 9.0}}; int nbl = 2, nbc = 5; float somme_ligne(int i) { float s; int j; s = 0; for (j = 0; j <= nbc – 1; j = j + 1) s = s + tab[i][j]; return s; } void main(void) { float s ; int i ; s = 0 ; for (i = 0; i <= nbl – 1; i = i + 1) s = s + somme_ligne(i); printf("somme = %f\n", s); }

(49)

,

0

,$" 7

.

8

$

$

B

+

? !

+

'

!

' J

'

K

$

+

J

K ? !

4

$ 9

!

$

+

,$&

$

4

6

*

0

!

6

int *p char *p struct personne { char[20] nom ; int age ; } *p

6

I

+

p

' J

'

int

K

I

+

p

' J

'

char

K

I

+

p

' J

'

struct personne

K

1

+

'

+

'

'

0

!

6

int n, *p;

+

n

'

int p

'

int.

(50)

,

,$( 3

,$($" ;

$

$

+

$

&

3

$

4 + F

7 G

6

&

!

6

I

F

&

G S

F

G

I

F

&

G S

;

<

&exp

$

7 0

!

x

+

'

int

6

&x = 12

44

12

A

x

? 44

$

6

x = 12

0

!

$

6

{ int *p, v; p = &v; }

44

$

+

v

A

+

p

#

'

6

v

'

int p int

,$($& #

$

*

$!

$

A

$

$ A

1

$

3

!

' J

'

K

6

*

!

6

I

F

*

G S

I

F

*

G S

$!

*

7 6

4 +

F

G

$

!

$

6

{ int *p, v;

F G

v = 0;

F G

p = &v;

F"G

*p = 15;

F&G

}

$

$

$!

6

(51)

0

I

9 $!

$

F"G 6

    0 v           p 

I

9 $!

$

F&G 6

    15 v          p 

,$($( ; !

$

->

$!

7

$

3

!

$

7

$!

6

->

A 6

(* )->

0

!

p pp

+

6

struct personne { char nom[20] ; int age ; } p = {"Dupont", 36}, *pp;

$

!

$

6

pp = &p;

6

F

p.age

G

=

F

pp->age

G

= 36

,$+ 0

*

0

4

(

^

B

'

!

(

!

9

)

6

I

F

+

G S

$

D)

(

I

F

-

G S

$

. )

(

1

6

(52)

[ ] ≡ *( + )

4

6

(

           159          p p + 3 Fp[3]G S F*(p + 3)G S 2

B

! +

!

$

F

O " .

G

+

] $

B

'

$

+

F

,G 1

6

≡ & [0] [ ] ≡ *( + )

0

!

tab

$

+

6

int tab[3] = {15, 8, 23};

6

F

tab[1]

G S

F

*(tab + 1)

G S)

,$% 0

2

!

7 8

9

+

'

char

7 8

9

+

J 7 8

9 K

+

$

7 8

9

,

4

7 8

$

F

,G

+

0

!

6

         B  o  n  j  o  u  r  \0           "Bonjour"

;

<

'

44

+

0

!

p char

6

char *p;

6

p = "Bonjour"; p

+

7 1

+

"Bonjour" p

0

t

+

9

6

(53)

0 " char t[8]

6

t = "Bonjour"; t

$

7

,$- 0

$!

1

9

"

9

"

1

J

K

J i

K

"

J

K

+

p1 p2 p3

'

A

! 7

6

nom pere

P

nom

7 8

9 F

char

G

pere

+

9 0

9

NULL

$!

$

44

9 A 7

9

" { struct personne { char *nom;

struct personne *pere; } p1, p2, p3 p1.nom = "Jean"; p1.pere = NULL; p2.nom = "Yves"; p2.pere = &p1; p3.nom = "Marie"; p3.pere = &p1; printf("%s\n", p2->nom); printf("%s\n", p3->nom); }

,$' 0

#

$

$

4

4

$

$

4

!

6

(54)

&

int somme (int x, int y) { return (x + y); } main() { int a, b, c; a = 5; b = 6; c = somme(a, b); }

$

9 $

4

somme

4

main

6

    6 y      5 x       c      6 b      5 a    

1

+

a b

A

x y

$

44

! 4

6

I

4

4

$

$

9

$A

I

$

+

!

B

j

$

F .A.

G

$

. B

1

$

1

$

$!

4

init

44

A

+

x

int init(int *p, int v) { *p = v; } main() { int x; init(&x, 5); }

4

$

$

4

init

F G

9 F G

4

9

F"G

(55)

0      x    

F G

   5 v        p          x     

F G

    5 x    

F"G

'

!

7

7

7

B

6

struct horloge { int heures; int minutes; int secondes; }

0

4

7

4

4

avancer_horloge

$

$7

A 4

6

void avancer_horloge(struct horloge *h) { if (h->secondes < 59) h->secondes = h->secondes + 1; else { h->secondes = 0; if (h->minutes < 59) h->minutes = h->minutes + 1; else { h->minutes = 0; h->heures = h->heures + 1; } } }

3

$

+

+

mon_horloge

6

struct horloge mon_horloge

0

4

7

44

$

4

avancer_horloge

$

6

avancer_horloge(&mon_horloge)

1

$

44 4

+

$

+

4

$

+

F

O "

.

G

+

!

*

$

4

'

+

9

B

!

$

+

(56)

%

#include <stdio.h>

int mon_tableau[12] = {1, 2, 3, 4, 5, 6, 6, 5, 4, 3, 2, 1}; int somme(int tab[], int n)

{ int i, s; s = 0; for (i = 0; i <= n - 1; i = i + 1) { s = s + tab[i]; } return s; } main() { printf("Somme = %d\n", somme(mon_tableau, 12)); getchar(); }

$!

$44 7

6

somme = 42

(57)

"1

2

!

"1$"

2

!

7 8

9

9

1

6

""

7 8

9

" ,

R

" "

7 8

9

,

R

"

#

F

.

"G

9

!

+

A

4

4!

\

F

.

7G 0

!

\t

+

\n

A

\"

$

7 8

9

+

9

7 8

9

7 8

9

9

;

<

A

44

9

7 8

9 6

'A'

9

"A"

7 8

9

7 8

9

+

9

9

A

,

9

\0

F

,G

9

9

7 8

4

+

7 8

9

!

.

0

!

6

I

7 8

9

"Le langage C"

+

6

                L  e   l  a  n  g  a  g  e   C \0                   0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

I

$

7 8

9

B

+

6

(58)

)                \0                               0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

"1$&

3

4

4 $

,

$

.

6

char t[ ] = { ,, , …, $, \0}

4

+

'

+

9

7 8

9

!

T

A

" ,

R

$"

0

4

$

$

+

6

char t[ ] = "

R

$"

0

!

6

char titre[15] = "Le langage C"

"1$(

2

!

7 8

9

+

V

^

$ A

$

9

+

0

!

6

           …  B  o  n  j  o  u  r \0   …             "Bonjour"

3

t

+

9

$44

6

t = "Bonjour"

44

+

A

+

"1$+ ;

2

!

3

7 8

9

$

6

printf("%s", );

$44 7

"1$% 3

2

!

0

7 8

9

6

I

$

7 8

9

I

! 7 8

9

(59)

7 8 9 2

I

! 7 8

9

I

!

$

. 7 8

9

;

<

\

4

7 8

!

+

7 8

9

? 4

$

\

7 8

9

"1$%$" 4

2

!

$

7 8

9

+

4

longueur

4

6

int longueur(char s[]) { /*

* La longueur d'une chaîne est égale à la position * de la marque de fin.

* En effet si la longueur d'une chaîne est l elle se terminera

* au rang l - 1 puisque les caractères sont numérotés à partir de 0. * La marque de fin se trouve donc bien à la position l.

*/ int i; i = 0; while (s[i] != 0) i = i + 1; return i; }

"1$%$& )

*

2

!

$

! 7 8

9

4

egal

4

6

(60)

%,

unsigned char egal(char s1[], char s2[]) {

/*

* Deux chaînes sont égales * si elles ont la même longueur

* et si leurs caractères de même rang sont égaux.

* On cherche à partir de 0 le premier rang i pour lequel : * - soit s1[i] != s2[i] ce qui se produit :

* 1) si on a atteint la fin de s1 et pas celle de s2, * 2) si on a atteint la fin de s2 et pas celle de s1, * 3) si le i-ème caractère de s1 n'est pas égal

* au i-ème caractère de s2

* Dans ces trois cas les chaînes s1 et s2 ne sont pas égales. * - soit s1[i] == '\0', en ce cas les chaînes s1 et s2

* sont égales si s2[i] == '\0' (chaînes de même longueur). */

int i; i = 0;

while ((s1[i] == s2[i]) && (s1[i] != '\0')) i = i + 1;

return (s1[i] == s2[i]); }

"1$%$(

*

2

!

! 7 8

9

s1 s2

4

concatener

4

void concatener(char s1[], char s2[]) {

/*

* On lit la chaîne s1 jusqu'à la marque de fin (rang i) * puis on recopie la chaîne s2, marque de fin comprise, * dans s1 à partir du rang i.

*/ int i, j; i = 0; while (s1[i] != 0) i = i + 1; j = 0; do { s1[i] = s2[j]; i = i + 1; j = j + 1; } while (s2[j] != 0); s1[i] = 0; return; }

$

s1

4

B

7 8

9

"1$%$+ )*

.

2

!

$!

7 8

9

s1

. 7 8

9

s2

+

i n

4

extraire

4

A

0

$

$

+

$ .A.

i n

4

+

i

D

n

T

A

s1

(61)

7 8 9 %

int extraire(char s[], int i, int n, char ss[]) {

int k;

if ((i < 0) || (n < 0)) /*

* Paramètres négatifs :

* on retourne 1 (extraction non réalisable). */

return 1; /*

* On avance jusqu'au rang i pour tester si la chaîne * ne se termine pas avant.

*/ k = 0;

while ((s[k] != 0) && (k < i)) {

k = k + 1; }

if (k < i) /*

* s se termine avant le rang i : * on retourne 1.

*/

return 1; /*

* On écrit dans ss les caractères de rang * i, i + 1, ..., i + n - 1 de s.

*/ k = 0;

while ((s[i + k] != 0) && (k <= n - 1)) { ss[k] = s[i + k]; k = k + 1; } if (k == n) /* * Extraction réussie :

* on écrit la marque de fin de chaîne dans ss. */ { ss[k] = '\0'; return 0; } else /*

* Il n’y a pas n caractères à extraire : * on retourne 1. */ return 1; }

$

s2

4

B

7 8

9

"1$%$% )*

$

4

(62)

%

#include <stdio.h> int longueur(char s[]) …

unsigned char egal(char s1[], char s2[]) …

void concatener(char s1[], char s2[]) …

void extraire(char s[], int i, int n, char ss[]) … main() { char ma_chaine[50] = ""; /* * Longueur */ printf("%d\n", longueur("")); printf("%d\n", longueur("Bonjour")); /* Egalite */

printf("%d\n", egal("jour", "journal")); printf("%d\n", egal("jour", "nuit")); printf("%d\n", egal("jour", "jour")); /*

* Concatenation */

concatener(ma_chaine, "Le langage C et "); concatener(ma_chaine, "le langage C++"); printf("%s\n", ma_chaine);

/*

* Extraction. */

err = extraire("Le langage C", 14, 7, ma_chaine); if (err == 0)

printf("%s\n", ma_chaine); else

printf("Extraction impossible !\n");

err = extraire("Le langage C", 3, 7, ma_chaine); if (err == 0)

printf("%s\n", ma_chaine); else

printf("Extraction impossible !\n");

err = extraire("Le langage C", 3, 12, ma_chaine); if (err == 0) printf("%s\n", ma_chaine); else printf("Extraction impossible !\n"); }

6

I

7 8

9

""

H

I

7 8

9

"Bonjour"

H

I

$

7 8

9

"jour" "journal" "jour" "nuit" "jour" "jour"

F

!

9

G H

I

7 8

9

"" "Le langage C et " "le langage C++"

H

(63)

7 8 9 %"

I $!

7 8

9

"Le langage C"

. 7 8

9

@

&

" F

+ G

. 7 8

9

@

"

(

. 7 8

9

@

"

F

+ G

c!

4

c44 7

6

0 4 0 0 1 Le langage C et le langage C++ Extraction impossible ! langage Extraction impossible !

(64)
(65)

""

3

""$" 9 :

$+: 4

7

$

0

$

0

!

6

:

7

'

:

9

" :

,, A

$ 4

7 +

7

6

+

$

.A.

$

$

4

7 ! $

$

" 0

$ : $

+

7

B

A

+

1

7

+

$

7

+

A

4

$

+

F

G

'

F

+

7 8

9

G 0

F

"G A

A

+

""$& )

""$&$" 7

.

8

$

B

'

;

^

+

$

1

6

(66)

%%

kl

k l

k

,

R

l

D

,

R

0

!

6

k

)

l

kl

""$&$& 3

B

!

$

0

!

6

kl

$

k% &l

$

%

,

$

&

k% ) " &l

$

)

$

"

k% ) " l

$

"

$

k% ) "l

$

"

*

!

0

!

$

k% ) " &l

"

B

.

'

44

$

$

B

A $

$

6

F

G

9

A

$

.

.B

A $

$

6

F

$G

9

A

.

$

!

4

6

6 k

l ` k

l

*

4

B

$ 7 8

!

6

Fk

l

G

Fk

l

G

.

B

$

6

Fk

l

k

lG

*

7

A $

:

$

+

6

(67)

%(

F G

A ^

F G

F G

$

6 , Y [

F G

F

G

9

$

6 , Y Y

F G

F

G

$

$

6 , Y [

F G

F G

$

6 , Y [

F G

""$(

+9

+

$

'

+9

+

$

'

B

+

$

'

A

;

+

6

?4

4

'

;

9

$

F S

int

G

A

7

6

struct sequence {

int support[LONMAX], lon; }

P

+

support LONMAX

!

$

$

lon LONMAX

4

.

sequence #define LONMAX

.

.

*

.

7

LONMAX

!

""$+ 0

:

7

+

4

B

$

.A.

54

$

$

B

$!

$

+

+

erreur

'

int

A ,

$

(68)

%)

B

A F Z ,G

$

$

B

4

""$+$"

0

4

A ^

4

4

vider

6

/*

* Vidage d’une séquence s */

void vider(struct sequence *s) { s->lon = 0; return; }

""$+$& 4

4

4

longueur

6

/*

* Longueur d’une séquence s */

int longueur(struct sequence *s) { return s->lon; }

""$+$( )*

0

!

$

$

4 6

4

+

$

.A.

,

F G F

erreur

S

G H

4

4

element

6

(69)

%2

/*

* Extraction dans une séquence s de l’élément de rang i */

int element(struct sequence *s, int i) { /* * On teste la validité de i */ if ((i < 0) || (i >= s->lon)) { erreur = 1; return 0; } /*

* On retourne l’élément de rang i */ erreur = 0; return s->support[i]; }

""$+$+ #

0

$

4 6

4

4

A

F

erreur

S

G

+

$

.A.

,

≤ ≤

F G F

erreur

S

G H

$

A

@

4

A 7

4

$

H

"

H

&

4

4

insertion

6

(70)

(,

/*

* Insertion d'un élément x au rang i d’une séquence s */

void inserer(struct sequence *s, int i, int x) {

int j; /*

* On teste si la séquence a sa longueur maximum. */ if (s->lon == LONMAX) { erreur = 2; return; } /* * On teste la validité de i. */ if (i < 0 || i > s->lon) { erreur = 1; return; } /*

* Si l'insertion ne se fait pas en fin de séquence

* on décale les éléments de i à ls d'un rang vers la droite * en partant de la fin de la séquence.

*/

if (i <= s->lon)

for (j = s->lon - 1; j >= i; j--) s->support[j + 1] = s->support[j]; /*

* On insère l'élément x au rang i. */ s->support[i] = x; /* * On incrémente la longueur. */ s->lon = s->lon + 1; erreur = 0; return; }

""$+$%

0

$

4 6

4

+

$

.A.

,

F G F

erreur

S

G H

4

4

remplacer

6

(71)

(

/*

* Remplacement dans une séquence s, de l’élément de rang i, par x */

int remplacer(struct sequence *s, int i, int x) { /* * On teste la validité de i */ if ((i < 0) || (i >= s->lon)) { erreur = 1; return; } /*

* On remplace l’élément de rang i par x. */ s->support[i] = x; erreur = 0; return; }

""$+$-0

$

4 6

4

+

$

.A.

,

F G F

erreur

S

G H

$

7

A

@

4

A 7

4

$

"

4

4

supprimer

6

(72)

(

/*

* Suppression dans une séquence s, de l’élément de rang i */

void supprimer(struct sequence *s, int i) { int j; /* * On teste la validité de i */ if ((i < 0) || (i >= s->lon)) { erreur = 1; return; } /*

* Si la suppression n’est pas celle du dernier élément de s on * décale les éléments de rang > i d'un rang vers la gauche. */ if (i < s->lon) for (j = i; j <= s->lon; j = j + 1) s->support[j] = s->support[j + 1]; /* * On décrémente de 1 la longueur de s. */ s->lon = s->lon - 1; erreur = 0; return; }

""$+$' )*

6

Références

Documents relatifs

we identified during the CHI 2018 workshop on the design of inclusive educational classroom technology for people with VI [2]. These relate to opportunities and challenges for:

S’inscrivant dans la littérature sur les politiques publiques, la présente thèse souligne le rôle clé joué par les scientifiques relativement au Programme d’analyse du

Por outro lado, a irrigação por aspersão pode auxiliar na redução populacional em condições climáticas favoráveis à praga; o tratamento com cloro ativo do material propagativo

Fragment de bord de cratère en calice. Pâte beige-rosé, vernis noir brillant. extérieur: sous la lèvre, reste d’une frise de feuilles au-dessus de laquelle il y a une bande

« Tout le problème qui se pose, il faut savoir que nous avons une résistance permanente du début à la fin aujourd’hui, de certains cadres du Ministère de la Santé publique, au

Le soutien de l’organisation et des chefs de direction, tels que le chef d’unité, sont essentiels à la communication auprès des infirmières, à la collaboration

: aucune ne garantit l’existence d’une structure cultuelle à Karnak à l’Ancien Empire. En fin de compte, aucun matériel qui puisse être mis en relation avec

Variation of the residue percentage at 750 °C compared to the dry mass of the fibers (anaerobic degradation - TGA) as a function of the phosphorus content for miscanthus fibers